A browser extension is a software module for customizing a web browser. Browsers typically allow users to install a variety of extensions, including user interface modifications, cookie management, ad blocking, and the custom scripting and styling of web pages.

Browser plug-ins are a different type of module and no longer supported by the major browsers. One difference is that extensions are distributed as source code, while plug-ins are executables (i.e. object code). The most popular browser, Google Chrome, has over 100,000 extensions available but stopped supporting plug-ins in 2020.

History
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 and Chrome began supporting extensions in 2009, and Safari did so the following year. Microsoft Edge added extension support in 2016.

API conformity
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.

Chrome was the first browser with an extension API based solely on HTML, CSS, and JavaScript. Beta testing for this capability began in 2009, and the following year Google opened the Chrome Web Store. As of June 2012, there were 750 million total installations of extensions and other content hosted on the store. In the same year, Chrome overtook Internet Explorer as the world's most popular browser, and its  usage share reached 60% in 2018.

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, but with the release of Safari 14 for macOS, the browser added support for extensions conforming to the Chrome API. The following year, extensions were enabled in the iOS version for the first time.

Unwanted behavior
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.

References

External links
Extension API documentation from Google, Apple, Mozilla, Microsoft, Opera
Official extension stores for Chrome, Firefox, Edge, Opera

Software add-ons
Web browsers
확장 프로그램(Extension) 또는 웹 브라우저 기능 확장 프로그램 또는 확장 기능은 웹 브라우저의 기존 기능의 동작을 변경하거나 완전히 새로운 기능을 추가하는 웹 브라우저용 프로그램이다. 웹 브라우저의 기본 기능에 외부 개발자가 개발한 프로그램을 추가함으로써 웹 브라우저의 맞춤화, 보안성 향상, 검색 기능 향상, 북마크 기능 추가, 번역 기능 등 웹 브라우저의 기능과 성능을 향상시킨다. 현재 크롬, 사파리, 파이어폭스 등 대표적인 웹 브라우저는 이러한 확장 프로그램을 지원하며, 독자적인 확장 프로그램 갤러리 사이트를 운영하고 있다.

확장 프로그램 기술 

 CSS (스타일시트)
 DOM (Document Object Model) – 리얼타임의 XUL을 변경하거나 현재 불러온 HTML을 수정한다.
 JavaScript – 모질라 브라우저의 주요한 언어
 XPCOM (Cross-Platform Component Object Model)
 XPConnect
 XPI (Cross-Platform Installer)
 XUL (XML 사용자 인터페이스 언어) – 사용자와 상호작용하고 사용자 인터페이스(UI)를 정의한다.

확장 프로그램의 역사 
모질라의 파이어폭스의 확장 프로그램이 먼저 시작되어 다양하고, 풍부한 확장 프로그램을 지원했다. 구글 크롬은 4.0 버전부터 확장 프로그램을 본격적으로 지원하였다. 이후 사파리는 사파리 5부터 확장 프로그램을 지원하였다.

확장 프로그램의 확장 양상

기능 추가 
확장 프로그램은 일반적으로 웹 브라우저에 기능을 추가하기 위해 사용된다. 예를 들어 RSS 리더, IE 렌더링 전환, 기능성 툴바, 특정 웹 사이트에 대한 전용 프로그램, FTP, 이메일, 마우스 동작에 의한 명령 실행, 프록시 서버, 개발자 도구 등이 있다.

웹 페이지의 변경 
많은 확장 프로그램은 웹 페이지가 렌더링될 때 웹 페이지의 콘텐츠를 변경할 수 있다. 그리고 그리스몽키는 사용자가 정의한 스크립트를 적용하여 웹 페이지를 제어할 수 있고, 스타일리시(Stylish)는 사용자 스타일을 적용하여 웹 페이지를 변경할 수 있다. 뿐만 아니라 특정 파일을 불러오지 않음으로써 광고와 같은 정보를 표시하지 않는 등 웹 브라우저는 사용자의 웹 페이지 통제권을 부여한다.

기타 
확장 프로그램은 웹 브라우저의 기능과 관계는 없지만 사용자를 위한 다양한 기능을 제공하기도 한다. 게임 기능이나 성능 향상, 브라우저 버그 패치 등을 할 수 있다.

호환성과 업데이트 
확장 프로그램은 웹 브라우저의 기능을 확장하는 역할을 하므로 웹 브라우저와 호환이 되어야 하는 경우가 있다. 특히 파이어폭스 브라우저의 버전은 확장 프로그램의 설치 조건을 결정하는 중요한 요소이다.

확장 프로그램은 개발자에 의해 지속적으로 유지, 관리되므로 브라우저 자체에 확장 프로그램의 업데이트가 자동으로 이루어지거나 업데이트 확인 후 알림 기능을 지원한다.

확장 프로그램의 개발 현황 
확장 프로그램은 브라우저별로 특정 확장 프로그램을 독점적으로 이용할 수 있었지만 점차 개방적인 양상으로 변해가고 있다. 예를 들어 파이어폭스의 가장 인기 있는 확장 프로그램인 애드블록 플러스(Adblock Plus)는 크롬의 광고 차단 목적의 확장 프로그램 허용에 따라 크롬에서도 이용할 수 있게 되었고, 크롬과 사파리의 브라우저 엔진과 API의 유사성으로 인해 사파리에서도 서비스되고 있다. 그리스몽키나 스타일리시, 파이어버그 등 다양한 확장 프로그램이 특정 웹 브라우저에서만 개발되지 않고, 점차 모든 웹 브라우저로 보편화되어 가고 있다.

지역화 
확장 프로그램은 보통 영어 또는 자국어로 서비스된다. 사용자는 자발적으로 번역 활동에 참여함으로써 확장 프로그램을 지역화 또는 번역할 수 있다. 파이어폭스의 확장 프로그램의 경우 사용자가 편리하게 번역할 수 있는 '바벨질라'라는 웹 번역 사이트를 이용할 수 있다.

확장 프로그램의 수익성 
대부분의 확장 프로그램은 무료로 이용할 수 있다. 하지만 확장 프로그램의 개발에 따른 대가 차원에서 기부를 요청하기도 하고, 이를 확장 프로그램 갤러리에서 반영하고 있기도 하다. 그리고 일부 확장 프로그램은 유료화하여 대가를 지불해야 이용할 수 있기도 하다. 예를 들어 구글은 크롬 확장 프로그램 갤러리 이외에 앱스토어를 운영하여 확장 프로그램을 유료화할 수 있는 수익 구조를 만들어 개발자의 수익을 보장하려고 한다.

확장 프로그램 갤러리 
 크롬 확장 프로그램 갤러리
 사파리 확장 프로그램 갤러리 
 파이어폭스 확장 프로그램 갤러리
 오페라 확장 프로그램 갤러리

같이 보기 
 플러그인

웹 브라우저