清单文件版本
扩展程序、主题背景以及应用只不过是打包的资源,另外附带一个
manifest.json
文件,描述包的内容。该文件的格式大体上是稳定的,但是偶尔需要重大更改,解决重大问题。开发者应该在清单文件中设置
manifest_version
属性,指定他们的包使用的清单文件规范的版本。
当前版本
目前,开发人员应该指定
'manifest_version': 2
:
{ ..., "manifest_version": 2, ... }
清单文件版本 1 在 Chrome 18 及更高版本中弃用,并且根据下列计划,将逐渐减少对它的支持。
清单文件版本 1 支持计划
2012 年 8 月
- 网上应用店将不再允许创建清单文件版本 1 的扩展程序。
- 网上应用店仍然允许更新现有的清单文件版本 1 的扩展程序。
2013 年 3 月
- 从 2013 年 3 月 4 日开始,网上应用店将不允许更新清单文件版本 1 的扩展程序。
2013 年 4 月
- Chrome 27 Beta 将不再为清单文件版本 1 的扩展程序打包(或为开发而加载)。
2013 年 6 月
- 清单文件版本 1 的扩展程序将从网上应用店的展区、搜索结果以及分类页面中移除。
- 通知邮件将会发送至网上应用店中仍然有清单文件版本 1 的扩展程序开发人员,提醒他们这些项目将不会发布,并提供更新指示。
2013 年 9 月
- 网上应用店将取消发布所有清单文件版本 1 的扩展程序。
- 最终的通知邮件将发送至网上应用店中仍然有清单文件版本 1 的扩展程序开发人员。
- Chrome 浏览器仍然会继续加载和运行已安装的清单文件版本 1 的项目。
2014 年 1 月
- Chrome 浏览器将不再加载或运行清单文件版本 1 的扩展程序。
版本 1 与版本 2 之间的更改
-
内容安全策略默认情况下设置为
"script-src 'self' chrome-extension-resource:; object-src 'self'"
。这会对开发人员产生一系列影响,在content_security_policy
文档中详细描述。 -
扩展程序包的资源默认情况下不再可用于外部网站(作为图片的
src
属性或者script
标签)。如果您希望网站能够加载您的扩展程序包中的资源,您需要通过web_accessible_resources
清单文件属性明确将它列入白名单。这对于通过插入的内容脚本在网页上建立界面的扩展程序特别有用。 -
background_page
属性已经由background
属性取代,它包含scripts
或page
属性中的任意一个,详情在事件页面文档中可用。 -
浏览器按钮的更改:
-
清单文件中的
browser_actions
键以及chrome.browserActions
API 已经消失,请改用单数形式的browser_action
以及chrome.browserAction
。 -
browser_action
的icons
属性已移除,请改用default_icon
属性或者 browserAction.setIcon。 -
browser_action
的name
属性已移除,请改用default_title
属性或者 browserAction.setTitle。 -
browser_action
的popup
属性已移除,请改用default_popup
属性或者 browserAction.setPopup。 -
browser_action
的default_popup
属性不能再指定为对象,而必须为字符串。
-
-
页面按钮的更改:
-
清单文件中的
page_actions
键以及chrome.pageActions
API 已经消失,请改用单数形式的page_action
以及chrome.pageAction
。 -
page_action
的icons
属性已移除,请改用default_icon
属性或者 pageAction.setIcon。 -
page_action
的name
属性已移除,请改用default_title
属性或者 pageAction.setTitle。 -
page_action
的popup
属性已移除,请改用default_popup
属性或者 pageAction.setPopup。 -
page_action
的default_popup
属性不能再指定为对象,而必须为字符串。
-
-
chrome.self
API 已移除,请改用chrome.extension
。 -
chrome.extension.getTabContentses
和chrome.extension.getExtensionTabs
已消失,请改用 chrome.extension.getViews({ "type": "tab" })。 -
Port.tab
已消失,请改用 runtime.Port.sender。