OpenProgram · Architecture decision record

The built-in browser does not install Chrome / Edge extensions

OpenProgram 0.7.0 retains built-in browsing, bookmarks, history, downloads, browser-data import and Agent web control, but does not ship extension-store installation, local extension loading or extension management.

Decision: removed for 0.7.0 Audience: product · desktop · web Status: implemented
On this page
01

Product decision

The current Desktop uses Electron's Chromium, which does not provide Chrome's complete extension platform. Electron implements only some extension APIs; many modern store extensions depend on unsupported Manifest V3 service workers,chrome.action, account synchronization or browser-specific behavior. Downloading and loading alone would present users with an unreliable installed state.

Adopt

Focus on browsing and Agent control

Maintain one built-in browser product: tabs, address bar, bookmarks, history, downloads, data import, page-state recovery and DOM/ARIA-first Agent observation and operation.

Included in 0.7.0
Reject

Built-in extension platform

Do not provide store installation, local-directory loading, extension recovery, enable/disable, updates or management UI.

Not shipped
No browser-engine replacementContinue using Electron/Chromium; remove the extension product commitment.
Web pages remain availableChrome Web Store and Edge Add-ons remain accessible as ordinary web pages.
No external-browser takeover0.7.0 adds no Chrome/Edge remote-control dependency.
02

What users can do

The UI no longer shows the Extensions page, Install in OpenProgram, store-install buttons or a local-extension directory picker. Users will not encounter the contradictory result of an extension being added but unsupported by OpenProgram.

User capability0.7.0UI and behavior
Browse ordinary and store web pagesRetainedStore detail pages render as ordinary web pages without injected installation controls.
Bookmarks, history, downloads, Home and data importRetainedThe built-in browser continues to manage these without extensions.
Agent observation and operation of a bound WebTabRetainedContinue using the existing Web Use / Computer Use boundaries.
Import cookies, bookmarks and history from Chrome / EdgeRetainedBrowser-data import is separate from extension-code import.
Install from Chrome Web Store / Edge Add-onsRemovedNo OpenProgram installation entry and no CRX downloads.
Load unpacked extensions from local directoriesRemovedExpose neither a directory picker nor preload IPC.
Enable, disable, reload, update and recover extensionsRemovedDo not create a registry, package directory or startup recovery flow.
03

Why this does not ship

Runtime compatibility is the main problem, rather than downloading.Real store extensions can be downloaded and unpacked, and Electron may accept loading them, but this does not establish that their core features work. Labeling manifest preflight results as supported or unsupported cannot cover runtime APIs, background lifecycles, toolbar interactions or vendors' browser detection.
Unpredictable user outcomesAn extension may install successfully while login, background tasks, popups or page injection partially fail.
Expanding maintenance scopeThis requires maintaining store protocols, CRX verification, permission explanations, API compatibility, updates and diagnostics.
Outside the current primary objective0.7.0 aims for reliable browsing and Agent web operation, rather than implementing another extension platform.
04

Architecture impact

After removing extensions, web sessions handle only page state, cookies, downloads and DevTools/Agent control, without loading third-party code before startup.

Legacy browser-extensions/ data in existing user directories is no longer read or executed. 0.7.0 does not proactively delete this directory, avoiding removal of user files during upgrades. Any future cleanup entry must explicitly list targets and require user initiation.

05

Implementation results

DESKTOP

Removed the extension manager, startup recovery, all extension IPC, preload APIs and packaged files; local refresh removes the manager and dedicated dependencies left in the old ASAR.

WEB

Removed the Extensions built-in page, Browser menu entry, store-detail install button, associated types, icons and URL recognizers.

STATE

Discard historical Extensions tabs when restoring old window state; do not read, execute or delete legacy extension files in user directories.

CONTRACT

check-no-browser-extensions.js fixes the negative boundaries for Desktop, preload, Web menus, built-in pages, the bridge and packaging manifests.

RELEASE

The changelog, 0.7.0 release notes, Desktop documentation and FAQ explicitly state that browser extensions are unsupported and list retained browser capabilities.

06

Acceptance and evidence boundaries

The status is decision and code implemented. Evidence establishes only that OpenProgram no longer exposes or executes extension features and that targeted checks for retained browser capabilities pass; it does not claim complete Chrome-extension compatibility in Electron.

Acceptance itemCurrent statusCompletion evidence
No extension installation or management entry in the product UIPassedcheck-no-browser-extensions, check:built-in-browser and Web TypeScript.
Desktop does not load third-party extensionsPassedNegative Desktop main/preload/package contracts; the installation manager and dedicated production dependencies were removed.
Legacy extension data is neither executed nor deletedPassedcheck:compound-tabs covers old-tab migration; production code has no path deleting the user's browser-extensions/ directory.
No regression in retained browser capabilitiesPassedcheck:webtabs, check:webtab-zoom-bounds, check:bookmarks, check:web-split and check:center-tabs.