Plug-ins based on the NPAPI architecture will be blocked by default in Chrome starting early next year as Google moves toward completely removing support for them in the browser.
"NPAPI's 90s-era architecture has become a leading cause of hangs, crashes, security incidents, and code complexity," Justin Schuh, a Google Chrome security engineer, said Monday in a blog post. "Because of this, Chrome will be phasing out NPAPI support over the coming year."
First developed for Netscape, NPAPI (Netscape Plug-in Application Programming Interface) has long been the most popular plug-in architecture, supported by browsers like Mozilla Firefox, Google Chrome, Apple Safari, Opera and Konqueror.
However, NPAPI's security shortcomings, like the fact that it spawns processes with privileged access to the underlying operating system, have in recent years led to a surge in attacks that exploit vulnerabilities in browser plug-ins to silently install malware on computers when users visit compromised or malicious websites. Google, Mozilla and Opera responded to this threat by implementing click-to-play, an optional feature that prompts users for confirmation before executing plug-in based content.
Google went even further and in 2010, the company started developing a new plug-in architecture called PPAPI (Pepper Plugin API) or simply Pepper, that forces plug-in code to run securely inside a sandbox and makes it less susceptible to crashes.
In August 2012, following two years of collaborative work with Adobe, Google switched the Flash Player plug-in bundled with Chrome for Windows from NPAPI to PPAPI. One month later it did the same for Chrome on Mac OS X.
While click-to-play has been available in Chrome for several years, the feature has not been enabled by default, except for a number of plug-ins that Google considered to present a higher security risk, like Java, RealPlayer, QuickTime, Shockwave, Windows Media Player and Adobe Reader prior to Adobe Reader X. That policy will soon change.
"Starting in January 2014, Chrome will block webpage-instantiated NPAPI plug-ins by default on the Stable channel," Schuh said. A temporary exception will be made for the most popular NPAPI plug-ins that are not already being blocked for security reasons in order to avoid disruption to users, he said.
The plug-ins that will be temporarily whitelisted will be Silverlight, Unity, Google Earth, Google Talk and Facebook Video, as they were used by more than 5 percent of users during the past month. Java was used by almost 9 percent of users, but it's already on the list of blocked plug-ins.
"In the short term, end users and enterprise administrators will be able to whitelist specific plug-ins," Schuh said. "Eventually, however, NPAPI support will be completely removed from Chrome."
That is expected to happen before the end of 2014, but the process of phasing out NPAPI support has already begun. Starting Monday, no new NPAPI-based apps or extensions will be accepted into the Chrome Web Store, the central repository for Chrome apps and extensions.
"Developers will be able to update their existing NPAPI-based Apps and Extensions until May 2014, when they will be removed from the Web Store home page, search results, and category pages," Schuh said. "In September 2014, all existing NPAPI-based Apps and Extensions will be unpublished. Existing installations will continue to work until Chrome fully removes support for NPAPI."
Schuh also noted that Mozilla plans to start blocking NPAPI plug-ins by default in December 2013 with the release of Firefox 26.
Mozilla already blocks some outdated plug-ins that pose security risks and in January announced plans to block all plug-ins except for the most recent version of Flash Player once its work on the click-to-play user interface is complete. The Firefox click-to-play feature is still in beta testing stages and can only be enabled at this time by accessing the browser's advanced about:config options.
It's not clear if Mozilla also plans to completely remove support for NPAPI plug-ins from Firefox in the future. A representative was not able to immediately clarify the situation.