• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mxschmitt / playwright-go / 34021920463
78%
main: 78%

Build:
Build:
LAST BUILD BRANCH: cursor/cdp-download-guid-test-8e4e
DEFAULT BRANCH: main
Ran 06 Sep 2026 08:35AM UTC
Jobs 9
Files 62
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

06 Sep 2026 08:20AM UTC coverage: 78.073% (-1.5%) from 79.604%
34021920463

Pull #641

github

myrjola
fix: subscribe before re-checking in WaitForLoadState and WaitForURL so a state recorded in between is not lost

Frame.WaitForLoadState read the frame's load states, then built its
waiter (a timer goroutine and four listener registrations), and only then
subscribed to "loadstate". Events arrive on the connection's single
dispatch goroutine, which can run in that gap; a "loadstate" it delivered
there was emitted to no listener and is never replayed, so the wait slept
out its whole timeout with the state it wanted already recorded.
WaitForURL had the same shape around "navigated": it checked the URL, then
called ExpectNavigation, which subscribes several registrations later.

Upstream's client/frame.ts waitForLoadState builds the waiter first, checks
_loadStates, and calls waiter.dispose() when the state is already there;
JavaScript's run-to-completion makes that check atomic with the
subscription. This brings the Go port to the same shape: attach the
listener, re-check the recorded state, and dispose of the waiter (new
waiter.dispose(), after upstream's) rather than wait for an event that has
already been delivered. onLoadState and onFrameNavigated both update their
state before emitting, so a re-check after subscribing cannot miss an
event that fired before it.

Measured with a browser (six pages clicking between two pages whose
stylesheet and script make `load` trail the commit by a few ms):
page.WaitForURL after a click timed out 6 times in 1,800 with the page
already at the wanted URL and `load` delivered 0.2-0.4 ms after the call;
with this change 0 in 1,800 under heavy load. The two new unit tests aim
the event at the gap with no browser and fail within a few rounds on the
previous code at any GOMAXPROCS (they raise it to 2 if needed).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Pull Request #641: fix: flaky navigation timeouts caused by a lost wakeup in WaitForLoadState and WaitForURL

39 of 46 new or added lines in 2 files covered. (84.78%)

15 existing lines in 9 files now uncovered.

7926 of 10152 relevant lines covered (78.07%)

14089.7 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
79.27
-0.36% frame.go
2
92.45
-0.77% waiter.go

Coverage Regressions

Lines Coverage ∆ File
4
86.02
-0.77% connection.go
2
72.96
0.31% browser_context.go
2
68.6
-3.67% browser_type.go
2
92.59
-4.38% video.go
1
83.33
-3.7% binding_call.go
1
76.5
-1.59% browser.go
1
61.59
-2.69% locator.go
1
88.03
-2.09% locator_helpers.go
1
71.05
-6.22% playwright.go
Jobs
ID Job ID Ran Files Coverage
1 macos-latest-firefox - 34021920463.1 06 Sep 2026 08:47AM UTC 62
76.53
GitHub Action Run
2 windows-latest-chromium - 34021920463.2 06 Sep 2026 08:41AM UTC 62
77.81
GitHub Action Run
3 windows-latest-firefox - 34021920463.3 06 Sep 2026 08:43AM UTC 62
76.51
GitHub Action Run
4 macos-latest-webkit - 34021920463.4 06 Sep 2026 08:39AM UTC 62
75.93
GitHub Action Run
5 ubuntu-latest-webkit - 34021920463.5 06 Sep 2026 08:37AM UTC 62
76.39
GitHub Action Run
6 ubuntu-latest-chromium - 34021920463.6 06 Sep 2026 08:35AM UTC 62
77.83
GitHub Action Run
7 ubuntu-latest-firefox - 34021920463.7 06 Sep 2026 08:38AM UTC 62
76.53
GitHub Action Run
8 windows-latest-webkit - 34021920463.8 06 Sep 2026 08:38AM UTC 62
76.45
GitHub Action Run
9 macos-latest-chromium - 34021920463.9 06 Sep 2026 08:36AM UTC 62
77.8
GitHub Action Run
Source Files on build 34021920463
  • Tree
  • List 62
  • Changed 62
  • Source Changed 0
  • Coverage Changed 62
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #641
  • PR Base - main (#31999264115)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc