内置浏览器主页按钮
为 OpenProgram 内置浏览器的导航栏增加主页入口,复用现有新标签页,不引入主页 URL 配置。
行为
- 桌面原生 WebContentsView 和普通浏览器 iframe 两套工具栏都显示 House 图标按钮。
- 按钮标题与无障碍名称按当前语言显示为
Home或主页。 - 点击后把当前
webtab 原位替换为现有ntp页面;不新增标签,不跳转外部网址。 - 保留标签顺序、当前激活状态和 compound-tab 成员位置;移除旧 web tab id,并清除指向它的 legacy split 状态。
边界
不增加自定义主页设置、搜索引擎设置、依赖、后台进程或新的页面实现。后退、前进、地址输入、刷新、书签、分屏和外部打开行为保持不变。
任务文件
生产代码:web/components/center-tabs/web-tab-pane.tsx、web/lib/state/center-tabs-store.ts。测试:web/scripts/check-web-split.mjs。设计与验收记录:本文件。
验收
- RED:现有代码缺少 store action、House 按钮和两套工具栏接线。
- GREEN:状态测试证明原位替换、分组更新和原生 web-view id 清理;源码门禁证明两套工具栏都有主页按钮。
- 构建后只使用已安装的
/Applications/OpenProgram.app做可见页面验收,不从 Electron 源码启动。
实现记录
已实现并通过自动化门禁与已安装应用验收。
- Web 全部门禁、TypeScript 检查和生产构建通过。
- 已安装的
/Applications/OpenProgram.app使用包内 Python runtime 启动默认 worker;未从 Electron 源码启动。 - DOM/ARIA 验收确认工具栏只有一个
Home按钮,title与无障碍名称正确,地址栏显示https://example.com/。 - 点击主页后显示现有
New tab页面,标签数量保持不变,原 web tab 的 CDP target 被移除。 - 一张当前 viewport 截图用于确认按钮位置和视觉一致性;没有启用 OCR、候选框检测或多轮截图。