Download Latest Version firefox-150.0.1-stealth-linux-x86_64.tar.gz (118.4 MB)
Email in envelope

Get an email when there's a new version of invisible_playwright

Home / firefox-5
Name Modified Size InfoDownloads / Week
Parent folder
checksums.txt 2026-05-21 217 Bytes
firefox-150.0.1-stealth-win-x86_64.zip 2026-05-21 129.8 MB
firefox-150.0.1-stealth-linux-x86_64.tar.gz 2026-05-21 118.4 MB
invisible-firefox (150.0.1) rev 5 source code.tar.gz 2026-05-20 9.1 MB
invisible-firefox (150.0.1) rev 5 source code.zip 2026-05-20 9.1 MB
README.md 2026-05-20 1.4 kB
Totals: 6 Items   266.4 MB 2

Patched Firefox 150.0.1 build with the C7 closure — nsIDocShell.overrideTimezone IDL method now implemented in C++.

What changed since firefox-4

Content-side timezone propagation through Juggler used to call docShell.overrideTimezone(timezoneId) and crash with TypeError: docShell.overrideTimezone is not a function. On the non-persistent path the error was harmless (Juggler stayed up). On launch_persistent_context(timezone_id=...) it blocked the handshake and Playwright timed out at 180s. With the method present, persistent context starts in ~20s like the regular path.

All other binary content is identical to firefox-4.

SHA256

See checksums.txt.

Pair with

invisible_playwright 0.1.6 — the wrapper rev that drops the firefox-4-era workaround filtering locale/timezone_id out of the persistent context kwargs.

Patch details

docshell/base/nsIDocShell.idl declares boolean overrideTimezone(in AString aTimezone). docshell/base/nsDocShell.cpp implements it: walks GetWindow → inner window → global → realm → JS::SetRealmTimezoneOverride. Returns false only if the docShell has no current window or realm. Otherwise true.

The parent-process Browser.setTimezoneOverride path keeps using the existing BrowsingContext.TimezoneOverride FIELD + DidSet that propagate to every realm; this content-side method is its complement for realms that the docshell-restore just created.

Source: README.md, updated 2026-05-20