Перейти к содержимому

Глоссарий

Расширение браузера

Расширение читает открытые вами страницы и правит запросы, которые они шлют. Поэтому оно полезно, и поэтому же сайт обычно догадывается, какие из них у вас стоят.

Расширение браузера это набор веб-кода, который браузер грузит с правами, каких не даёт обычной странице.

Докуда дотягивается расширение

Права объявлены в манифесте и выдаются один раз. С обычным правом на чтение расширение видит адрес каждой вкладки и текст внутри неё.

  • Страница

    Оно вставляет в сайт скрипты и стили и меняет то, что вы там видите.

  • Трафик

    Оно закрывает и разворачивает запросы по объявленным правилам, а делает это сам браузер.

  • Своё хранилище

    Его данные переживают перезапуск и принадлежат тому профилю, где оно работает.

  • Дальше браузера никак

    Ваш диск и другие программы лежат вне песочницы, которую чертит браузер.

Грузится только 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

Вопросы

Едут ли расширения вместе с профилем?
Список включённых едет и при копировании профиля, и при переезде на другой компьютер. Файлы остаются на месте, и своя копия хранится у каждой машины.
Могут ли два профиля держать разные версии?
Нет. Одна папка на диске служит всем профилям машины, поэтому версия у всех одна, а различается только выбор.
Видит ли сайт, какие у меня расширения?
Часто да. Многие открывают странице файлы, которые можно запросить по имени, и большинство правит документ так, что документ это измеряет.
Меняет ли расширение мой отпечаток?
Заявленные профилем значения не меняет. Оно меняет поведение страниц вокруг вас, а поведение читается отдельно от любого заявленного значения.
Где лежат файлы?
В папке внутри данных программы на этом компьютере, по каталогу на расширение. Раздел расширений открывает её кнопкой.

Поставьте блокировщик в тот профиль, которому он нужен

Раздел расширений работает до входа в аккаунт, а кнопка включения сперва скачивает файлы.