Введение
Расширение браузера (Browser Extension, Add-on, Plug-in) – программный компонент, встраиваемый в веб-браузер и расширяющий его стандартную функциональность. В отличие от веб-приложений, расширения имеют привилегированный доступ к браузерному API: они могут модифицировать DOM страниц, перехватывать и изменять HTTP-запросы, управлять вкладками и историей, взаимодействовать с буфером обмена.
История и контекст
Первые расширения для браузеров появились в Netscape Navigator в 1990-х. Настоящий расцвет наступил с появлением Firefox (2004), предложившего открытый API расширений и магазин Mozilla Add-ons. Chrome (2008) установил новую архитектурную модель с изолированными процессами. В 2015 году Mozilla, Opera и Google начали работу над унифицированным стандартом WebExtensions API, совместимым с Chrome Extension API. Microsoft Edge перешёл на Chromium (2020), сделав WebExtensions де-факто единым стандартом.
В 2023 году Google форсировал переход на Manifest V3, ограничивший возможности блокировщиков рекламы через declarativeNetRequest вместо webRequest.
Как это работает
Архитектура расширения включает несколько компонентов:
- manifest.json – файл манифеста: метаданные, объявляемые разрешения, пути к скриптам.
- Background Service Worker (Manifest V3) – обработчик событий браузера, работающий в изолированном контексте без доступа к DOM.
- Content Scripts – скрипты, внедряемые в DOM веб-страниц для чтения и модификации контента.
- Popup/Options UI – HTML-страницы для пользовательского интерфейса расширения.
- Web Accessible Resources – ресурсы, доступные веб-страницам из расширения.
Взаимодействие между компонентами осуществляется через Message Passing API (chrome.runtime.sendMessage). Разрешения (permissions) объявляются в manifest.json и запрашиваются у пользователя при установке.
Где применяется
- Информационная безопасность – блокировщики рекламы (uBlock Origin), защита от трекеров (Privacy Badger), менеджеры паролей (1Password, Bitwarden).
- Продуктивность – инструменты для работы с задачами, временем, заметками (Notion Web Clipper, Todoist).
- Разработка – DevTools-расширения, React Developer Tools, JSON Viewer.
- Маркетинг – SEO-инструменты (Ahrefs, SEMrush Toolbar), проверка доступности, тепловые карты.
- B2B sales – LinkedHelper, автоматизация работы с CRM через расширение на страницах LinkedIn.
Преимущества и ограничения
Расширения работают в контексте существующих сайтов, не требуя установки отдельного приложения. Это удобно для задач, тесно связанных с веб-контентом. Ограничения: переход на Manifest V3 существенно ограничил возможности блокировщиков рекламы; расширения с широкими разрешениями представляют риск безопасности (supply chain attacks через компромисс аккаунтов разработчиков); sandboxing ограничивает системный доступ.
Связь с другими понятиями
Расширения являются компонентами экосистемы браузера. Архитектурно пересекаются с PWA (Progressive Web Apps) и bookmarklets. В корпоративной среде управление расширениями является частью endpoint management и политик DLP. Производительность расширений влияет на Web Vitals метрики страниц.