Repository navigation
Conversation
Contributor
There was a problem hiding this comment.
All reported issues were addressed across 2 files
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
Author
|
Closing this PR: there has been no maintainer response for over a month, so I'm keeping the contribution queue tidy. The change remains on the fork branch — feel free to ask me to reopen it if you'd like to take it up. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
/json/listendpoint before starting the browser WebSocket handshake.chrome-windowlessdiagnostic when Chrome consistently exposes no page target.Why
A local Chrome launched with
--no-startup-windowcannot render the remote-debugging permission popup. The daemon currently waits for the full 45-second handshake timeout and then tells the user to click a popup that does not exist.Design
The probe is restricted to loopback
ws://endpoints in local-browser mode. It requires three consecutive empty target lists, spaced 200 ms apart, so a newly launched Chrome can publish its first page target before being classified as windowless. Any ambiguous probe result fails open to the existing handshake behavior.Verification
uv run --python 3.12 --with pytest python -m pytest tests/unit/test_daemon.py -q— 38 passeduv run --python 3.12 --with ruff ruff check --select E9,F63,F7,F82 src/browser_harness/daemon.py tests/unit/test_daemon.pyuv run --python 3.12 --with build python -m buildFixes #554
Summary by cubic
Fixes the 45-second handshake timeout caused by Chrome launched with
--no-startup-window, which cannot show the remote-debugging permission popup. The daemon now probes the local DevTools/json/listendpoint before the handshake and fails fast with achrome-windowlessdiagnostic when Chrome consistently exposes no page target.ws://endpoints and falls back to the existing handshake for any ambiguous or malformed result.Fixes #554.
Written for commit f95d474. Summary will update on new commits.