我可以配置 Chromium 或 Firefox 以允许在任何地方使用扩展吗?

我可以配置 Chromium 或 Firefox 以允许在任何地方使用扩展吗?

我希望能够在每个页面上使用像 vimium 和颜色逆变器这样的扩展,包括像chrome://settings或这样的内置命令about:newtab

Firefox 和 Chromium 都不允许扩展修改内置页面。

这种行为可以改变吗?我对任何浏览器都没有特别的偏好,我只是需要它能在其中一个浏览器上运行。我很乐意摆弄源代码并在必要时重新编译。

答案1

WebExtensions 无法修改about:chrome://页面,因此您提到的行为无法更改。这是 Firefox 和 Chrome 都支持的唯一扩展 API,因为前者已经不再支持 XUL 扩展。

扩展程序可以通过 将内容脚本注入与 URL 模式匹配的选项卡或特定选项卡tabs.executeScript()。这两种方法都采用以 开头的目标页面的“匹配模式”,<scheme>必须是http[s]fileftpapp(对于 Firefox),因此无法访问chrome://about:URL。CSS 注入 APItabs.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/Anatomy_of_a_WebExtension#Background_scripts

相关内容