Files
qwen-code/docs/native-host-troubleshooting.md
yiliang114 c65436cf61 feat(chrome-extension): enhance native host communication and network logging
- Add troubleshooting documentation for native host setup issues
- Improve native host logging to home directory with fallback to tmp
- Enhance network logging in service worker with response body capture
- Update scripts to properly reference host.js from correct path
- Increase timeout for MCP session creation and long prompts from 3 to 5 minutes
- Add getConsoleLogs functionality to sidepanel for content script capture
- Improve browser-mcp-server network logs aggregation by request ID
- Update icon assets and improve manifest configuration

refactor(chrome-extension): consolidate host.js entry point and improve path resolution

- Create unified host.js entry point that delegates to src/host.js
- Improve path resolution for host scripts in installer and runner scripts
- Add proper path existence checks for browser-mcp-server.js
- Support running from different directory structures

style(chrome-extension): improve TypeScript type safety and error handling

- Add proper type definitions for message handling in side panel
- Add null checks and error handling for message parsing
- Improve React component callback implementations
2026-01-08 01:25:50 +08:00

3.2 KiB
Raw Blame History

Chrome 扩展 Native Host 排查步骤

适用于遇到“Specified native messaging host not found.”、“Native host has exited.”、“Handshake timeout”等情况。

1. 核对 manifest

路径:~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.qwen.cli.bridge.json

内容应为:

{
  "name": "com.qwen.cli.bridge",
  "description": "Native messaging host for Qwen CLI Chrome Extension",
  "path": "/Users/jinjing/projects/projj/github.com/QwenLM/qwen-code/packages/chrome-extension/native-host/host.js",
  "type": "stdio",
  "allowed_origins": [
    "chrome-extension://kbpfhhpfobobomiighfkhojhmefogdgh/"
  ]
}

一键覆盖命令:

cat > "$HOME/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.qwen.cli.bridge.json" <<'EOF'
{
  "name": "com.qwen.cli.bridge",
  "description": "Native messaging host for Qwen CLI Chrome Extension",
  "path": "/Users/jinjing/projects/projj/github.com/QwenLM/qwen-code/packages/chrome-extension/native-host/host.js",
  "type": "stdio",
  "allowed_origins": [
    "chrome-extension://kbpfhhpfobobomiighfkhojhmefogdgh/"
  ]
}
EOF

修改 manifest 后务必彻底退出并重启 Chrome,再在扩展页点击“重新加载”插件。

2. 确保可执行与 Node 路径

Host 入口已设置 shebang /usr/local/bin/node。确保脚本可执行:

chmod +x /Users/jinjing/projects/projj/github.com/QwenLM/qwen-code/packages/chrome-extension/native-host/host.js
chmod +x /Users/jinjing/projects/projj/github.com/QwenLM/qwen-code/packages/chrome-extension/native-host/src/host.js

3. 日志位置

  • 主日志:~/.qwen/chrome-bridge/qwen-bridge-host.log
  • 如果主目录不可写,回退:/tmp/qwen-bridge-host.log/var/folders/.../T/qwen-bridge-host.log

若文件为空,说明 host 可能没被 Chrome 拉起或启动后被立即杀掉(查看 manifest 是否正确、Chrome 是否重启)。

4. 手动运行自检

node /Users/jinjing/projects/projj/github.com/QwenLM/qwen-code/packages/chrome-extension/native-host/host.js

进程会挂起等待 stdin无输出属正常日志文件应记录启动信息。Ctrl+C 退出。

5. 常见错误与对应操作

  • Specified native messaging host not found.
    Manifest 中 pathallowed_origins 不对,或 Chrome 未重启。按第 1 步覆盖,重启 Chrome。

  • Native host has exited. / Handshake timeout
    多为 manifest 不被 Chrome 接受或 host 无法启动。确认第 1、2 步,重启 Chrome再看日志是否收到 “Received … bytes”/信号。

6. 快速排查命令合集

# 查看当前 manifest
cat "$HOME/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.qwen.cli.bridge.json"

# 覆盖 manifest见第 1 步)
cat > "$HOME/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.qwen.cli.bridge.json" <<'EOF'
{ ...如上... }
EOF

# 确保可执行
chmod +x /Users/jinjing/projects/projj/github.com/QwenLM/qwen-code/packages/chrome-extension/native-host/host.js
chmod +x /Users/jinjing/projects/projj/github.com/QwenLM/qwen-code/packages/chrome-extension/native-host/src/host.js

# 查看日志
cat ~/.qwen/chrome-bridge/qwen-bridge-host.log 2>/dev/null || echo "no log"