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

mxschmitt / playwright-go
79%
main: 79%

Build:
Build:
LAST BUILD BRANCH: codex/fix-page-frames-race
DEFAULT BRANCH: main
Repo Added 29 Aug 2020 10:26AM UTC
Files 62
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

LAST BUILD ON BRANCH fix/page-frames-data-race
branch: fix/page-frames-data-race
CHANGE BRANCH
x
Reset
  • fix/page-frames-data-race
  • chore/migrate-to-mxschmitt
  • ci/rerun-flaky-tests-gotestsum
  • codex/fix-page-frames-race
  • feat/allow-cli-path-env
  • feature/websocket
  • fix/coveralls-badge-rendering
  • main
  • master

17 Jul 2026 12:14AM UTC coverage: 79.03% (+0.03%) from 79.004%
29544834853

Pull #625

github

alvarorichard
fix: guard pageImpl.frames with lock to fix data race in Page.Frames()

pageImpl.frames was written by the connection dispatch goroutine
(onFrameAttached/onFrameDetached) and read by user goroutines via
Page.Frames()/Page.Frame() with no synchronization. Frames() also
returned the internal slice without copying, so callers aliased
memory mutated by the event goroutine.

Guard p.frames with the sync.RWMutex already embedded via
channelOwner, mirroring the existing pattern in browser.go and
browser_context.go. Frames() now returns a copy under RLock, Frame()
iterates a locked snapshot, and onFrameAttached/onFrameDetached
mutate under Lock with Emit kept outside the critical section since
handlers run synchronously and may re-enter Page methods.

Adds a regression test that fails with multiple DATA RACE reports
under -race before this change and passes after.
Pull Request #625: fix: guard pageImpl.frames to prevent data race

14 of 14 new or added lines in 1 file covered. (100.0%)

8770 of 11097 relevant lines covered (79.03%)

14542.45 hits per line

Relevant lines Covered
Build:
Build:
11097 RELEVANT LINES 8770 COVERED LINES
14542.45 HITS PER LINE
Source Files on fix/page-frames-data-race
  • Tree
  • List 62
  • Changed 58
  • Source Changed 0
  • Coverage Changed 58
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
29544834853 fix/page-frames-data-race fix: guard pageImpl.frames with lock to fix data race in Page.Frames() pageImpl.frames was written by the connection dispatch goroutine (onFrameAttached/onFrameDetached) and read by user goroutines via Page.Frames()/Page.Frame() with no synchroni... Pull #625 17 Jul 2026 12:35AM UTC alvarorichard github
79.03
See All Builds (303)
  • Repo on GitHub
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