从chrome扩展

时间:2016-02-29 18:00:42

标签: google-chrome-extension firebase

我试图从Chrome扩展程序中调用firebase api的set方法。 由于我在从cdn加载firebase.js时遇到问题,所以我决定将其下载并包含在我的软件包中。 但现在我得到了:

  

拒绝加载脚本   ' https://mydomain.firebaseio.com/.lp?start=t&ser=323&cb=1&v=5'   因为它违反了以下内容安全策略指令:   " default-src' self' blob:filesystem:chrome-extension-resource:"。   请注意' script-src'没有明确设置,所以' default-src'是   用作后备。 (匿名函数)@ firebase241.js:168   firebase241.js:168拒绝加载脚本

执行firebase脚本时。 我知道它与我的扩展名表中的permissionscontent_security_policy有关。但我试过这样做:

"content_security_policy": "script-src 'self' https://mydomain.firebaseio.com/; object-src 'self'",

那:

  "permissions": [
    "gcm",
    "storage",
    "notifications",
    "https://*.firebase.com/",
    "https://cdn.firebase.com/js/client/2.4.1/firebase.js",
    "https://mydomain.firebaseio.com/*",
  ],

没有运气。

我也得到了这个:

  

尝试安装此扩展程序时出现警告:   ' content_security_policy'仅允许扩展和遗留   打包的应用程序,但这是一个打包的应用程序。

当我在manifest.js

中设置content_security_policy时
"content_security_policy": "script-src 'self' https://mydomain.firebaseio.com/; object-src 'self'"

2 个答案:

答案 0 :(得分:1)

  

' content_security_policy'仅适用于扩展程序和旧版打包应用程序,但这是打包的应用程序

您拥有的不是扩展程序,而是app。这是通过在清单中使用"app"键来定义的。

应用cannot override CSP

你需要解决这种身份危机:

  • 如果您真的想要扩展,则需要删除"app"密钥并进行真正的扩展。

  • 如果您对术语感到困惑并且您真的打算编写Chrome应用,那么正确的方法是sandboxing

答案 1 :(得分:1)

我有完全相同的问题。在Firebase Blog中有一个明确的解决方案需要“content_security_policy”进入:

"content_security_policy": "script-src 'self' https://cdn.firebase.com 
https://*.firebaseio.com; object-src 'self'"

它对我很有用!