WebExtensions
WebExtensions are a collection of web browser application programming interfaces (APIs) for implementing browser extensions. There is not a single API that all browsers conform to, but as of 2018, most of the major browsers have very similar APIs.[1]
Strictly-speaking, "WebExtensions" is the official name for Firefox extensions, but Mozilla also uses the term to refer to similar APIs from other browsers.[1] Google Chrome was the first browser to have such an API. The success of Chrome, which has a large number of extensions, caused other browsers to adopt this approach. The other major browsers with similar APIs are Firefox and Microsoft Edge.
History
Google Chrome was the first browser with an extension API based solely on HTML, CSS, and JavaScript. Beta testing for Chrome's extension capability began in 2009,[2][3] and the following year Google opened its Chrome Web Store. As of June 2012, there were 750 million total installs of extensions and other content hosted on the store.[4]
Microsoft debuted its Edge browser in 2014. A key difference from Internet Explorer was implementing an extension API similar to Chrome's. In December 2018, Microsoft announced that Edge is being rebuilt as a Chromium-based browser.[5][6] One of the reasons is to leverage Chrome's large collection of extensions.[6][7]
In 2015, Mozilla announced that its long-standing XUL and XPCOM add-on capability would be deprecated in Firefox and replaced with an API simliar to Chrome's.[8] This change was enacted in 2017 with the release of Firefox 57.[9][10]
Attempts to create a single standard API have been unsuccessful. In 2015, the World Wide Web Consortium formed a working group to facilitate this,[11] but it is unlikely to happen.[12]
Security
Mozilla warns users that extensions "run in an environment with elevated privileges relative to ordinary web pages, they present a very serious set of security considerations. They have the potential to open security holes not only in the add-ons themselves, but also in the browser, in web pages, and, in particularly distressing cases, the entire system the browser is running on."[13]
Criminals have developed extensions that can silently hijack the browser settings, e.g. to change the homepage to a malicious site or inject links to malware.[14]
Browser Content Security Policy restricts the operation of WebExtensions, but some of the details vary among the major browsers.[15][16][17]
References
- ^ a b Official Mozilla documentation
- ^ "Extensions Status: On the Runway, Getting Ready for Take-Off". Chromium Blog. Retrieved 2018-12-14.
- ^ "Extensions beta launched, with over 300 extensions!". Chromium Blog. Retrieved 2018-12-14.
- ^ Vikas SN (2012-06-29). "The Lowdown: Google I/O 2012 Day 2 – 310M Chrome Users, 425M Gmail & More". MediaNama. Retrieved 2013-06-14.
- ^ "Microsoft Edge: Making the web better through more open source collaboration". Windows Experience Blog. 2018-12-06. Retrieved 2018-12-14.
- ^ a b Keizer, Gregg (2018-12-08). "With move to rebuild Edge atop Google's Chromium, Microsoft raises white flag in browser war". Computerworld. Retrieved 2018-12-14.
- ^ "r/Windows10 - Microsoft Edge: Making the web better through more open source collaboration". reddit. Retrieved 2018-12-15.
- ^ "The Future of Developing Firefox Add-ons". Mozilla Add-ons Blog. Retrieved 2018-12-15.
- ^ "Upcoming Changes in Compatibility Features". Mozilla Add-ons Blog. Retrieved 2018-12-15.
- ^ "How to enable legacy extensions in Firefox 57 - gHacks Tech News". www.ghacks.net. Retrieved 2018-12-14.
- ^ "Browser Extension Community Group Charter — Browser Extension Community Group". browserext.github.io. Retrieved 2018-12-14.
- ^ "Re: One question from Florian Rivoal on 2017-07-29 (public-browserext@w3.org from July 2017)". lists.w3.org. Retrieved 2018-12-14.
- ^ "Add-on Policies". MDN Web Docs. Retrieved 2018-12-15.
- ^ "Don't mess with my browser!". Google Chrome Blog. Retrieved 2018-12-15.
- ^ "Content Security Policy (CSP) - Google Chrome". developer.chrome.com. Retrieved 2018-12-15.
- ^ "Content Security Policy". MDN Web Docs. Retrieved 2018-12-15.
- ^ erikadoyle. "Extensions - Supported manifest keys - Microsoft Edge Development". docs.microsoft.com. Retrieved 2018-12-15.