This release adds 1 notable feature for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+14 more
Affected surfaces
Summary
AI summaryUpdates Assets, Page.dispatchMouseEvent, and https://github.com/feder-cr/invisible_playwright/issues/9 across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Low |
Added Windows x86_64 and Linux x86_64 stealth builds of Firefox 150.0.1 with checksums. Added Windows x86_64 and Linux x86_64 stealth builds of Firefox 150.0.1 with checksums. Source: granite4.1:8b-q6_K@2026-05-19 Confidence: high |
— |
| Feature | Low |
Provided Windows x86_64 and Linux x86_64 stealth builds of Firefox 150.0.1 with SHA256 checksums. Provided Windows x86_64 and Linux x86_64 stealth builds of Firefox 150.0.1 with SHA256 checksums. Source: granite4.1:30b@2026-05-19-audit Confidence: high |
— |
| Dependency | Low |
Updated invisible-playwright package version to include patched Firefox 150.0.1 stealth build. Updated invisible-playwright package version to include patched Firefox 150.0.1 stealth build. Source: granite4.1:8b-q6_K@2026-05-19 Confidence: high |
— |
| Dependency | Low |
Updated invisible-playwright to include the patched Firefox 150.0.1 stealth build. Updated invisible-playwright to include the patched Firefox 150.0.1 stealth build. Source: granite4.1:30b@2026-05-19-audit Confidence: high |
— |
| Performance | Low |
Ensures mouse operations (move, click, hover, wheel) perform correctly on Firefox 150.0.1 without altering anti-detect surface. Ensures mouse operations (move, click, hover, wheel) perform correctly on Firefox 150.0.1 without altering anti-detect surface. Source: granite4.1:30b@2026-05-19-audit Confidence: high |
— |
| Performance | Low |
Swapped six call sites to `window.synthesizeMouseEvent`, improving compatibility without altering anti-detect surface. Swapped six call sites to `window.synthesizeMouseEvent`, improving compatibility without altering anti-detect surface. Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | High |
Fixes mouse interaction failures on Firefox 150.0.1 caused by missing `windowUtils.jugglerSendMouseEvent`. Fixes mouse interaction failures on Firefox 150.0.1 caused by missing `windowUtils.jugglerSendMouseEvent`. Source: granite4.1:30b@2026-05-19-audit Confidence: high |
— |
| Bugfix | High |
Resolves mouse interaction failures on Firefox 150.0.1 with error 'win.windowUtils.jugglerSendMouseEvent is not a function'. Resolves mouse interaction failures on Firefox 150.0.1 with error 'win.windowUtils.jugglerSendMouseEvent is not a function'. Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
Guarded two `_linkedBrowser.scrollRectIntoViewIfNeeded` calls to avoid missing‑method errors. Guarded two `_linkedBrowser.scrollRectIntoViewIfNeeded` calls to avoid missing‑method errors. Source: granite4.1:30b@2026-05-19-audit Confidence: high |
— |
| Refactor | Medium |
Replaced six call sites with `win.synthesizeMouseEvent` for compatibility. Replaced six call sites with `win.synthesizeMouseEvent` for compatibility. Source: granite4.1:30b@2026-05-19-audit Confidence: high |
— |
Full changelog
Patched Firefox 150.0.1 — stealth build, revision 2.
Fix in this build
#9: every page.mouse.*, page.click(selector), locator.click(), page.hover(), mouse.wheel() was failing on firefox-1 with:
Mouse.move: Protocol error (Page.dispatchMouseEvent):
win.windowUtils.jugglerSendMouseEvent is not a function
The Playwright Juggler JS in the FF146 fork was importing calls to windowUtils.jugglerSendMouseEvent — a C++ method that exists in upstream Playwright's Firefox patches but was never landed in the FF146 → FF150 port. Six call sites across chrome/juggler/content/protocol/PageHandler.js and chrome/juggler/content/content/PageAgent.js were swapped to win.synthesizeMouseEvent (a chrome-scope Mozilla helper that already exists on the FF150 window). Two _linkedBrowser.scrollRectIntoViewIfNeeded call sites were also guarded — the method is missing on the FF150 <browser> element and was throwing before mouse events could dispatch.
Verified with a 12-case regression suite covering: mouse.move, mouse.click, dblclick, right-click → contextmenu, modifiers, locator.click, hover, mouse.wheel, manual mousedown/up, off-viewport mousemove, humanize intermediate moves (StealthFox Bezier still fires per-step), and scroll-and-click on offscreen elements. 12/12 PASS.
Reporter: @trob9 — supplied a 4-line minimal repro and ready-to-paste JS patches. Five-level diagnosis (IDL ↔ nsDOMWindowUtils.cpp ↔ JS source ↔ shipped dist ↔ xul.dll symbol table) all confirmed the C++ side was never compiled.
Anti-detect surface unchanged: synthesizeMouseEvent is a Mozilla helper, not a Playwright custom API. reCAPTCHA v3 / FingerprintPro / CreepJS results documented in the README continue to hold.
Upgrade
pip install --upgrade invisible-playwright
python -m invisible_playwright clear-cache
python -m invisible_playwright fetch
Assets
firefox-150.0.1-stealth-win-x86_64.zip— Windows x86_64 (123.8 MB)firefox-150.0.1-stealth-linux-x86_64.tar.gz— Linux x86_64 (117.8 MB)checksums.txt— SHA256 of both archives
Linux archive built by hot-swapping the two patched JS files into the firefox-1 Linux tarball (no rebuild needed; the fix is JS-only). Byte-identity of patched JS verified between Windows and Linux archives.
The C++ side of xul.dll is unchanged from firefox-1.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About feder-cr/invisible_playwright
All releases →Related context
Related tools
Earlier breaking changes
- vfirefox-3 Supersedes firefox-2; invisible_playwright BINARY_VERSION bumped to firefox-3 in 0.1.3.
Beta — feedback welcome: [email protected]