A browser extension is a small software module for customizing a web browser. Browsers typically allow a variety of extensions, including user interface modifications, ad blocking, and cookie management.
Browser plug-ins are a separate type of module. The main difference is that extensions are usually just source code, but plug-ins are always executables (i.e. object code). As of 2021, plug-ins have been deprecated by most browsers, while extensions are widely used. The most popular browser, Google Chrome, has over 100,000 extensions available but no longer supports plug-ins.
Internet Explorer was the first major browser to support extensions, with the release of version 4 in 1999.Firefox has supported extensions since its launch in 2004. Opera began supporting extensions in 2009, and both Google Chrome and Safari did so the following year. Microsoft Edge added extension support in 2016.
In 2015, a community working group formed under the W3C to create a single standard application programming interface (API) for browser extensions. While that goal is unlikely to be achieved, the majority of browsers already use the same or very similar APIs due to the popularity of Google Chrome.
Because of Chrome's success, Microsoft created a very similar extension API for its Edge browser, with the goal of making it easy for Chrome extension developers to port their work to Edge. But after three years Edge still had a disappointingly small market share, so Microsoft rebuilt it as a Chromium-based browser. (Chromium is Google's open-source project that serves as the functional core of Chrome and many other browsers.) Now that Edge has the same API as Chrome, extensions can be installed directly from the Chrome Web Store.
With its own market share in decline, Mozilla also decided to conform. In 2015, the organization announced that the long-standing XUL and XPCOM extension capabilities of Firefox would be replaced with a less-permissive API very similar to Chrome's. This change was enacted in 2017. Firefox extensions are now largely compatible with their Chrome counterparts.
Until 2020, Apple was the lone major exception to this trend, as its API for Safari required using the Xcode tool to create extensions. However, Apple announced that Safari 14 would conform to the Chrome API as part of the macOS 11 update.
Browser extensions typically have access to sensitive data, such as browsing history, and they have the ability to alter some browser settings, add user interface items, or replace website content. As a result, there have been instances of malware, so users need to be cautious about what extensions they install.
There have also been cases of applications installing browser extensions without the user's knowledge, making it hard for the user to uninstall the unwanted extension.
Some Google Chrome extension developers have sold their extensions to third-parties who then incorporated adware. In 2014, Google removed two such extensions from the Chrome Web Store after many users complained about unwanted pop-up ads. The following year, Google acknowledged that about five percent of visits to its own websites had been altered by extensions with adware.
Edited: 2021-06-18 12:38:08