1

Я хочу иметь возможность использовать расширения, такие как vimium и инвертор цветов, на каждой странице, включая встроенные функции, такие как chrome://settings или about:newtab .

Ни Firefox, ни Chromium не позволяют расширениям изменять встроенные страницы.

Можно ли изменить это поведение? Я не неравнодушен к какому-либо браузеру, мне просто нужно, чтобы он работал в одном из них. Я счастлив возиться с исходниками и перекомпилировать при необходимости.

1 ответ1

3

WebExtensions не могут изменить страницы about: или chrome:// , поэтому упомянутое вами поведение изменить нельзя. Это единственный API расширений, поддерживаемый как Firefox, так и Chrome, так как первый отказался от поддержки расширений XUL.

Расширения могут внедрять скрипты содержимого в закладки, соответствующие шаблонам URL или конкретным вкладкам, с помощью tabs.executeScript() . Оба метода используют "шаблон соответствия" для целевой страницы, который начинается с <scheme> которая должна быть http[s] , file , ftp или app (для Firefox), поэтому любой доступ к chrome:// или about: URLs невозможно. CSS-инъекция API tabs.insertCSS() использует шаблон соответствия и не может использоваться для изменения защищенных страниц.

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

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

Сочетания клавиш, зарегистрированные с помощью фонового сценария, действуют на всех страницах, но API, необходимый для действительно произвольных комбинаций клавиш, в настоящее время не существует. Если вы разрабатываете Firefox, вы можете повлиять about: страницы с изменениями userChrome.css .

https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Match_patterns https://developer.mozilla. org/en-US/ Дополнения / WebExtensions / API / Tabs / executeScript https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs/insertCSS https://developer.mozilla. орг / EN-US/ дополнения / WebExtensions / Anatomy_of_a_WebExtension # Background_scripts

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .