Chrome扩展程序内容安全策略和权限

时间:2016-01-22 03:47:51

标签: javascript api google-chrome-extension twilio google-chrome-app

我尝试进行Chrome扩展程序,但内容安全策略存在问题。

我在标题中调用的popup.js中创建了一个带有json调用的popup.html。我还在远程服务器上添加了另一个.js文件,我无法包含它,因为它是外部服务的api汽车。

我用manifest.json尝试了一切。

"permissions": [ //"optional_permissions": [
        "http://*.myjsonserver.com/",
        "http://*.twilio.com/*",
        "https://*.twilio.com/*"
        //"http://*/*",
        //"https://*/*"
    ],
我试过这个。

"manifest_version": 2,
    "content_security_policy": "connect-src 'self' http://myjsonserver.com; object-src 'self'", //connect-src
    "content_security_policy": "script-src 'self' https://static.twilio.com; object-src 'self'"

或者我应该这样添加javascript吗?

"content_scripts": [
    {
      "matches": ["http://static.twilio.com/*"],
      "js": ["jquery.js", "myscript.js"]
    }
  ],

我在Google Chrome检查器上收到此错误。

Refused to load the script 'http://myjsonserver.com/get_token_cb.php?callback=jQuery210007401883858256042_144745747' because it violates the following Content Security Policy directive: "script-src 'self' https://static.twilio.com".
---------------
chrome-extension://static.twilio.com/libs/twiliojs/refs/6359b40/twilio.min.js Failed to load resource: net::ERR_FAILED

Failed to load resource: net::ERR_FAILED    chrome-extension://static.twilio.com/libs/twiliojs/refs/6359b40/twilio.min.js 

但没有任何效果,myjsonserver.com它不在https服务器上,它在我自己的服务器上。 twilio.com网址是从javascript访问twilio api。

这仅用于测试,因为稍后它将在background.js

我尝试了所有这些,但我迷失了,我不知道。

1 个答案:

答案 0 :(得分:1)

这里有很多 - 我可以说谷歌建议你尽可能从扩展而不是从互联网上提供JS(所以如果你需要jQuery,你可以将它与你的扩展捆绑在一起)。关于您报告的特定错误,只有第二个content_security_policy生效。您可以在their documents中看到他们只在清单中指定了其中一个属性。

要解决您所面临的错误,我相信您想要:

"content_security_policy": "script-src 'self' https://myjsonserver.com https://static.twilio.com; object-src 'self'"