Skip to content

fix(render): honor proxy environment variables in Chrome launches - #5178

Open
miguel-heygen wants to merge 2 commits into
mainfrom
fix/browser-proxy-environment
Open

miguel-heygen wants to merge 2 commits into
mainfrom
fix/browser-proxy-environment

Conversation

@miguel-heygen

Copy link
Copy Markdown
Collaborator

Chrome render launches now translate HTTP_PROXY, HTTPS_PROXY, and ALL_PROXY into native proxy settings through one shared resolver. Lowercase variables take precedence, NO_PROXY covers hosts and their subdomains, and localhost, IPv4 loopback, and IPv6 loopback always remain direct so local preview and composition servers stay reachable. URLs containing proxy credentials fail with a clear error before Chrome starts.

The CLI launch owner, engine capture pool, GPU probes, and audio browser launches share this policy. Resolved flags are part of the pool fingerprint, so changing the proxy cannot reuse a browser with an older policy. There is no new CLI flag, configuration field, or composition format.

Validation: mapping and refusal tests, a regression that fails on main when a changed proxy reuses the old browser, and real Chrome tests through both launch owners. A local stub receives an external HTTP fetch and denies its HTTPS CONNECT, while the local composition page bypasses the proxy. Deliberate mutations verify the mapping tests detect broken precedence, scheme selection, credentials refusal, bypass rules, and unset-variable behavior. Targeted typechecks and pre-commit checks pass.

@miguel-heygen
miguel-heygen marked this pull request as ready for review October 7, 2026 10:22
@miguel-heygen
miguel-heygen marked this pull request as draft October 7, 2026 10:24
@miguel-heygen
miguel-heygen marked this pull request as ready for review October 7, 2026 10:35
@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown

Edit accuracy: accurate 2059 (base branch 2059), smooth 1583 of those

The gate passes.
Smoothness is reported in the artifact, not gated. A case fails only if it fails 2 of 3 runs.

Quarantined, measured but not gated (0)

Unstable (3)

  • crop-none-px-r0-root-z200: tracking 0.02, pressJump 0, drop 40.03, reload 40, render 39.98, renderKey -, undo true, teleport true / tracking 0.02, pressJump 0, drop 0.04, reload 0.04, render 0.03, renderKey -, undo true, teleport true / tracking 0.02, pressJump 0, drop 0.04, reload 0.04, render 0.03, renderKey -, undo true, teleport true
  • crop-none-px-r30-root-z50: tracking 0.05, pressJump 0, drop 40.14, reload 40.14, render 34.74, renderKey -, undo true, teleport true / tracking 0.05, pressJump 0, drop 0.14, reload 0.14, render 0.26, renderKey -, undo true, teleport true / tracking 0.05, pressJump 0, drop 0.14, reload 0.14, render 0.26, renderKey -, undo true, teleport true
  • crop-none-px-r30-root-z100: tracking 0.04, pressJump 0, drop 40.08, reload 40.08, render 34.74, renderKey -, undo true, teleport true / tracking 0.04, pressJump 0, drop 0.08, reload 0.08, render 0.26, renderKey -, undo true, teleport true / tracking 0.04, pressJump 0, drop 0.08, reload 0.08, render 0.26, renderKey -, undo true, teleport true

This branch has not been deployed

No deployments
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.

1 participant