2026-07-22 14:51:11 +08:00
|
|
|
# 产品需求
|
|
|
|
|
|
|
|
|
|
| ID | 需求 | 优先级 |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| BR-001 | 支持 Chrome 和 Edge,允许自动发现或手动指定 executable。 | P0 |
|
|
|
|
|
| BR-002 | 启动配置支持 `user-data-dir`、`profile-directory`、URL、代理、headless 和额外参数。 | P0 |
|
|
|
|
|
| BR-003 | 启动前检测目标 user data dir 是否占用,禁止同一环境重复启动。 | P0 |
|
|
|
|
|
| BR-004 | 实例列表显示浏览器类型、PID、user data dir、启动时间和状态。 | P0 |
|
|
|
|
|
| BR-005 | 支持优雅关闭、强制关闭和重启,并明确操作影响。 | P0 |
|
|
|
|
|
| BR-006 | 监控启动失败、异常退出、退出码和进程消失。 | P0 |
|
|
|
|
|
| BR-007 | 启动参数按数组传递,不通过 shell 拼接。 | P0 |
|
|
|
|
|
| BR-008 | 只允许管理工具注册且经过身份校验的 PID。 | P0 |
|
|
|
|
|
| BR-009 | 支持本地配置持久化,绝不保存浏览器凭证。 | P1 |
|
|
|
|
|
| BR-010 | 提供 CLI 或本地 API,供脚本启动、查询和关闭实例。 | P1 |
|
2026-07-25 15:36:23 +08:00
|
|
|
| BR-011 | Chub 启动的 Chrome/Edge 必须启用仅限 loopback 的本地 CDP;端口从设置的起始端口分配,空值默认 9666。 | P1 |
|
|
|
|
|
| BR-012 | 同一 user data dir 被外部浏览器占用时,只能在其 CDP 端点可验证时关联为外部实例;不得接管生命周期。 | P1 |
|
2026-07-22 14:51:11 +08:00
|
|
|
|
|
|
|
|
## 验收标准
|
|
|
|
|
|
|
|
|
|
- 两个不同 user data dir 可以并行启动,互不阻塞。
|
|
|
|
|
- 同一 user data dir 的第二次启动被拒绝,并显示已知 PID/来源。
|
2026-07-25 15:36:23 +08:00
|
|
|
- 新启动实例使用 `127.0.0.1` 上的远程调试端口;从默认或已保存的起始端口开始递增,并在列表显示实际关联端口。
|
|
|
|
|
- 外部实例只有在其 `DevToolsActivePort` 和本地 CDP 端点均通过浏览器类型校验时才显示“外部已关联”;关联后不得显示关闭、强制关闭或重启入口。
|
|
|
|
|
- 外部实例未启用 CDP、端点失效或权限不足时,显示“外部占用”或“未知占用”,且不得再次使用同一目录启动浏览器。
|
2026-07-22 14:51:11 +08:00
|
|
|
- 关闭操作不会影响其他 Chrome/Edge 实例。
|
|
|
|
|
- 工具重启后,无法确认身份的外部进程只能报告 UNKNOWN,不得被关闭。
|
|
|
|
|
- 异常退出后状态在合理时间内变为 EXITED/FAILED。
|
|
|
|
|
- 参数中不出现密码、Cookie、Token 或代理 userinfo。
|
|
|
|
|
- UI 覆盖加载、空、占用、启动失败、关闭中、成功和权限错误。
|
|
|
|
|
|
|
|
|
|
## 不做
|
|
|
|
|
|
2026-07-25 15:36:23 +08:00
|
|
|
全局杀 Chrome/Edge、自动登录、页面操作、验证码处理、平台 API 集成、远程控制和跨用户权限提升;通过 CDP 管理或关闭外部实例。
|