feat: add browser argument builder and discovery
This commit is contained in:
+1
-1
@@ -8,7 +8,7 @@
|
||||
| --- | --- | --- | --- |
|
||||
| T-001 | 建立 Go module、命令入口、日志和测试基座 | - | TODO |
|
||||
| T-002 | 固化 BrowserDefinition、LaunchSpec、错误和事件合约 | T-001 | DONE |
|
||||
| T-003 | 实现可测试的参数构造和 Chrome/Edge 发现 | T-002 | TODO |
|
||||
| T-003 | 实现可测试的参数构造和 Chrome/Edge 发现 | T-002 | DONE |
|
||||
|
||||
## Phase 1:进程核心
|
||||
|
||||
|
||||
@@ -20,6 +20,8 @@ type BrowserManager interface {
|
||||
|
||||
`Stop(force=false)` 只执行优雅关闭;强制关闭必须由明确用户动作或 CLI `--force` 触发。
|
||||
|
||||
参数数组由 `internal/platform/browser.BuildArgs` 生成;Chrome/Edge executable 由同包 `Discoverer.Resolve` 解析。二者都不接收 shell 命令行字符串。
|
||||
|
||||
## CLI 目标形状
|
||||
|
||||
```text
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
|
||||
- 日期:2026-07-22
|
||||
- 阶段:文档与交互原型准备
|
||||
- 代码:已建立 Go module `chub`、`cmd/chub` 入口、logging 测试基座和浏览器 domain/application 合约,T-001/T-002 已完成
|
||||
- 代码:已建立 Go module `chub`、`cmd/chub` 入口、logging 测试基座、浏览器 domain/application 合约和 Chrome/Edge 参数/发现模块,T-001 至 T-003 已完成
|
||||
- UI:尚未实现;P0 页面需要先制作 HTML 原型
|
||||
- 浏览器核心:设计参考来自 `D:\OPC\shop_helm\internal\platform\chrome`,尚未复制或接入本项目
|
||||
- blocker:无;下一个任务为 T-003
|
||||
- blocker:无;下一个任务为 T-101
|
||||
|
||||
## 当前目录
|
||||
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
id: T-003
|
||||
title: 实现 Chrome/Edge 参数构造与可执行文件发现
|
||||
phase: 0
|
||||
deps: [T-002]
|
||||
status: DONE
|
||||
created: 2026-07-22
|
||||
owner: codex
|
||||
---
|
||||
|
||||
## 需求与背景
|
||||
|
||||
不同浏览器的 executable 路径不同,但 Chromium 启动参数需要保持统一、可测试且不允许用户额外参数覆盖实例身份边界。
|
||||
|
||||
## 方案与边界
|
||||
|
||||
- `internal/platform/browser` 提供 Chrome/Edge executable discovery。
|
||||
- `BuildArgs` 只生成参数数组,不创建 shell 命令字符串。
|
||||
- user data dir、profile、proxy 和 remote debugging 相关参数由工具控制;额外参数只能是非空 `--flag`,不能覆盖受控项。
|
||||
- 本任务不启动真实进程,不实现 Windows API 进程树。
|
||||
|
||||
## 验收要点
|
||||
|
||||
- Chrome 和 Edge 标准安装路径自动发现测试通过。
|
||||
- 配置路径优先于自动发现,非法路径被拒绝。
|
||||
- 代理拒绝 userinfo、非法 scheme、非法端口和路径参数。
|
||||
- 额外参数不能覆盖 user data dir、profile、代理或 remote debugging 参数。
|
||||
- `go test ./...`、`go vet ./...` 通过。
|
||||
|
||||
## 执行记录
|
||||
|
||||
- 状态:DONE
|
||||
- 变更:新增浏览器发现器、参数构造器、代理校验、额外参数边界和注入式测试。
|
||||
- 验证:`gofmt`、`go test ./...`、`go vet ./...` 均通过。
|
||||
- 阻塞:无。
|
||||
- 残余风险:标准安装路径和 Windows 文件权限需在真实 Chrome/Edge smoke 中继续验证。
|
||||
Reference in New Issue
Block a user