Документация
Для работы расширения требуется версия Chrome 120 и выше. На данный момент другие браузеры не поддерживаются.
Правила
В контексте расширения, правило
представляет собой JavaScript и/или CSS код, который задействуется на веб-страницах, соответствующих его URL паттернам.
URL паттерны
- Паттерн смеет схему:
<scheme>://<host>/<path>
; - Можно комбинировать через запятую:
https://one.ru/*, https://two.ru/*
; - Через
!
помечается исключающий паттерн:!https://excluded.com/*
.
Изменения с версии 3.0
Начиная с версии 3.0 возвросли требования к URL паттернам расширения, подробно о них можно почитать на странице Google. Если коротко:
- Паттерн должен начинаться строго со схемы
http|https|*
; - Домен и зону нужно писать без масок:
one.ru
, но поддомен можно*.one.ru
. Так же разрешается весь хост указать маской*
. - Вне зависимости от наличия пути, хост завершается разделителем
/
:https://one.ru/, https://two.ru/path*
; - Путь опционален, маска
*
разрешается.
✅ Примеры рабочих паттернов:
https://domain.zone/path/*
https://*.site.com/path
https://*/path/
*://*/*
❌ Работать не будут:
https://domain.*/*
http*://domain.zone/
https://domain.zone
domain.zone
Будущие измененения
Большинство невалидных паттернов сейчас работают за счёт временного преобразователя URL, но корректнеость его работы не гарантирована, поэтому рекомендуется его отключать и переписывать URL по новым правилам. В дальнейшем результат его работы будет сохранён как исходный, а сам он убран.
Если не обойтись без старого режима URL, можно использовать решение из книги рецептов.
Свойства JavaScript
Изолированная среда
: если включена, то JS код запускается в изолированной среде, где JS контекст страницы недоступен, но доступен DOM.Все фреймы
: если включена, код будет внедряться во все фреймы. Каждый фрейм проверяется на соответствие изначальным URL отдельно.Запускать на старте
: Если включено, то скрипт внедряется до построения DOM, иначе после, но до загрузки ресурсов, таких как изображения и фреймы. Обратите внимание, что событиеDOMContentLoaded
в этом случае уже срабатывать не будет.
Свойства CSS
Программное подключение
:- Включено: изначально низкий приоритет стилей, но максимальный при использовании
!important
. Доступен режим живого редактирования CSS. Можно использовать без "режима разработчика". - Выключено: более высокий приоритет стилей за счёт расположения
<style/>
в конце DOM. Недоступен режим живого редактирование CSS. Этот режим недоступен без "режима разработчика".
- Включено: изначально низкий приоритет стилей, но максимальный при использовании
Автоматический !important
: добавляет!important
ко всем свойствам CSS в уже скомпилированный код.
Общие правила
"Общие правила" позволяют выстраивать зависимости между разными правилами и явно контролировать очерёдность их загрузки. Любое правило можно отметить как "общее" — это добавит его в список подключаемых модулей у остальных правил. Из подключаемых правил берётся только JS и CSS контент, остальные свойства подключаемого правила игнорируются.
Другие особенности
- Маркер правила
включено
игнорируется в случае когда правило общее и подключается другим правилом; - Маркер
сохранять в облако
лишь указывает на включение правила в хранилище при синхронизации и не производит дополнительных действий; - Выбор синтаксиса препроцессора
SASS
илиSCSS
происходит автоматически, на основе наличия символов в{;}
в коде.
Модули
К правилам можно подключать внешние JS и CSS модули, они запускаются до правил. Поддерживаются https://...
ссылки, тип ресурса распознаётся по расширению.
Контент модуля загружается и кешируется в хранилище расширения, для его обновления нужно нажать "скачать повторно" в окне редактирования.
Хранилище
Улучшение функционала резервных копий и синхронизации только предстоит, а пока резервные копии работают только вручную и только в режиме полной замены хранилища.
Google Синхронизация
Если в браузере включена синхронизация, то можно резервные копии загружать в облако под своим Google аккаунтом. Такой метод не требует дополнительной авторизации и настройки, storage.sync
это стандартный тип синхронизации для расширений.
Но он граничен 100кб, поэтому перед загрузкой из хранилища вычищается контент всех внешних ресурсов, удаляются все генеративные данные, а получившийся результат сжимается с помощью CompressionStream
. Если вам всё равно не хватает пространства, то на маловажных скриптах можно отключить синхронизацию в облако.