Документация
Для работы расширения требуется версия 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.ru | site.ru и www.site.ru по http и https |
http://localhost:*/* | localhost на любом порту |
Паттерн без схемы означает сайт с поддоменами по http и https:
| Вы пишете | Правило работает на |
|---|---|
site.ru, *site.ru*, *.site.ru | site.ru и всех его поддоменах |
www.site.ru | www.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. Если вам всё равно не хватает пространства, то на маловажных скриптах можно отключить синхронизацию в облако.