代码之家  ›  专栏  ›  技术社区  ›  user984003

chrome.browserAction.setIcon()不适用于content_security_policy

  •  1
  • user984003  · 技术社区  · 12 年前

    我在Chrome扩展中添加了一些功能,这样点击图标按钮时就会改变颜色。代码很简单:

    chrome.browserAction.setIcon({path:"icon_pink_lines.png", tabId:tab.id});
    

    然而,我花了一段时间才弄清楚,因为事实证明,当content_security_policy设置在manifest.json中时,它不起作用

     "content_security_policy": "default-src 'none'; script-src 'self'"
    

    问题是,如果去掉这个,我会失去什么?还是应该只是做一些其他的事情来改变图标?老实说,我只是从一些示例清单文件中复制了原始策略,从那以后就没有想过。

    1 回复  |  直到 12 年前
        1
  •  1
  •   Konrad Dzwinel    12 年前

    有一个 default value 对于 content_security_policy 如果你自己不设置:

    script-src 'self'; object-src 'self'

    不过你的更紧。它不允许加载任何外部资源(而默认策略不允许只加载外部脚本)。你的 icon_pink_linkes.png 被视为外部资源并被CSP阻止。这在我看来像个bug,你可以报告它 here (我搜索过类似的bug,但没有找到)。