
Я хочу иметь возможность использовать расширения, такие как vimium и инвертор цвета, на каждой странице, включая встроенные расширения, такие как chrome://settings
или about:newtab
.
Ни Firefox, ни Chromium не позволяют расширениям изменять встроенные страницы.
Можно ли изменить это поведение? Я не пристрастен ни к одному из браузеров, мне просто нужно, чтобы это работало в одном из них. Я с удовольствием покопаюсь в исходниках и перекомпилирую, если нужно.
решение1
WebExtensions не может изменять about:
страницы chrome://
, поэтому поведение, о котором вы говорите, не может быть изменено. Это единственный API расширений, поддерживаемый как Firefox, так и Chrome, поскольку первый прекратил поддержку расширений XUL.
Расширения могут вставлять скрипты содержимого во вкладки, соответствующие шаблонам URL или определенным вкладкам через tabs.executeScript()
. Оба метода принимают "шаблон соответствия" для целевой страницы, которая начинается с , <scheme>
который должен быть http[s]
, file
, ftp
, или app
(для Firefox), поэтому любой доступ к chrome://
или about:
URL невозможен. API внедрения CSS 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/Add-ons/WebExtensions/API/Tabs/executeScript https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs/insertCSS https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Анатомия_веб-расширения#Фоновые_скрипты