Skip to content

Fix/macos14 mac15 changes#320

Merged
mayank-at-sauce merged 4 commits intomainfrom
fix/macos14-mac15-changes
Mar 2, 2026
Merged

Fix/macos14 mac15 changes#320
mayank-at-sauce merged 4 commits intomainfrom
fix/macos14-mac15-changes

Conversation

@mayank-at-sauce
Copy link
Contributor

@mayank-at-sauce mayank-at-sauce commented Mar 2, 2026

Summary

  • Refactored scripts/bundle.macos.sh to use directory isolation for multi-arch browser bundling instead of the previous backup/restore + INSTALLATION_COMPLETE marker manipulation approach.

Problem

The previous bundling strategy installed ARM64 and x64 browsers into a single shared cache directory, requiring:

  1. Backing up ARM64 Chromium files to a temp directory
  2. Deleting INSTALLATION_COMPLETE markers to force Playwright to re-download x64 variants
  3. Restoring ARM64 files after the x64 install

This broke on Playwright 1.58.1, which dropped webkit support for mac13. The blanket marker deletion caused Playwright to attempt reinstalling webkit for mac13, resulting in: ERROR: Playwright does not support webkit on mac13.

Solution

ARM64 and x64 browsers are now installed into separate isolated directories (Cache-arm64/, Cache-intel/), then merged into the final Cache/ using rsync --ignore-existing:

  1. Step 1 — Install ARM64 browsers (chromium, chromium-headless-shell, webkit) into Cache-arm64/
  2. Step 2 — Install x64 browsers (chromium, chromium-headless-shell, firefox) into Cache-intel/
  3. Step 3 — Copy Intel as base layer, overlay ARM64 on top via rsync -a --ignore-existing, clean up temp dirs

This eliminates all INSTALLATION_COMPLETE marker manipulation and the backup/restore dance entirely. Each install is fully isolated — no risk of one corrupting the other.

Browser architecture mapping (unchanged from #313)

Browser ARM64 (mac14-arm64) x64 (mac13) Notes
Chromium chrome-mac-arm64/ chrome-mac-x64/ Both coexist after merge
Chromium Headless Shell chrome-headless-shell-mac-arm64/ chrome-headless-shell-mac-x64/ Both coexist after merge
Firefox firefox/ x64 only, runs via Rosetta 2 on Apple Silicon
WebKit pw_run.sh ARM64 only, mac13 unsupported in Playwright 1.58+

Test plan

  • build-macos-bundle CI job passes (no webkit mac13 error)
  • CI logs show Step 1 (ARM64 downloads), Step 2 (x64 downloads), Step 3 (merge)
  • bundle-test and bundle-test-with-sauce-connect jobs pass downstream
  • Verification step in CI logs shows both chrome-mac-arm64/ and chrome-mac-x64/ in final cache

anupam-sl and others added 2 commits March 2, 2026 14:21
Playwright resolves project config by replacing root-level `use`
properties with project-level ones. When a project defines its own
`use.contextOptions` (e.g. reducedMotion), it completely overrides
the root-level contextOptions — losing the SC tunnel proxy settings
and causing scripted requests to fail with ENOTFOUND.

This iterates over user-defined projects and merges proxy settings
into each project's contextOptions so both coexist.

Fixes INT-11

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@mayank-at-sauce mayank-at-sauce requested a review from a team as a code owner March 2, 2026 11:30
@mayank-at-sauce mayank-at-sauce merged commit cc96a84 into main Mar 2, 2026
37 checks passed
@mayank-at-sauce mayank-at-sauce deleted the fix/macos14-mac15-changes branch March 2, 2026 15:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants