Revert "Settings > Browser > Extensions: import, add-unpacked, and live enable/disable for web extensions"

Merged
AU
3mo ago
+687-13720

Reverts manaflow-ai/cmux#7699


View with Codesmith Autofix with Codesmith
Need help on this PR? Tag /codesmith with what you need. Autofix is disabled.


Summary by cubic

Reverts the Browser Extensions feature and all WebKit web‑extension hosting. Removes the browser.webExtensions setting, related UI, discovery/hosting code, and dependent APIs to restore the previous browser behavior.

  • Refactors

    • Removed extension settings and UI: browser.webExtensions, BrowserWebExtensionsCard, discovery/import flows, and all related localizations.
    • Deleted web‑extension runtime: BrowserWebExtensionSupport and all popout/permission/toolbar/tab adapter types.
    • Simplified browser code paths: moved external navigation helpers into BrowserPanel; removed extension navigation/context switching.
    • Removed seams from AppDelegate, DockSplitStore, TabManager, and Workspace for extension ownership, routing, and focus.
    • JSONConfigStore: removed update(_:); simplified JSONConfigStoreReadError.
    • JSONValueModel: removed first‑value/write tracking state; kept a simpler observe/set/reset flow.
    • BrowserPrewarmedWebViewPool and upgrade prewarmers: dropped browserWebExtensionHost parameters; updated call sites.
    • Pruned tests and strings tied to extensions; updated navigation and popup tests accordingly.
  • Migration

    • The browser.webExtensions key is no longer read; previously configured extensions will not load.
    • Remove uses of SettingsHostActions.discoverBrowserWebExtensions(), .browserWebExtensionsSupported(), and .browserWebExtensionLoadErrorUpdates().
    • Replace JSONConfigStore.update(_:) calls with explicit read/modify/set within the store actor.
    • Drop browserWebExtensionHost parameters and references; use BrowserPrewarmedWebViewPool.prewarm(url:profileID:) and claim(url:profileID:websiteDataStore:).

Summary by CodeRabbit

  • Changes
    • Removed built-in browser Web Extension discovery, loading, permissions, toolbar actions, popouts, and related settings.
    • Simplified browser navigation and external-link handling, including support for HTTP(S) fallbacks from intent links.
    • Improved browser popup data-store handling and streamlined web view lifecycle behavior.
    • Terminal configuration input now waits for surfaces to become ready before being delivered.
    • Simplified settings updates and removed obsolete browser extension configuration options.