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

34 lines
2.8 KiB
Markdown
Raw Normal View History

---
id: T-405
title: 设置浏览器 executable 选择与可感知搜索反馈
phase: 4
deps: [T-205, T-206, T-207]
status: DOING
created: 2026-07-27
owner: 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` 结果保留字段输入。搜索标准安装路径时按钮短暂显示“取消”,命中默认路径也会在该字段旁显示确认文字;切换到实例页再返回后输入和反馈仍在。
- 安全与交互:不做全盘扫描,不记录完整路径以外的系统诊断,不进行浏览器进程枚举、启动、停止或接管;同字段重复点击不能并发打开多个对话框,迟到结果不能覆盖较新的同字段操作。
## 执行记录
- 状态:DOING
- 变更:已完成根因分析和需求、架构、API、用户故事、交互清单、原型验收说明的更新;待文档提交后实现。
- 验证:待执行。
- 阻塞:无。