invisible_playwright/.github/workflows
feder-cr 8d7b6eafdf ci: drive gate exercises mouse/keyboard/iframe/canvas, not just navigate+eval
An adversarial audit of the pipeline found the drive gate only did goto+evaluate,
so several historically-shipped breakages would still pass it green:
- firefox-2 (jugglerSendMouseEvent missing) — no mouse/keyboard was tested
- issue #20 (cross-origin iframe content_frame() None) — no iframe was tested
- canvas non-determinism (stealth seed) and headless navigator tells

ci_drive_gate.py now clicks a button, moves the mouse, types into an input,
reaches into an iframe, checks an identical canvas draw is byte-stable, and
checks navigator.languages/plugins — all offline (data: URLs), GPU-free, no
proxy. Validated against the real build.

Pipeline hardening from the same audit:
- Windows: stop swallowing `mach package` failure and never fall back to the
  dev tree dist/bin (that masked the firefox-7/8 packaging bugs)
- macOS: plutil -lint Info.plist + required-key checks (a malformed plist ships
  fine through a headless drive but Finder calls the .app "damaged")
- publish: assert all 5 archives present + fail_on_unmatched_files (no silent
  partial release if a build leg drops out)
2026-06-09 12:53:42 +02:00
..
firefox-launch-matrix.yml ci: fix firefox --version check (stdout match, not exit code) 2026-05-25 07:25:23 -07:00
release.yml ci: drive gate exercises mouse/keyboard/iframe/canvas, not just navigate+eval 2026-06-09 12:53:42 +02:00
tests.yml tests: add/update .github/workflows/tests.yml 2026-05-15 20:01:59 -07:00
verify-assets.yml ci: verify-assets needs contents:write to read draft releases 2026-06-09 12:29:35 +02:00
webrtc-e2e.yml test(webrtc): realness sentinels + e2e behind a fake TCP-only SOCKS proxy 2026-06-06 18:39:03 +02:00