Глоссарий
Расширение браузера
Расширение браузера это набор веб-кода, который браузер грузит с правами, каких не даёт обычной странице.
Докуда дотягивается расширение
Права объявлены в манифесте и выдаются один раз. С обычным правом на чтение расширение видит адрес каждой вкладки и текст внутри неё.
Страница
Оно вставляет в сайт скрипты и стили и меняет то, что вы там видите.
Трафик
Оно закрывает и разворачивает запросы по объявленным правилам, а делает это сам браузер.
Своё хранилище
Его данные переживают перезапуск и принадлежат тому профилю, где оно работает.
Дальше браузера никак
Ваш диск и другие программы лежат вне песочницы, которую чертит браузер.
Грузится только Manifest V3
Манифест объявляет, чем расширение является и что ему позволено. Третье поколение перевело фоновые страницы в служебные потоки, а блокировку в объявленные правила.
Нынешний Chromium старое поколение не принимает вовсе. Здесь отказ случается дважды: при установке и ещё раз перед запуском профиля.
Отказ при установке
Манифест не третьего поколения останавливает установку понятной причиной, а не зелёным итогом.
Пропуск при запуске
Папка старого вида остаётся в стороне, а уведомление называет и папку, и профиль.
Почему отказ произносится
Браузер с такой папкой поднимается и не открывает ни одной страницы, и молчание читалось бы как поломка продукта.
Как страница его замечает
Расширения это часть того, что сайт может прочитать про браузер. Большинство оставляет приметы, для поиска которых разрешения не нужно.
Файлы, доступные странице
Расширение объявляет ресурсы, которые странице позволено загрузить, и запрос по имени отвечает, есть ли оно.
Правки в документе
Вставленные узлы, переписанные стили и не появившаяся реклама видны самой странице.
Запросы, которых не было
Закрытый запрос падает иначе, чем медленный, и страница засекает разницу.
Приметой становится редкий набор
Обычный блокировщик говорит о вас мало. Необычное сочетание сужает круг, как любое редкое значение.
Набор принадлежит профилю
Включение расширения запоминается для одного профиля по имени его папки. Со входом в аккаунт тот же выбор уезжает туда, и профиль приносит его на вторую машину.
Сами файлы остаются на этой машине и общие для всех профилей, поэтому одна версия расширения служит всем.
До пятидесяти на профиль
Дальше переключатель отказывает и говорит почему, а не принимает выбор, который запуск пропустит.
Только то, что включено
Запуск отдаёт браузеру этот список вместе со встречным запретом, и рядом не грузится ничего.
Выключение действует сразу
Расширение уходит из работающей сессии, не дожидаясь перезапуска программы.
Защита едет таким же расширением
На нашем движке блокировка слежки и чистка ссылок приезжают маленьким расширением, собранным для профиля при запуске. Правила берутся из того же источника, что и у запасного движка, поэтому два движка не разойдутся.
Блокировка идёт внутри сетевого слоя. Ничего не подцеплено там, где это видно странице, и ни один запрос не ждёт нашу программу.
Про продукт оно не объявляет
Часто путают с этим
Пользовательский скрипт
Он работает внутри страницы через расширение-хозяина и своих прав не имеет.
Подключаемый модуль
Старый двоичный вид из этого семейства браузеров ушёл. Остался веб-код в песочнице.
Профиль
Расширение это код, работающий в профиле. Профиль это личность, под которой он работает.
Чего это не делает
- Это не принимает старый стандарт расширений. Слоя совместимости в продукте нет, и он не задуман.
- Это не меняет страницу на запасном движке. Там работают только правила блокировки, которые программа исполняет сама, и карточка это говорит.
- Это не даёт профилю свою копию расширения. Файлы принадлежат машине, а профилю принадлежит только выбор «включено» или «выключено».
- Это вас не прячет. Каждое расширение добавляет поведение, которое страница умеет измерить, и чем их больше, тем больше читать.
Проверить
Каждая строка выше это файл, который можно открыть, и стенд, который держит её честной.
- Каждая запись каталога действительно ставится из магазина
- packages/shared/src/index.js · apps/desktop/test/catalog-installable.js
- Грузится только третье поколение, и имя папки не выходит за свой каталог
- apps/desktop/src/main/main.js · apps/desktop/test/extension-paths.js
- Выбор принадлежит профилю, и пустой ответ его не стирает
- apps/desktop/src/lib/ext-state.js · apps/desktop/test/выбор-расширений-не-стирается.js
- Расширение защиты не называет продукт никому
- apps/desktop/src/lib/forkExtension.js · apps/desktop/test/fork-extension-stealth.js
Вопросы
- Едут ли расширения вместе с профилем?
- Список включённых едет и при копировании профиля, и при переезде на другой компьютер. Файлы остаются на месте, и своя копия хранится у каждой машины.
- Могут ли два профиля держать разные версии?
- Нет. Одна папка на диске служит всем профилям машины, поэтому версия у всех одна, а различается только выбор.
- Видит ли сайт, какие у меня расширения?
- Часто да. Многие открывают странице файлы, которые можно запросить по имени, и большинство правит документ так, что документ это измеряет.
- Меняет ли расширение мой отпечаток?
- Заявленные профилем значения не меняет. Оно меняет поведение страниц вокруг вас, а поведение читается отдельно от любого заявленного значения.
- Где лежат файлы?
- В папке внутри данных программы на этом компьютере, по каталогу на расширение. Раздел расширений открывает её кнопкой.
Поставьте блокировщик в тот профиль, которому он нужен
Раздел расширений работает до входа в аккаунт, а кнопка включения сперва скачивает файлы.