No more NPAPI support for Chrome: What are the alternatives?

DevToolsGuy / Monday, February 16, 2015

As of January 2015 Chrome will be effectively dropping support for NPAPI, rendering it more or less obsolete. Google announced they would be phasing out the plugin in September 2013 and over the last fifteen months have been gradually reducing support on their browser, while simultaneously making it harder for developers to build components with it.

The Internet is constantly evolving and, according to Google, NPAPI was well past its sell by date. Blamed for hangs, vulnerable to threats and overtaken by more sophisticated APIs, NPAPI seems to have had its day. Some developers have been less than impressed by Google’s decision, citing specific programming tools that still depend on NPAPI, the potential problems around different browsers using different APIs and the general critique of the ‘Corporation as a behemoth crushing diversity’. Nonetheless, the vast majority of developers have already moved on from NPAPI, and Chrome supports a number of alternative extensions to fill in the gaps.

In this blog we’ll be taking a longer look at support for NPAPI, why Google is dropping it, and what alternatives are out there.

Not happy with NPAPI

NPAPI was developed for Netscape in the 1990s to allow users to run unusual files (such as video and audio) within their browsers without having to open them on a third platform. Quickly adopted by all major browsers, the plugin has more recently been made redundant by HMTL5, thanks to the code’s ability to play media without the help of a plugin. The big three web browsers have now dropped NPAPI plugins - first was Internet Explorer (which only ever partially adopted it) more recently followed by Mozilla and now Chrome.

In their September 2013 announcement, Google explained that they’d seen a steady decline in use of the plug-in, pointing out that only six NPAPI plugins had been used by more than five percent of users in the previous month and reiterated its decreasing utility:

“Today’s browsers are speedier, safer, and more capable than their ancestors. Meanwhile, NPAPI’s 90s-era architecture has become a leading cause of hangs, crashes, security incidents, and code complexity.”(Emil Protalinski)

Google has been hammering nails into the coffin ever since. The phase out schedule began with blocking the addition of new NPAPI supported apps on the Chrome Web store, rendering it more difficult to use apps supported by NPAPI and discouraging development. From April 2014 all NPAPI supported apps where unpublished from the webstore (although earlier purchases continued to function).

Google did produce an official whitelist of the most popular NPAPI plugins which would be spared the chop until January 2015 which included:

  • Silverlight (launched by 15 percent of Chrome users in the month to September 2013)
  • Unity (9.1 percent)
  • Google Earth (9.1 percent)
  • Java (8.9 percent, but already blocked for security reasons)
  • Google Talk (8.7 percent)
  • Facebook Video (6.0 percent)

Beyond this original list, Google also allowed developers to add their own apps to the whitelist for the sake of ongoing projects. While new NPAPI apps are now blocked on Chrome, support will remain for developers making the last minute transition away from the plugin. However, in April support will be totally dropped and it will be impossible to use installed extensions with the plugin by September 2015.

So, what now?

Recognizing developer’s concerns about installed extensions, Chrome has handily provided details on alternatives to NPAPI in their blog. By and large, HTML, CSS and JS will continue to be the main tools in the developer’s sandbox, fulfilling most coding needs. Meanwhile, HTML5 was designed to bypass the risks inherent in plugins by allowing developers to include video and music files within code (rather than as an add-on). HTML5 avoids many of the risks posed by using a plugin and makes the page viewing experience more seamless.

More complicated functionality can be achieved through the use of a new generation of web extensions. Google recommends in particular:

  • For browser to browser voice calling, video chat and p2p filesharing, Chrome recommend WebRTC (supported by most browsers other than Internet Explorer and Safari which still require a plugin)
  • Adaptive streaming and time-shifting live streams  - allowing JavaScript to generate responsive media streams for playback - can be achieved with Media Source Extensions
  • Digital Rights Management is covered by Encrypted Media Extensions, standardised over different browsers to allow seamless interaction with Content Decryption Modules. This extension type permits anything from simple Clear Key Decryption to high value video
  • Extensions for communication between native apps are also available. Users are required to download APIs which support tasks of escalating complexity - from one-time requests to long-lived connections and cross-extension messages

Google have good reasons for dropping NPAPI, and the improvements offered by HTML5 and related extensions clearly outweigh any benefits with sticking to the old technology. Most developers have already moved on, and those that haven’t will find NPAPIs descendants are more polished and performant than anything that has gone before. We are looking forward to seeing what these next gen tools are capable of.