The Netscape Plugin Application Programming Interface (NPAPI) is a cross-platform plugin architecture used by many browsers, with the notable exception of Internet Explorer.
The Netscape Plugin Application Programming Interface (NPAPI) is a cross-platform plugin architecture used by many browsers, with the notable exception of Internet Explorer.
Deprecation
The NPAPI is being gradually deprecated by Google (Chrome) and Mozilla (Firefox):
- Starting January 1st 2014, Chrome disabled NPAPI plugins by default (with the exception of a few popular plugins). However, Users are prompted and can choose to activate the plugin.
Chrome is expected to remove all support for NPAPI come January 2015.
Starting with Firefox version 30 (June 10th, 2014), NPAPI is disabled by default (Again, with the temporary exception of a few plugins). Users can still enable specific plugins using Firefox's settings menu.
Alternatives
There are a number of ways to replace the now-almost-defunct NPAPI plugins:
In Google's Chrome, the 2 main options are NaCl (Native Client) and Chrome extension with Native Messaging - each offering a different kind of solution.
In Mozilla's Firefox, the common alternative is using the js-ctypes feature which allows direct loading of .dlls. The Firefox team has indicated that they will be eventually supporting Native Messaging like Chrome does.
A rudimentary overview of the options (with comparison of their strengths and weaknesses) is available here:
http://www.firebreath.org/display/documentation/Browser+Plugins+in+a+post-NPAPI+world
The FireBreath team has also released FireBreath 2 with very sparse documentation (users are asked to help document it) which attempts to make FireBreath plugins work via Native Messaging in addition to NPAPI and ActiveX support.
Resources
- npapi-sdk - Official repository for the NPAPI headers.
- npsimple - The "Hello, World!" of NPAPI.
- Mozilla Developer Center on plugins and NPAPI.
- FireBreath, a cross-platform framework building NPAPI and ActiveX plugins from the same source base that can target Windows, Mac, and *nix.
- The JUCE framework includes wrapper classes for browser plugins.
- Nixysa, a glue code generation framework for NPAPI plugins.
- Mozilla's policy regarding whitelisted plugins.
- Google's announcement regarding NPAPI deprecation.