在chrome扩展中使用沙盒页面

时间:2012-07-06 09:25:48

标签: google-chrome-extension

Chrome扩展程序的清单版本2将不再支持在常规扩展程序页面上使用 eval 新功能。我的chrome扩展使用选项页面上的UI框架(Kendo UI)来利用这些机制,因此我正在寻找解决方案。

根据来自IO 2012的this session,我们的想法是将相应的页面放入沙箱并通过iframe将其加载到扩展程序中。

以下是我正在尝试做的简化示例:https://gist.github.com/3058943

的manifest.json:

{
 "name": "Sandbox test",
 "manifest_version": 2,
 "options_page": "main.html",
 "sandbox": {
    "pages": [ "index.html" ]
  }
}

main.html中:

<html>
  <head></head>
  <body>
    <iframe id="iframe" src="index.html" ></iframe>
  </body>
</html>

的index.html:

<html>
  <head></head>
  <body>
    <h1>Inside the sandbox</h1>
  </body>
</html>

当我在此示例中加载选项页面时,我收到错误消息:

  

拒绝加载chrome-extension://fahdnpkbgfjkocogbjlljfbhnljcehoh/index.html。必须在web_accessible_resources清单键中列出资源才能通过网页加载。

我不认为每个沙盒页面也应该是web_accessible_resources。 但即使我尝试在清单文件中将沙盒页面定义为web_accessible_resources,沙盒页面也会被加载,但iframe中使用 new Function 仍然会被阻止。

1 个答案:

答案 0 :(得分:1)

Chrome 20.0.1132.47上会出现上述错误消息。

我使用开发频道版本21.0.1180.15进行了测试,此处沙盒iframe加载没有问题。