Skip to content

Документация ​

Для работы расширения требуется версия Chrome 120 и выше. На данный момент другие браузеры не поддерживаются.

Правила ​

В контексте расширения, правило представляет собой JavaScript и/или CSS код, который задействуется на веб-страницах, соответствующих его URL паттернам.

URL паттерны ​

  • Паттерн выглядит как <scheme>://<host>/<path>: https://site.ru/*;
  • Несколько паттернов пишутся через запятую: https://one.ru/*, https://two.ru/*;
  • Исключение помечается !: !https://site.ru/admin/*.

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

Паттерн со схемой используется почти как написан:

Вы пишетеПравило работает на
https://site.ru/*site.ru и www.site.ru, но не на других поддоменах
https://*.site.ru/*site.ru и всех его поддоменах
https://site.ru/pathстраницах, начинающихся с /path, на site.ru и www.site.ru
https://site.ruвсём site.ru и www.site.ru
http*://site.rusite.ru и www.site.ru по http и https
http://localhost:*/*localhost на любом порту

Паттерн без схемы означает сайт с поддоменами по http и https:

Вы пишетеПравило работает на
site.ru, *site.ru*, *.site.rusite.ru и всех его поддоменах
www.site.ruwww.site.ru и site.ru
пример.рфпример.рф и его поддоменах
site.ru/pathстраницах, начинающихся с /path, на site.ru и поддоменах
/adminстраницах с /admin в пути на любом сайте
*любом сайте

Исключение со схемой используется ровно как написано: https://site.ru/*, !https://www.site.ru/* работает на site.ru, но не на www.site.ru. Исключение без схемы следует таблице выше: !site.ru/admin исключает /admin на site.ru и его поддоменах.

Красным отмечается паттерн, который браузер не примет: * внутри хоста (https://shop*.site.ru/*, https://site.*/*) или схема, где расширение не работает (chrome-extension://, ws://). Такой паттерн пропускается, остальные паттерны правила работают. Если браузер не примет исключение, правило не выполняется нигде, пока его не исправить, — иначе оно сработало бы на исключённых страницах.

Если не обойтись без старого режима URL, можно использовать решение из книги рецептов.

Свойства JavaScript ​

  • Изолированная среда: если включена, то JS код запускается в изолированной среде, где JS контекст страницы недоступен, но доступен DOM.
  • Все фреймы: если включена, код будет внедряться во все фреймы. Каждый фрейм проверяется на соответствие изначальным URL отдельно.
  • Запускать на старте: Если включено, то скрипт внедряется до построения DOM, иначе после, но до загрузки ресурсов, таких как изображения и фреймы. Обратите внимание, что событие DOMContentLoaded в этом случае уже срабатывать не будет.

Свойства CSS ​

  • Программное подключение:
    • Включено: изначально низкий приоритет стилей, но максимальный при использовании !important. Доступен режим живого редактирования CSS. Можно использовать без "режима разработчика".
    • Выключено: более высокий приоритет стилей за счёт расположения <style/> в конце DOM. Недоступен режим живого редактирование CSS. Этот режим недоступен без "режима разработчика".
  • Автоматический !important: добавляет !important ко всем свойствам CSS в уже скомпилированный код.

Общие правила ​

"Общие правила" позволяют выстраивать зависимости между разными правилами и явно контролировать очерёдность их загрузки. Любое правило можно отметить как "общее" — это добавит его в список подключаемых модулей у остальных правил. Из подключаемых правил берётся только JS и CSS контент, остальные свойства подключаемого правила игнорируются.

Другие особенности ​

  • Маркер правила включено игнорируется в случае когда правило общее и подключается другим правилом;
  • Маркер сохранять в облако лишь указывает на включение правила в хранилище при синхронизации и не производит дополнительных действий;
  • Режим стилей выбирается в меню панели стилей: «Авто» (по умолчанию) — препроцессор SASS или SCSS, синтаксис определяется автоматически по наличию символов {;} в коде; «CSS» — стиль применяется как написан, без препроцессора.

Модули ​

К правилам можно подключать внешние JS и CSS модули, они запускаются до правил. Поддерживаются https://... ссылки, тип ресурса распознаётся по расширению.

Контент модуля загружается и кешируется в хранилище расширения, для его обновления нужно нажать "скачать повторно" в окне редактирования.

Хранилище ​

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

Google Синхронизация ​

Если в браузере включена синхронизация, то можно резервные копии загружать в облако под своим Google аккаунтом. Такой метод не требует дополнительной авторизации и настройки, storage.sync это стандартный тип синхронизации для расширений.

Но он граничен 100кб, поэтому перед загрузкой из хранилища вычищается контент всех внешних ресурсов, удаляются все генеративные данные, а получившийся результат сжимается с помощью CompressionStream. Если вам всё равно не хватает пространства, то на маловажных скриптах можно отключить синхронизацию в облако.