Skip to content

Commit ecf7efb

Browse files
fix(browse): bump Playwright to ^1.60.0 and pin full Chromium for extension loading
Two related fixes: 1. Playwright bump ^1.58.2 → ^1.60.0 (Chromium 1208/Chrome 145 → 1223/Chrome 148). Chromium 1208 fails Flutter Web's FlutterLoader environment compatibility check in headless mode, producing blank pages with webgl:false and no flt-glass-pane. Chromium 1223 (1.60.0) renders Flutter 3.41+ apps correctly in headless. Verified empirically: same browse source, same args, only Chromium build differs. 2. launchHeaded() now explicitly passes executablePath: executablePath || chromium.executablePath() to launchPersistentContext. Playwright 1.49 changed headless:true to use chrome-headless-shell (which cannot load extensions). The headed path was unaffected, but we were relying on that implicitly. This pin ensures /open-gstack-browser and /pair-agent keep loading the sidebar extension if Playwright ever changes launchPersistentContext defaults. GSTACK_CHROMIUM_PATH still takes priority in both paths. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 026751e commit ecf7efb

3 files changed

Lines changed: 10 additions & 5 deletions

File tree

browse/src/browser-manager.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,10 @@ export class BrowserManager {
418418
args: launchArgs,
419419
viewport: null, // Use browser's default viewport (real window size)
420420
userAgent: this.customUserAgent || customUA,
421-
...(executablePath ? { executablePath } : {}),
421+
// Playwright 1.49+ defaults headless:true to chrome-headless-shell, which
422+
// cannot load Chrome extensions. Explicitly pin the full Chromium binary
423+
// so future Playwright upgrades don't silently break /open-gstack-browser.
424+
executablePath: executablePath || chromium.executablePath(),
422425
...(this.proxyConfig ? { proxy: this.proxyConfig } : {}),
423426
// Playwright adds flags that block extension loading
424427
ignoreDefaultArgs: [

bun.lock

Lines changed: 4 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@
4747
"@ngrok/ngrok": "^1.7.0",
4848
"diff": "^7.0.0",
4949
"marked": "^18.0.2",
50-
"playwright": "^1.58.2",
50+
"playwright": "^1.60.0",
51+
"playwright-core": "^1.60.0",
5152
"puppeteer-core": "^24.40.0",
5253
"socks": "^2.8.8"
5354
},

0 commit comments

Comments
 (0)