OpenProgram · 架构决策记录

内置浏览器不提供 Chrome / Edge 扩展安装

OpenProgram 0.7.0 保留完整的内置网页浏览、书签、历史、下载、浏览器数据导入和 Agent 网页控制,但不发布扩展商店安装、本地扩展加载或扩展管理功能。

决定:0.7.0 移除 读者:产品 · 桌面 · Web Status: implemented
本页目录
01

产品决策

当前 Desktop 基于 Electron 的 Chromium,并不等于具备 Chrome 浏览器的完整扩展平台。Electron 只实现部分 extension API;大量现代商店扩展依赖未实现的 Manifest V3 service worker、chrome.action、账号同步或浏览器专属行为。仅完成下载和加载会向用户呈现不可靠的“已安装”状态。

Adopt

聚焦浏览器与 Agent 控制

维持单一内置浏览器产品:标签页、地址栏、书签、历史、下载、数据导入、网页状态恢复,以及 DOM/ARIA 优先的 Agent 观察与操作。

纳入 0.7.0
Reject

内置扩展平台

不提供商店安装、本地目录加载、扩展恢复、启停、更新和管理 UI。

不发布
不是更换内核继续使用 Electron/Chromium;删除的是扩展产品承诺。
不是禁用网页Chrome Web Store 和 Edge Add-ons 仍可作为普通网页浏览。
不是外部浏览器接管0.7.0 不新增 Chrome/Edge 远程控制依赖。
02

用户能做什么

界面不再出现 Extensions 页面、“Install in OpenProgram”、商店安装按钮或本地扩展目录选择器。用户不会遇到“已添加但 OpenProgram 不支持”的矛盾结果。

用户能力0.7.0界面与行为
浏览普通网页与商店网页保留商店详情页按普通网页显示,不插入安装控件。
书签、历史、下载、主页与数据导入保留继续由内置浏览器管理,不依赖扩展。
Agent 感知并操作绑定 WebTab保留继续使用现有 Web Use / Computer Use 边界。
从 Chrome / Edge 导入 Cookie、书签和历史保留浏览器数据导入与扩展代码导入分离。
从 Chrome Web Store / Edge Add-ons 安装移除没有 OpenProgram 安装入口,不下载 CRX。
从本地目录加载 unpacked extension移除不暴露目录选择器或 preload IPC。
扩展启停、重载、更新和恢复移除不建立 registry、package 目录或启动恢复流程。
03

为什么不发布

主要问题不是下载,而是运行兼容性。真实商店扩展能被下载和解包,也可能被 Electron 接受加载,但这不能证明扩展的主要功能可用。把 manifest 预检结果显示为“支持/不支持”仍无法覆盖运行时 API、后台生命周期、工具栏交互和供应商自己的浏览器识别。
用户结果不可预测同一扩展可能安装成功,但登录、后台任务、popup 或页面注入部分失效。
维护范围持续扩大需要自行承担商店协议、CRX 校验、权限说明、API 兼容、更新和故障诊断。
不属于当前主目标0.7.0 的目标是稳定浏览器和 Agent 网页操作,不是实现另一套浏览器扩展平台。
04

架构影响

移除扩展功能后,网页 session 只负责网页状态、Cookie、下载和 DevTools/Agent 控制,不在启动前加载第三方代码。

已有用户目录中的旧 browser-extensions/ 数据不再读取或执行。0.7.0 不主动删除该目录,以避免升级过程删除用户文件;后续若提供清理入口,必须明确列出目标并由用户触发。

05

实施结果

DESKTOP

已删除 extension manager、启动恢复、全部 extension IPC、preload API 和打包文件;本地刷新会清除旧 ASAR 中残留的 manager 与专用依赖。

WEB

已删除 Extensions built-in page、Browser 菜单入口、商店详情页安装按钮、相关类型、图标和 URL 识别器。

STATE

恢复旧窗口状态时丢弃历史 Extensions 标签;不读取、不执行、也不删除用户目录中的旧扩展文件。

CONTRACT

check-no-browser-extensions.js 固定 Desktop、preload、Web 菜单、built-in page、bridge 和打包清单的负向边界。

RELEASE

Changelog、0.7.0 release notes、Desktop 文档与 FAQ 均明确“浏览器扩展不支持”,并列出保留的浏览器能力。

06

验收与证据边界

状态为“决策与代码均已实施”。证据只证明 OpenProgram 不再暴露或执行扩展功能,以及保留的浏览器专项检查通过;它不声称 Electron 具备完整 Chrome 扩展兼容性。

验收项当前完成证据
产品界面无扩展安装与管理入口通过check-no-browser-extensions、check:built-in-browser 与 Web TypeScript。
Desktop 不加载第三方 extension通过Desktop main/preload/package 负向契约;安装 manager 和专用生产依赖已删除。
旧扩展数据不执行且不被删除通过check:compound-tabs 覆盖旧标签迁移;生产代码没有删除用户 browser-extensions/ 目录的路径。
保留浏览器能力无回归通过check:webtabs、check:webtab-zoom-bounds、check:bookmarks、check:web-split 与 check:center-tabs。