All plugins

DSH / BUNDLE / BUNDLES

dsh-browser-service

v0.5.0lyp88997 / dsh-browser-service6a20ba113c

InstallableBundlesBundles & other modulesCommunity · Topic auto-analysis

Overview

dsh-browser-service

自建 DSH 浏览器服务:一个包 = 单例 CDP 守护进程 + 33 个 browser_* 工具面 + DSH ctx.browser provider(一个 dsh plugin add 装完即用)

README / EN

Package documentation

Registry summary

自建 DSH 浏览器服务:一个包 = 单例 CDP 守护进程 + 33 个 browser_* 工具面 + DSH ctx.browser provider(一个 dsh plugin add 装完即用)

dsh.pub verifies the pinned bundle contract, runtime facts, and distribution semantics. The complete README remains in the source repository.

Read the full README on GitHub

LIMITATIONS

Known limitations

1. **一个 root 一个守护进程**(单例)。多个 profile 想共用内核要显式给同一个 `--root`;否则各自拉起一个。 2. **只监听回环**,同 uid 的其它进程读得到 `service.json` 里的 token(文档权限 0600,但同 uid 可读)。这是本机隔离,不是跨用户隔离。 3. **`--no-sandbox` 是必需项**(容器里 Chromium 沙箱起不来)⇒ 只访问可信站点;需要更强隔离就把浏览器放进独立容器。 4. **改插件代码或 profile patch 后必须重启 DSH**:完整 web profile 上 `patchReload: live` 会静默回滚(实测:探针条目 `applied` 后 6–7 ms 被 `disposed`,插件的 `apply` 根本没被调用;最小 profile 里热重载正常)。 5. **插件与 `browsersvc` 必须同版本升级**:v0.3.0 起公开端口要 Bearer token,旧插件 + 新守护进程会 401(F19 修的是冷启动重读 token)。 6. **工具面取决于依赖版本**:33 个 `browser_*` 来自 `dsh-builtin-browser`,上游增删工具时本包跟着变(本包只保证转出口形状一致、并把它写进验收)。 7. **守护进程会空闲自杀**(守护进程自身默认 15 分钟;本包自启默认 5 分钟,见配置表 `idleMs`;`--idle-ms` 允许 `1000..86400000`,即最长 24 小时)。**只有代理端口上没有任何连接时才会空闲**:所以 0.5.0 起插件在最后一个会话关闭后会**主动断开** CDP 连接——否则那条约 600 MB 的常驻浏览器永远不回收(P1)。DSH 侧下一次调用会自动把它拉回(F25),所以这是省内存的设计而不是故障;连「被下次调用拉起」也不想要,就 `dsh plugin remove` 卸载本包。 8. **`browser_execute` 传的是表达式语境**:传函数体会被当表达式求值并报 `page.evaluate: SyntaxError: Illegal return statement`,请传 `(...) => {...}` 或纯表达式。 9. **`browser_fill` 的 `fields[].selector` 是作用域不是定位器**:定位某个控件请用 `browser_click` / `browser_set_value` / `browser_check` 的 `target`。 10. **macOS / Windows 未测试**;仅 Linux(Debian 12 容器)实测。 11. **截图/下载默认只能写进系统 Downloads 目录**(`XDG_DOWNLOAD_DIR` → 家目录下存在的 `Downloads`/`下载`/`下載` → `~/Downloads`,对齐内置 provider)。要写进工作区或别处,就在 profile patch 的 `browser-cdp` 行 `config` 里显式配 `downloadDir`(patch **整行替换** `config`,覆盖时该行其它键要重述)。 12. **单个会话默认最多 5 个标签页**(配置 `maxTabs`,夹 `1..50`)。每个标签页是独立渲染进程,实测约 +93 MB;超限时 `browser_open {newTab:true}` 报 `BROWSER_TAB_LIMIT`,文案会列出当前标签,用 `browser_close_tab` 关掉不用的、或 `browser_reset_session` 清空本会话(P1)。