| Name | Modified | Size | Downloads / 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.