Crash, freeze and cut off a real Chromium for gate runs#68

merged1
feat/gate-2-synthfile
feat/gate-3-browser
openedOct 2, 2026byAAviddaram
View on GitHubTwo-way sync enabledPR last imported 20d ago

The gates have to crash, freeze and cut off a real browser. Playwright's own launch can't SIGKILL Chromium the way a power cut would, and it doesn't keep IndexedDB across the kill.

Browser spawns Chromium itself, in its own process group with a profile on disk, and attaches over CDP. NetControl injects network faults into whatever context is current, and reapplies them after a relaunch.

text
1Browser
2 launch spawn, connect over CDP, log in through staging-login, attach the ledger
3 crash SIGKILL the process group (IndexedDB survives in the profile)
4 freeze SIGSTOP for a duration, then SIGCONT (stands in for laptop sleep)
5 open new tab (tab close is just closing the page)
6
7NetControl
8 offline(d) setOffline, which kills PUTs already in flight
9 failPartOnce the next part PUT gets a 503
10 loseCompleteResponse route.fetch lets R2 finish the Complete, then the response is reset

Two things weren't obvious. Playwright's setFiles refuses files over 50 MB over CDP, so the gate sets the input by path through DOM.setFileInputFiles. And Chromium needs --no-sandbox in this container. Adds playwright@1.63.0.

Checks

4 successful · 2 skipped
All checks passed
a3ee757

Added 1 commit

  • Add browser lifecycle and network control for gate runsa3ee757
Synced from GitHub

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 070a7fed-c6ff-4198-a2b2-761f7d129da6

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.