Files
cdp_hub/docs/tasks/T-405.md
T

3.4 KiB
Raw Blame History

id, title, phase, deps, status, created, owner
id title phase deps status created owner
T-405 设置浏览器 executable 选择与可感知搜索反馈 4
T-205
T-206
T-207
DONE 2026-07-27 codex

需求与背景

设置页的 Chrome 与 Edge executable 路径已经展示“选择”和“搜索”操作,但 Chrome/Edge 的“选择”点击后只写入一条全局提示,没有调用任何文件选择器。标准安装路径搜索能够在后台发现本机浏览器,不过默认路径通常已预填为相同值,成功提示又位于需要滚动才可见的页面下方,用户会误以为两个操作都没有反应。

方案与边界

  • 在 internal/platform/files 新增 ExecutablePicker,Windows 实现使用原生 OpenFileDialog,只允许已有的绝对 .exe 结果;非 Windows 实现返回明确的不支持错误。它不发现、启动、检查、接管或关闭浏览器进程。
  • Gio shell 通过后台 ExecutableChooser adapter 调用选择器,并按 Chrome/Edge PathField、请求代次和取消上下文收取结果;UI frame 与点击回调不得执行系统 I/O。选择成功才覆盖相应 editor;取消、失败或非法结果保留原输入。
  • Chrome 与 Edge 路径各自维护选择/搜索状态与字段级反馈。搜索开始、取消、更新、未找到和失败均在发起字段旁显示;搜索结果与当前值一致时明确显示“已确认当前路径可用”。页面底部的运行行为反馈不再承担路径操作的唯一可见反馈。
  • 这是已确认 Gio 页面局部行为修复,不改变导航、布局信息架构或视觉组件体系;按 windows-ui-ux 评审无需新 HTML 原型。仍需在真实 Windows GUI 中验证文件对话框、取消和同路径搜索反馈。

验收要点

  • 自动化:为 Windows executable picker、无效/取消结果、Shell 选择结果及同路径搜索反馈新增单元测试;go test ./...、go test -race ./cmd/chub ./internal/ui ./internal/platform/files、go vet ./...、go build -o build/chub.exe ./cmd/chub 通过。
  • Windows smoke:设置页 Chrome 与 Edge 的“选择”均打开原生文件选择器;选取 .exe 后仅更新对应字段;取消、错误与非 .exe 结果保留字段输入。搜索标准安装路径时按钮短暂显示“取消”,命中默认路径也会在该字段旁显示确认文字;切换到实例页再返回后输入和反馈仍在。
  • 安全与交互:不做全盘扫描,不记录完整路径以外的系统诊断,不进行浏览器进程枚举、启动、停止或接管;同字段重复点击不能并发打开多个对话框,迟到结果不能覆盖较新的同字段操作。

执行记录

  • 状态:DONE
  • 变更:新增 Windows OpenFileDialog executable picker 与非 Windows 明确失败实现;cmd/chub 已注入 chooser。Gio shell 在后台选择 Chrome/Edge executable,以请求代次丢弃过期结果;选择成功只更新目标字段,取消/失败保留输入。四个路径搜索的反馈均移动至对应字段,Chrome/Edge 搜索命中当前输入时显示明确确认。
  • 验证:go test ./...、go test -race ./cmd/chub ./internal/ui ./internal/platform/files、go vet ./...、go build -o build/chub.exe ./cmd/chub 和 cmd /c build.bat 均通过。确认打包产物 PE subsystem 为 Windows GUI(2);真实 STA OpenFileDialog smoke 已自动取消一次,并预填现有 C:\Program Files\Google\Chrome\Application\chrome.exe 后返回 OK 与该路径。
  • 阻塞:无。