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

Глоссарий

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

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

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

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

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

  • Страница

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

  • Трафик

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

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

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

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

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

Грузится только Manifest V3

Манифест объявляет, чем расширение является и что ему позволено. Третье поколение перевело фоновые страницы в служебные потоки, а блокировку в объявленные правила.

Нынешний Chromium старое поколение не принимает вовсе. Здесь отказ случается дважды: при установке и ещё раз перед запуском профиля.

  • Отказ при установке

    Манифест не третьего поколения останавливает установку, и вы сразу видите причину, а не ложный успех.

  • Пропуск при запуске

    Папку старого вида программа пропускает, а в уведомлении вы увидите и папку, и профиль.

  • Почему отказ произносится

    Браузер с такой папкой поднимается и не открывает ни одной страницы, а без сообщения вы решили бы, что сломался продукт.

Как страница его замечает

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

  • Файлы, доступные странице

    Расширение объявляет ресурсы, которые странице позволено загрузить, и запрос по имени отвечает, есть ли оно.

  • Правки в документе

    Вставленные узлы, переписанные стили и не появившаяся реклама видны самой странице.

  • Запросы, которых не было

    Закрытый запрос падает иначе, чем медленный, и страница засекает разницу.

  • Приметой становится редкий набор

    Обычный блокировщик говорит о вас мало. Необычное сочетание сужает круг, как любое редкое значение.

Набор принадлежит профилю

Включение расширения запоминается для одного профиля по имени его папки. Со входом в аккаунт выбор расширений из каталога уезжает туда, и профиль приносит его на вторую машину.

Сами файлы остаются на этой машине и общие для всех профилей, поэтому одна версия расширения служит всем.

  • До пятидесяти на профиль

    Дальше переключатель отказывает и говорит почему, а не принимает выбор, который запуск пропустит.

  • Только то, что включено

    Запуск отдаёт браузеру этот список вместе со встречным запретом, и рядом не грузится ничего.

  • Выключение действует сразу

    Расширение уходит из работающей сессии, не дожидаясь перезапуска программы.

Защита едет таким же расширением

На ARMANOS Browser блокировка слежки и чистка ссылок приезжают маленьким расширением, собранным для профиля при запуске. Правила берутся из того же источника, что и у встроенного движка, поэтому два движка не разойдутся.

Блокировка незаметна для страницы

Блокировка идёт внутри сетевого слоя. Ничего не подцеплено там, где это видно странице, и ни один запрос не ждёт нашу программу.

Про продукт оно не объявляет

Страничная половина говорит с остальным по имени события, которое берётся заново при каждом запуске, и сайт, слушающий сообщения, не слышит ничего.

Часто путают с этим

  • Пользовательский скрипт

    Он работает внутри страницы через расширение-хозяина и своих прав не имеет.

  • Подключаемый модуль

    Старый двоичный вид из этого семейства браузеров ушёл. Остался веб-код в песочнице.

  • Профиль

    Расширение это код, работающий в профиле. Профиль это личность, под которой он работает.

Чего это не делает

  • Это не принимает старый стандарт расширений. Слоя совместимости в продукте нет, и он не задуман.
  • Это не даёт расширению на встроенном движке своей кнопки и окна. Его скрипты на страницах там работают, правила блокировки исполняет сама программа, и экран расширений это говорит.
  • Это не даёт профилю свою копию расширения. Файлы принадлежат машине, а профилю принадлежит только выбор «включено» или «выключено».
  • Это вас не прячет. Каждое расширение добавляет поведение, которое страница умеет измерить, и чем их больше, тем больше читать.

Проверить

Каждая строка выше это файл, который можно открыть, и стенд, который держит её честной.

Каждая запись каталога действительно ставится из магазина
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

Вопросы

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

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

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