The built-in tool and Mozilla's PDF.js are the only options left

Oct 30, 2013 11:21 GMT  ·  By

Google is moving beyond the ancient NPAPI platform for plugins in Chrome. Firefox is doing pretty much the same, though it's not dropping support completely like Chrome is doing. Overall, leaving behind the old platform is a good thing, but there are cases where this creates a problem.

For example, if you have disabled the built-in PDF reader in Chrome, you may have already noticed that PDF files open outside the browser, regardless of whether you have a PDF reader with a browser plugin, like Acrobat Reader, on your computer.

"If you disabled the native Chrome PDF Viewer in Chrome Canary from chrome://plugins, opening a PDF is now disabled by default even if you've installed the last version of Adobe Reader on Windows," Google's François Beaufort revealed.

While Chrome hasn't left the NPAPI plugin platform entirely behind yet, so it could in theory run the third-party PDF reader plugins, Google is blocking those already.

What this means is, if you want to read a PDF inside your browser, you either use the built-in plugin or you're out of luck.

Well, almost out of luck, as there is actually another option, the PDF.js extension for Chrome. Mozilla developed a pure JavaScript PDF reader for the web. It already uses it in Firefox, but since the code is open source, it has been ported to other browsers, like Chrome and Opera.

PDF.js may not be as compatible or as feature-rich as the Acrobat Reader plugin or even the one built into Chrome, but it's certainly a lot safer and, for the most part, faster than those.

It is perhaps a bit strange, but not that surprising, that, for all of Google's boasting, it's Mozilla that is building for the future of the web in an open and compatible way. Google opted for a proprietary plugin to add PDF support to Chrome, Mozilla built a JavaScript renderer.

Likewise, Google opted for a proprietary technology to run complex apps in the browser, Native Client, while Mozilla developed a C/C++ to JavaScript converter, Emscripten, and a very fast and powerful JavaScript engine extension, ASM.js, to run those converted apps at near native speeds.