chrome内容脚本和newtab

时间:2017-08-13 10:17:56

标签: google-chrome google-chrome-extension

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

我查看了有关该主题的各种帖子,即Does content script have access to newtab page?What is the URL of the google chrome new tab page and how to exclude it from manifest.json

似乎表明这是可能的。

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

我有:

select p.name, p.price, AVG(r.rate) 
from shops s, products p, rates r 
Where s.is_locked <> 1 and
      s.id = p.shop_id and
      s.id = r.shop_id and
      p.shop_id = r.shop_id
group by p.id 
order by AVG(r.rate) 

(也尝试"permissions": [ "http://*/*", "https://*/*", "chrome://*/*" ],

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

这个回答Can you access chrome:// pages from an extension? mentsions“不接受通配符”。这是真的 ?如果是,如何指定newtab页面?

THX!

1 个答案:

答案 0 :(得分:7)

默认新标签页(NTP)上的Chrome 61和更新explicitly forbid内容脚本。

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

  

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

     

我们现在有一段时间public policy表示修改了。{}   通过Chrome URL overrides以外的任何其他方式的NTP是不允许的(尽管如此)   在很多情况下,直到7月1日我们才开始执行这项政策。这是   仅仅使用相同的策略更加内嵌铬代码以帮助防止   如果扩展程序正在修改NTP并被取消用于策略,则会感到意外   违规。

     

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

     

我将会看到我是否无法在chrome-extensions @中发布公告   公告(即使该政策已经发布了一段时间,现在还有一点   额外的曝光不会伤害。