diff --git a/browse/src/browser-manager.ts b/browse/src/browser-manager.ts index b29d539c5..7734f0a62 100644 --- a/browse/src/browser-manager.ts +++ b/browse/src/browser-manager.ts @@ -307,12 +307,16 @@ export class BrowserManager { } if (extensionsDir) { - launchArgs.push( - `--disable-extensions-except=${extensionsDir}`, - `--load-extension=${extensionsDir}`, - '--window-position=-9999,-9999', - '--window-size=1,1', - ); + // Skip --load-extension when running against a custom Chromium build that + // already bakes the extension in (e.g., GBrowser / GStack Browser.app). + // Loading it twice causes a ServiceWorkerState::SetWorkerId DCHECK crash. + if (!isCustomChromium()) { + launchArgs.push( + `--disable-extensions-except=${extensionsDir}`, + `--load-extension=${extensionsDir}`, + ); + } + launchArgs.push('--window-position=-9999,-9999', '--window-size=1,1'); useHeadless = false; // extensions require headed mode; off-screen window simulates headless console.log(`[browse] Extensions loaded from: ${extensionsDir}`); }