If you have ever used Firefox on Linux to save a webpage as a document and then opened the file to find a layout that barely resembles what you were looking at, the September 2026 beta of Firefox 158 is for you. The fix is a renderer swap: Mozilla pulls in SkPDF, the PDF generation backend that lives inside Skia and is already used elsewhere in the browser. The result is that print-to-PDF and save-as-PDF on Linux now go through the same rendering pipeline as the rest of Firefox, and the years of accumulated “why is this image missing” complaints start to evaporate.
The stable release lands October 13, 2026 alongside Firefox 153.5 and the Firefox 115.43.0 ESR update. The beta is available from the official Mozilla download page right now. There will be regressions between now and stable, because every renderer swap has them. SkPDF is a real change, and some PDFs that printed correctly under the older code path will look slightly different under the new one.
What SkPDF actually replaces
The Linux PDF rendering story has been rough for a long time. The old code path was a separate implementation that did not share much with the rest of the browser’s rendering pipeline, which meant every Firefox rendering improvement over the years had to be ported twice (once for the screen, once for PDF). SkPDF shares its renderer with the rest of Firefox, so the rendering improvements apply to both, and the maintenance burden drops significantly.
What you actually notice as a user: tables stop breaking at unexpected points, missing fonts stop appearing as boxes, images stop vanishing, and the layout on the page matches the layout on the screen in a way it has not for years. Accessibility tagging also improves, which means screen readers handle the resulting PDFs more cleanly.
- Save-as-PDF and print-to-PDF both go through the new renderer on Linux and macOS.
- Accessibility tagging for screen readers improves across the board.
- Long-standing rendering bugs that piled up over the years get closed.
A cookie fix that quietly removes a real category of broken logins
There is a second change worth knowing about that almost no one is talking about. A long-standing cookie bug on Linux meant that when a server set a cookie without a Path attribute, or with a Path that did not start with a forward slash, Firefox was silently dropping it. That broke any login flow that relied on cookies being set at the root of a domain, and there are more of those than you would expect.
If you have ever had a site fail to log you in on Linux while it worked in every other browser, this is probably the bug you were hitting. The fix is a “make Firefox behave like every other browser” change rather than a new feature, which is why it does not appear in the marketing copy. But if your daily workflow includes Linux logins for any non-trivial web app, you will notice.
UX improvements that earn their keep quietly
Three smaller UX changes shipped alongside the headline fix, and each one is the kind of thing that you only appreciate once you have used it for a few days.
The New Tab page now maintains a real history of wallpapers you have uploaded, instead of dropping older ones off the selector. If you have ever switched back to a wallpaper you liked, only to discover it was no longer in the New Tab selector, the history was getting trimmed. Now the selector keeps everything you have uploaded.
Address and form filling suggestions in Firefox now factor in what you have been looking at in your other tabs, which can save a real amount of typing when you fill in shipping or address fields. The convenience has a privacy cost: Firefox is now reading more from your open tabs and stored autofill to build those suggestions. If you keep sensitive forms in your regular profile, that inference may or may not match your threat model.
High contrast mode on Windows now matches Firefox menus properly, which is a quiet improvement for anyone using a high-contrast theme.
- New Tab page keeps the full upload history instead of trimming older wallpapers.
- Form filling suggestions pull from open tabs and stored autofill.
- High contrast mode on Windows matches Firefox menus instead of partial-applying.
What the web platform additions look like for developers
If you write JavaScript that uses browser APIs, Firefox 158 closes a handful of gaps that have been forcing Firefox-specific workarounds in codebases for years. None of these additions are flashy. They are the kind of API surface that lets you delete Firefox-specific branches from your code.
The Notification constructor gains a navigate option so you can specify which URL opens when the user clicks the notification. ServiceWorkerRegistration.showNotification() picks up the same option. CSS calc() now supports typed arithmetic, so multiplying and dividing mixed units inside math functions returns type-correct values. PerformanceResourceTiming gains a deliveryType field with a cache value, so you can finally tell which resources were served from the HTTP cache in your performance traces. WebAuthn conditional UI now works on inputs that have the autocomplete webauthn attribute. The Network Monitor in DevTools now catches WebSocket frames that fire right after the connection establishes, which used to slip past the monitor entirely.
- Notification constructor and ServiceWorkerRegistration.showNotification() both support navigate.
- CSS calc() supports typed arithmetic with unit-aware results.
- PerformanceResourceTiming.deliveryType reports a cache hit value.
- WebAuthn conditional UI works on inputs with autocomplete=”webauthn”.
- Network Monitor catches WebSocket frames sent during connection setup.
A handful of accessibility and security fixes shipped alongside. Keyboard navigation no longer traps focus in the permissions panel, the address bar stops suggesting URLs from a different origin when you have typed the full hostname, and the TLS implementation (the protocol layer that encrypts HTTPS connections) closes a small timing-side-channel that could theoretically be used for fingerprinting (a tracking technique where a site identifies your browser by measuring tiny variations in how it behaves).
A practical way to try the beta without breaking your main browser
Firefox supports running multiple profiles out of the box, and the cleanest way to test a beta is a parallel one for desktop sessions and a second one for the beta. From a terminal, run firefox -P to launch the profile manager, create a new profile, point it at the beta build, and you have an isolated browser that cannot leak tabs or cookies into your main session.
Once you have the beta running in its own profile, the test plan that gives you the most signal in the least time is short. Print a PDF from a website you actually use for work. Save a long article you have read before and compare the resulting PDF to what you remember the screen looking like. Try logging into a site that has been silently broken on Linux for you. If you write JavaScript that uses the web platform additions, run the relevant code paths. The whole sequence takes about ten minutes, and each step tells you something concrete about whether the October 13 stable release is worth prioritizing.
Trade-offs
The SkPDF change is large enough that some PDFs that printed fine under the old code path will look slightly different under the new one, particularly PDFs that depend on specific font substitution behavior or that use older PDF features the new renderer handles in a different way. The accessibility improvements are real but have not been battle-tested across the same range of assistive tech that the older code has, so screen reader behavior may shift slightly between now and the stable release.
For developers, the typed arithmetic in CSS calc() is a subtle behavior change. If you have CSS that depended on the old loose typing behavior, it may now evaluate differently. Worth a code review pass on any complex calc() you maintain before assuming the upgrade is free. The new notification navigate option is new enough that edge cases will surface in the first weeks of stable release, particularly around service workers that were not built with the option in mind.
The form filling change means Firefox now reads more from your open tabs and stored autofill to build suggestions. The convenience is real, and so is the privacy trade-off. If your threat model treats open-tab content as sensitive, you may want to disable Smart Window form filling in preferences.
If you print to PDF on Linux more than twice a week, run the beta in a separate profile. The SkPDF change alone is worth a test drive, and the cookie fix removes a real category of login bugs. If you develop for the web, the API additions are enough reason to spin up 158 and start testing. October 13, 2026 becomes a calendar item either way.
If you cannot afford a beta regression in your primary browser, wait for the stable release.