0

我想将我的所有扩展升级到版本 2,但仍然向后兼容仍然安装旧版本 chrome 的人。

由于当前不支持多个清单版本,我想知道哪个是支持的最低版本的 Chrome"manifest_version": 2及其属性。

4

1 回答 1

1

清单 v2 是在Chrome 18中引入的。使用 Manifest 版本 2 为扩展添加了几个要求,最重要的是:

  1. 默认内容安全策略不允许通过扩展上下文中的标签加载外部 JavaScript 文件<script>,并且不允许执行通过字符串创建的 JavaScript 代码:内联事件侦听器、内联脚本eval
    。损坏功能的后果是 JSONP和基于评估的模板引擎。这些可以通过使用普通的跨站 AJAX 和沙盒 Chrome 21+来解决。
  2. web_accessible_resources字段在一个空列表中启动,因此默认情况下所有资源都被列入黑名单。
  3. 清单条目变得不可用(由+或"background_page"取代)。"background""scripts""page"

Manifest 2 还允许使用一些 API,例如chrome.storageAPI。当清单 v2 被省略时,此消息将出现在您的扩展程序下方。

除了最后一点之外,所有这些要求都导致 Chrome 扩展的编码指南更加严格(与 manifest v1 相比)。

  1. 任何符合 CSP 的代码也适用于 manifest v1。
  2. 所有扩展程序的来源都被列入白名单,因此普通网页可以访问。
  3. "background": {"scripts": ["..."]}(and "page")与 Chrome 17 及更低版本向后不兼容,因为它是在 Chrome 18 中引入的。改为使用"background_page": "background.html"

当您不使用后台页面时,才能使用适用于所有 Chrome 版本的扩展程序。在其他情况下,无法实现这种混合(清单 v1+v2 兼容)扩展。

如果您打算分发两个不同的扩展,"minimum_chrome_version": "18"请在清单文件中进行设置。不要忘记提及旧浏览器的扩展位置。

于 2012-09-21T08:17:22.610 回答