
Firefox PDF Viewer Not Working? Fix Every Error (2026)
Firefox's PDF.js viewer has specific failure modes that Chrome and Edge don't share. Here's how to diagnose and fix each one.
Firefox takes a different approach to PDF viewing than Chrome or Edge. Instead of using a native C++ PDF engine, Firefox bundles PDF.js — an open-source JavaScript renderer that reconstructs PDFs entirely within the browser. This makes Firefox's PDF viewer highly portable and sandboxed, but it also introduces failure modes that are specific to Firefox and don't appear in other browsers.
The most common Firefox PDF failures — content accumulation on Linux, blank pages on certain font-heavy PDFs, and viewer settings that silently route PDFs to download instead of display — all trace back to PDF.js's JavaScript architecture. Here's how to fix each one.
Fix 1: Firefox Downloads PDFs Instead of Opening Them
If clicking a PDF link triggers a download instead of opening the viewer, Firefox's application preference for PDFs is set to save rather than display.
- Go to
about:preferences→ General - Scroll down to the "Files and Applications" section
- Find "Portable Document Format (PDF)" in the Content Type list
- Click the dropdown in the "Action" column and select "Open in Firefox"
If "Portable Document Format (PDF)" doesn't appear in the list, the setting has never been customized and Firefox is using its default behavior. Try downloading a PDF file — Firefox will ask what to do with it. Select "Open with Firefox" and check "Do this automatically for PDF files."
Fix 2: Text Accumulates on Screen While Scrolling (Linux)
This is the most visually distinctive Firefox PDF bug: as you scroll through a PDF, text and graphics from previous pages "bleed through" onto the current page. Characters stack up on top of each other. Scrolling further makes it worse. On some setups, the entire PDF becomes unreadable after a few pages.
This is a rendering buffer issue in how Firefox's PDF.js compositor interacts with certain Linux graphics drivers — particularly on Ubuntu 22.04+, Fedora, and systems using older Mesa or X11 stacks.
Fix A: Disable hardware acceleration
This resolves the issue in most cases.
- Go to
about:preferences→ General - Scroll to the Performance section
- Uncheck "Use recommended performance settings"
- Uncheck "Use hardware acceleration when available"
- Restart Firefox
Fix B: Disable WebRender
If hardware acceleration is already off and the problem persists:
- Type
about:configin the address bar and press Enter - Search for
gfx.webrender.enabled - Set it to
false - Restart Firefox
WebRender is Firefox's GPU-accelerated compositing engine. On Linux systems with incomplete driver support, WebRender produces the layering artifacts that cause text accumulation.
Fix C: Use a system PDF viewer
If both fixes above don't resolve it, route PDFs to a system application instead:
- Go to
about:preferences→ General → Files and Applications - Find "Portable Document Format (PDF)"
- Change the action to "Use [your system viewer]" — Evince, Okular, or any installed reader
This bypasses PDF.js entirely for all PDFs.
Fix 3: PDF Renders Blank or Partially
If Firefox shows a blank page or only renders some content:
Clear Firefox's cache. Press Ctrl+Shift+Delete (or Cmd+Shift+Delete on Mac), select "Cache" under "Cookies and Site Data," and clear. Reload the PDF tab.
Disable PDF.js temporarily to test the file. In about:config, search for pdfjs.disabled and set it to true. Firefox will now offer to download the file. Open it in a desktop PDF viewer. If it renders correctly there, PDF.js can't handle this specific file's structure — see "When PDF.js Can't Handle the File" below.
Check for font issues. PDF.js struggles with PDFs that use non-standard font embedding — particularly Type1 fonts, certain Type3 fonts, and some CID-keyed CFF fonts. If the PDF has unusual fonts, those elements render blank while the rest of the document displays. This is a PDF.js limitation rather than a settings issue. The workaround is to process the PDF through a tool that normalizes font embedding before opening in Firefox.
Fix 4: Form Fields Not Working in Firefox
Firefox's PDF.js viewer supports basic form filling but doesn't implement all interactive form features that Adobe Acrobat does. If you click on form fields and nothing happens:
Interactive JavaScript forms. PDFs that use JavaScript to drive form behavior (calculations, conditional visibility, dynamic validation) partially or completely fail in PDF.js, which has limited JavaScript support. Open these forms in Adobe Reader or use OnlinePDFEdits — its form handling covers JavaScript-driven fields.
XFA forms. XFA (XML Forms Architecture) PDFs — created by LiveCycle Designer — are not supported in PDF.js at all. Firefox will display these as blank or show only non-interactive content. Adobe Reader is required for XFA forms, or you can flatten the form data through a conversion tool.
Update Firefox. PDF.js is bundled with Firefox and updated with each browser release. Older versions have documented form rendering regressions. Go to about:preferences → General → Firefox Updates → Check for Updates.
Fix 5: PDF Viewer Toolbar Missing or Incorrect
If the PDF viewer opens but shows no toolbar (no page navigation, no zoom, no download button):
Full-screen or kiosk PDF embed. Some websites embed PDFs in a way that hides the viewer's native toolbar. Right-click inside the PDF and look for "Open in new tab" or "Save PDF" options. Opening the PDF directly in a new tab restores the full toolbar.
Scroll to find the toolbar. In Firefox, the PDF toolbar appears at the top of the viewing area — but on small screens or zoomed browser windows, it can be pushed off the visible area. Scroll up or reduce the browser zoom level with Ctrl+−.
When PDF.js Can't Handle the File
PDF.js implements a large subset of the PDF specification, but not all of it. PDFs that fail specifically in Firefox but work in Chrome, Edge, or Adobe Reader usually contain one of the following:
- Type3 fonts — bitmap-based fonts common in older academic papers and some forms
- XFA forms — the XML-based form architecture that PDF.js explicitly doesn't support
- Complex transparency groups — layered transparency in design-tool exports
- PDF 2.0 features — newer specification elements that PDF.js hasn't fully implemented
The practical fix for these files is to open them in a desktop PDF viewer, or to normalize them first. Uploading the file to OnlinePDFEdits re-renders the content through a server-side PDF engine and produces a version that PDF.js can handle, since the server-side output normalizes fonts and removes problematic transparency structures.
Diagnostic Table
| Symptom | Platform | Likely Cause | Fix |
|---|---|---|---|
| PDF downloads instead of opening | All | Application preference set to "Save File" | Change to "Open in Firefox" in Preferences |
| Text accumulates on scroll | Linux | GPU compositing conflict | Disable hardware acceleration / WebRender |
| Blank page on render | All | Corrupt file or unsupported PDF structure | Clear cache; disable PDF.js to test the file |
| Form fields unresponsive | All | JavaScript forms or XFA | Use Adobe Reader or online editor |
| Specific fonts render blank | All | Non-standard font embedding | Normalize through an online tool |
| Toolbar missing | All | Embedded PDF iframe limiting UI | Open in new tab directly |
FAQ
Is PDF.js as accurate as Chrome's PDF viewer?
PDF.js is a JavaScript reimplementation of PDF rendering, while Chrome uses PDFium — a C++ engine that's also used in Chromium. PDFium is more accurate for complex PDFs, particularly those with intricate font embedding, transparency, or JavaScript. For everyday PDFs — text documents, reports, simple forms — the difference is negligible. Where you'll notice it is with design-tool exports, XFA forms, and academic papers using older font technologies.
Can I use a plugin to improve Firefox's PDF rendering?
Firefox doesn't support NPAPI plugins (the old plugin architecture) as of version 85. There are extensions in the Firefox Add-ons store that route PDFs to different viewers, but they typically work by downloading the file and opening it in a different application — not by improving in-browser rendering. For better in-browser rendering, Chrome or Edge with PDFium is the more reliable option for complex files.
Why do PDFs work in Chrome but not Firefox?
Chrome uses PDFium, Firefox uses PDF.js — they're different rendering engines with different capabilities. Files that fail in PDF.js but work in Chrome usually contain features that PDFium supports but PDF.js doesn't yet implement, such as certain font encoding schemes or JavaScript-heavy interactive forms. The solution is either to use Chrome for those specific files, open them in a desktop viewer, or pre-process them through a server-side tool that normalizes the structure.
How do I make Firefox always use a system PDF viewer instead of PDF.js?
Go to about:preferences → General → Files and Applications. Find "Portable Document Format (PDF)" in the list and change the action from "Open in Firefox" to "Use [application name]." If your preferred application doesn't appear in the dropdown, select "Use Other..." and navigate to the executable. Firefox will then pass all PDF files to that application instead of using its built-in viewer.


