chrome内容脚本和newtab

kof*_*fus 3 google-chrome google-chrome-extension

我无法在新标签页上运行我的内容脚本(它没有分配给任何网址).

我查看了有关该主题的各种帖子,即内容脚本是否可以访问newtab页面? 以及 google chrome新标签页的网址是什么以及如何从manifest.json中排除它

这似乎表明它是可能的.

我启用了chrome:// flags /#extensions-on-chrome-urls

我有:

"permissions": [
    "http://*/*", 
    "https://*/*",
    "chrome://*/*"
],
Run Code Online (Sandbox Code Playgroud)

(也尝试过"*://*/_/chrome/newtab*")

仍然没有运气......我错过了什么?

这个答案你可以从扩展程序访问chrome://页面吗?mentsions"不接受通配符".这是真的 ?如果是这样,如何指定newtab页面?

谢谢!

wOx*_*xOm 8

Chrome 61和更新版本明确禁止默认新标签页(NTP)上的内容脚本.

引用rdevlin,Chrome扩展API的开发者之一:

这种变化有几个原因.一个是执行政策,另一个是保持一致性.

我们暂时有一个公共政策,声明不允许通过Chrome网址覆盖以外的任何内容修改NTP (尽管我们在7月1日之前很多情况下都没有开始执行此政策).这仅仅是将chrome代码更多地与同一策略结合使用,以帮助防止扩展正在修改NTP并因违反策略而被删除.

这也是为了保持一致性,因为由于某些NTP魔法,我们实际上已经多年来对NTP的脚本进行了不同的处理.例如,浏览器在NTP上看到的网址是chrome:// newtab,但渲染器中的网址是 https://www.google.com/_/chrome/newtab.由于chrome.tabs.executeScript检查浏览器中的URL,因此即使允许内容脚本(在渲染器中检查),脚本也会被拒绝.理论上,这些权限 应该不同.同样奇怪的是,如果用户使用本地ntp(chrome-search://local-ntp/local-ntp.html),则渲染器和浏览器中都不允许注入.并且,如果我们回到过去,NTP曾经是纯WebUI,其URL为chrome:// newtab,再次禁止注入.根据扩展使用的脚本注入类型,我们希望在整个系统中保持一致性,而不是具有不一致的行为.

我会看到我是否不能在此次公告中发布有关chrome-extensions @的公告(即使该政策已经发布了一段时间,一点点额外曝光也不会受到影响).