扩展程序中的新功能
该页面列出最近版本中有关 API 和清单文件的更改。
Google Chrome 35
新增的 API
- gcm: 使用
chrome.gcm
通过 Google Cloud Messaging 服务在应用和扩展程序中发送和接收消息。
Google Chrome 34
新增的 API
- desktopCapture: 桌面捕获 API 可用于捕获屏幕、单个窗口或标签页的内容。
Google Chrome 33
新增的 API
- declarativeContent: 使用
chrome.declarativeContent
API 根据网页内容进行某些操作,而不需要读取网页内容的权限。
Google Chrome 32
新增的 API
- system.memory: 使用
chrome.system.memory
API 获取内存信息。 - system.cpu: 使用
chrome.system.cpu
API 查询 CPU 元数据。
Google Chrome 31
新增的 API
- tabCapture: 使用
chrome.tabCapture
API 与标签页的媒体流交互。 - downloads: 使用
chrome.downloads
API 以编程方式开始下载,监视、操纵、搜索下载的文件。
Google Chrome 30
新增的 API
- system.storage: 使用
chrome.system.storage
API 查询存储设备信息,并在连接或移除可移动存储设备时得到通知。
Google Chrome 29
新增的 API
- identity: 使用
chrome.identity
API 获取 OAuth2 访问令牌。
Google Chrome 28
新增的 API
- notifications: 使用
chrome.notifications
API 通过模板创建丰富通知,并在系统托盘中向用户显示这些通知。
Google Chrome 27
新增的 API
- power: 使用
chrome.power
API 修改系统的电源管理特性。
Google Chrome 25
新增的 API
- commands: 使用命令 API 添加快捷键,以便触发扩展程序中的操作,例如打开浏览器按钮或向扩展程序发送命令。
Google Chrome 24
新增的 API
- pushMessaging: 使用
chrome.pushMessaging
使应用或扩展程序能够接收通过 Google 云消息服务发送的消息数据。
Google Chrome 22
新增的 API
- fontSettings: 使用
chrome.fontSettings
API 管理 Chrome 浏览器的字体设置。 - runtime: 使用
chrome.runtime
API 获取后台网页、返回清单文件详情、监听并响应应用或扩展程序生命周期内的事件,您还可以使用该 API 将相对路径的 URL 转换为完全限定的 URL。 - alarms: 使用
chrome.alarms
API 安排代码周期性地运行或者在将来的指定时间运行。
对现有 API 的增强
- 使用一种我们称之为事件页面的特性,后台网页可以不持久存在。事件页面只有在使用时才会运行,空闲时卸载以便节约资源。
Google Chrome 21
新增的 API
- input.ime: 使用
chrome.input.ime
API 为 Chrome OS 实现自定义的输入法,它允许您的扩展程序处理键盘输入、设置候选内容及管理候选窗口。 - events:
chrome.events
命名空间包含 API 分发事件使用的通用类型,以便在某些有意义的事情发生时通知您。
对现有 API 的增强
- types.ChromeSetting.set 方法新增
regular_only
(仅用于普通用户配置文件)范围。 - browsingData.RemovalOptions 新增
originTypes
属性。 - management.uninstall 方法新增
showConfirmDialog
参数。 - contextMenus.create 方法现在允许您为每一个菜单项指定唯一的标识符,这是为了与新的
contextMenus.onClicked
事件搭配使用,区分单击的菜单项。 - browserAction.setIcon 和 pageAction.setIcon 现在接受可选的回调函数。
- privacy.websites 命名空间新增
protectedContentEnabled
属性。 - tabs.move 方法的
index
参数现在可以使用 -1 表示指定标签页应该放在最后。 - tabs.highlight 方法的
windowId
变为可选。
Google Chrome 20
新增的 API
- storage: 使用
chrome.storage
API 存储、获取用户数据,追踪用户数据的更改。
对现有 API 的增强
- chrome.contextMenus 的 contextMenus.create 和 contextMenus.update 方法新增
enabled
参数。 - 隐私 API 的 privacy.services 对象新增
spellingServiceEnabled
设置。 - chrome.tabs 的 tabs.executeScript 和 tabs.insertCSS 新增 runAt 参数。
sendRequest()
方法已弃用,您应该改用sendMessage()
方法:runtime.sendMessage 和 tabs.sendMessage。
清单文件更改
- 清单文件版本 1 在 Chrome 18 中弃用,并将根据清单文件版本 1 支持计划逐渐减少支持。
Google Chrome 19
新增的 API
- topSites: 使用
chrome.topSites
API 访问“打开新的标签页”页面中显示的“常去网站”。 - browsingData: 使用
chrome.browsingData
API 从用户的本地配置文件删除浏览数据。
对现有 API 的增强
- 窗口 API 的 windows.Window 对象新增
alwaysOnTop
属性,并支持全屏状态。 - code>chrome.tabs 的 tabs.query 方法新增
currentWindow
和lastFocusedWindow
参数。 - 浏览器按钮 API 新增以下函数用于获取信息:browserAction.getTitle、browserAction.getBadgeText、browserAction.getBadgeBackgroundColor 和 browserAction.getPopup。
- 页面按钮 API 新增以下函数用于获取信息:pageAction.getTitle 和 pageAction.getPopup。
Google Chrome 18
新增的 API
- devtools.panels: 使用
chrome.devtools.panels
API将您的扩展程序整合到开发者工具窗口的用户界面中:创建您自己的面板、访问现有的面板,还可以添加侧边栏。 - devtools.inspectedWindow: 使用
chrome.devtools.inspectedWindow
API 与审查的窗口交互:获得审查网页的标签页标识符,在审查窗口的上下文中执行代码,重新加载网页,或者获取网页中所有资源的列表。 - devtools.network: 使用
chrome.devtools.network
API 获取开发者工具的网络面板中显示的与网络请求相关的信息。 - pageCapture: 使用
chrome.pageCapture
API 将标签页保存为 MHTML。 - debugger:
chrome.debugger
API 是 Chrome 远程调试协议(英文)的另一种消息传输方式。chrome.debugger
可以附加到一个或多个标签页,以便记录网络交互、调试 JavaScript、改变 DOM 和 CSS 等等。使用调试对象的标签页标识符指定 sendCommand 的目标标签页,并在 onEvent 的回调函数中通过标签页标识符分发事件。 - privacy: 使用
chrome.privacy
API 控制 Chrome 浏览器中可能会影响用户隐私的特性。这一模块依赖于类型 API 中的 ChromeSettings 原型,用于获取和设置 Chrome 浏览器的配置。
对现有 API 的增强
- chrome.tabs 的 tabs.create 和 tabs.update 方法新增
openerTabId
参数。
清单文件更改
- 新的清单文件版本字段指定您的扩展程序包要求的清单文件版本。从 Chrome 18 开始,您应该使用清单文件版本 2。
- 新的内容安全策略(CSP)字段用于定义扩展程序的策略,指定可以由扩展程序加载和运行的内容类型。
- 大部分后台网页只包含脚本文件列表,对于这些后台网页,您可以使用新的 background.scripts 属性,Chrome 浏览器会为您生成后台网页。
- 新的 web_accessible_resources 字段指定可以在网页上下文中使用的打包资源路径。
Google Chrome 17
新增的 API
- webRequest: 使用
chrome.webRequest
API 监控与分析流量,还可以实时地拦截、阻止或修改请求。
对现有 API 的增强
- 管理 API 的 management.ExtensionInfo 对象新增
disabledReason
属性。 - 多功能框 API 现在可以在分离式隐身模式中使用。
清单文件更改
- 内容设置、网页导航和新的网络请求 API 可以使用可选权限。
Google Chrome 16
新增的 API
- permissions: 使用
chrome.permissions
API 在运行时而不是安装时请求声明的可选权限,这样用户可以理解为什么需要这些权限,并且仅在必要时授予这些权限。 - contentSettings: 使用
chrome.contentSettings
API 更改设置,控制网站能否使用 Cookie、JavaScript 和插件之类的特性。大体上说,内容设置允许您针对不同的站点(而不是全局地)自定义 Chrome 浏览器的行为。
对现有 API 的增强
- 新的 tabs.query 方法获取包含指定属性的所有标签页,如果没有指定任何属性则获取所有标签页。
- 新的 tabs.reload 方法重新加载标签页,您还可以指定是否保留本地缓存的选项。
- 管理 API 的 management.ExtensionInfo 对象新增
updateURL
属性。 - 您现在可以在
external_extensions.json
中添加supported_locales
属性限制外部扩展程序支持的语言。 getAllInWindow()
和getSelected()
方法已弃用。要获取指定窗口中所有标签页的有关详情,请使用 tabs.query,并在参数中指定 {'windowId': windowId}。要获取指定窗口中选中的标签页,请使用chrome.tabs.query()
,并在参数中指定{'active': true}
。- 您不再需要在 tabs.update 方法中指定
tabId
,未提供时,tabId 默认为当前窗口中的选定标签页。 - Mac OS 中的外部扩展程序文件的所有者现在可以是 Wheel 组(或管理员组)。
- 面板类型不再需要 "experimental" 权限。默认情况下,面板类型创建弹出窗口,除非设置了
--enable-panels
标志。
清单文件更改
- 新的 requirements 字段允许您事先声明扩展程序的要求。例如您可以使用该字段指定您的应用要求 3D 图形支持,以便使用 CSS 3D 或 WebGL 之类的特性。
Google Chrome 15
新增的 API
- webstore: 使用
chrome.webstore
API 在您的网站上“内嵌”安装应用与扩展程序。
对现有 API 的增强
- 您现在可以使用新的管理 API 方法 management.getPermissionWarningsById 和 management.getPermissionWarningsByManifest 获取权限警告。
- 管理 API 的 management.ExtensionInfo 对象新增 offlineEnabled 字段。
- 您现在可以使用 __MSG_messagename__ 占位符为内容脚本 CSS 文件提供国际化支持。
- 如果扩展程序没有 "tabs" 权限,tabs.update 方法调用回调函数时传递 null,而不是标签页详情。
清单文件更改
- 新增的 offline_enabled 字段让您指定您的应用即使在没有网络连接的情况下也能正常工作。
Google Chrome 14
新增的 API
- tts: 使用
chrome.tts
API 播放合成的文字语音转换(TTS),同时请您参见相关的 ttsEngine API,允许扩展程序实现语音引擎。 - ttsEngine: 使用
chrome.ttsEngine
API 在扩展程序中实现文字语音转换(TTS)引擎。如果您的扩展程序注册了该 API,当任何扩展程序或 Chrome 应用使用 tts 模块朗读时,它会收到事件,包含要朗读的内容以及其他参数。您的扩展程序可以使用任何可用的网络技术合成并输出语音,并向调用方发送事件报告状态。
对现有 API 的增强
- windows.update 中 updateInfo 对象中可选的 drawAttention 字段让您指定窗口应该提醒用户将焦点切换至该窗口。
- 新增的 bookmarks.getSubTree 函数使您可以只获取一部分书签架构。
- tabs.remove 和 tabs.onRemoved 不再需要 "tabs" 权限。
清单文件更改
- 新增的 content_security_policy 字段可以帮助您避免您的扩展程序中存在的跨站脚本漏洞。
- 新增的 nacl_modules 字段让您将 Native Client 模块注册为 MIME 类型的内容处理程序。
Google Chrome 13
新增的 API
- types:
chrome.types
API 包含用于 Chrome 浏览器的类型声明。 - proxy: 使用
chrome.proxy
API 管理 Chrome 浏览器的代理服务器设置。该模块依赖于类型 API 中的 ChromeSetting 原型,用于获取和设置代理服务器配置。
对现有 API 的增强
- 现在内容脚本可以向所属扩展程序允许的站点发出跨来源 XMLHttpRequest 请求,而不用通过后台网页转发这些请求。
- 现在您可以在导入的油猴脚本中使用
@run-at
,控制何时插入脚本。它的工作方式与内容脚本中的run_at
一致。
清单文件更改
- content_scripts 字段中新增的
exclude_matches
项可以让您更精确地指定您的内容脚本的目标,有关详情请参见匹配表达式和范围。 - 新增的 clipboardRead 和 clipboardWrite 权限指定
document.execCommand()
的能力。
Google Chrome 12
新增的 API
- fileBrowserHandler: 使用
chrome.fileBrowserHandler
API 扩展 Chrome OS 的文件浏览器。例如,您可以使用该 API 让用户向您的网站上传文件。
对现有 API 的增强
chrome.extension
中新增的两个方法——extension.isAllowedFileSchemeAccess 和 extension.isAllowedIncognitoAccess 允许您确定您的扩展程序是否具有附加的访问权限,用户可以使用扩展程序管理网页(chrome://extensions)指定它们。- windows.create 方法现在可以接受
focused
值。原来所有新窗口都有键盘焦点,现在您可以不打断用户输入而创建窗口。 - 如果清单文件指定了 experimental 权限,您的扩展程序可以在 window.create 或 windows.Window 类型中的
type
字段指定 panel(面板)值。 chrome.contextMenus
的 contextMenus.create 和 contextMenus.update 方法现在允许您指定框架上下文。
Google Chrome 11
对现有 API 的增强
- 处于安全性原因,您不能在任意标签页中调用 tabs.captureVisibleTab,而必须首先拥有标签页中显示 URL 的主机权限。要获得原来的行为,请在主机权限中指定
。 - 管理 API 的 management.ExtensionInfo 对象新增
homepageUrl
属性。 - 管理 API 现在允许您获取已禁用的应用和扩展程序图标,此外您还可以修改普通图标的 URL 获取禁用时的图标。有关详情请参见 management.IconInfo。
Google Chrome 10
对现有 API 的增强
- windows.create 方法新增
tabId
字段,您可以使用它将标签页或面板移动到新窗口中。
清单文件更改
- 新的 background 权限可以扩展 Chrome 浏览器的生命周期,允许您的扩展程序或应用在 Chrome 浏览器没有窗口打开时就运行。
Google Chrome 9
新增的 API
- omnibox: 多功能框 API 允许您在 Google Chrome 浏览器的地址栏(又叫多功能框)中注册一个关键字。
对现有 API 的增强
- tabs.Tab 对象新增
pinned
属性,可以在各种chrome.tabs
方法中使用。例如您可以调用 tabs.create 创建固定的标签页。 - windows.create 方法现在可以接受 URL 列表,允许您在新窗口中创建多个标签页。
- 新增的 management.get 方法允许您获取指定扩展程序或应用的有关信息。
清单文件更改
- homepage_url 字段允许您指定扩展程序或应用的主页。
Google Chrome 8
新增的 API
- management:
chrome.management
API 可以用来管理已经安装并且正在运行的扩展程序或应用,对于替代内建的“打开新的标签页”页面的扩展程序来说特别有用。
Google Chrome 7
清单文件更改
- 引入了分离式隐身模式,作为可安装网上应用的默认模式(也可用于扩展程序)。
- 标签页 API 的
create()
和update()
方法不再要求 tabs 权限,避免了一些常见的吓人的权限对话框。
Google Chrome 6
新增的 API
- idle: 使用
chrome.idle
API 检测计算机空闲状态的更改。 - contextMenus: 使用
chrome.contextMenus
API 向 Google Chrome 浏览器的右键菜单添加项目。您可以选择您在右键菜单中添加的项目应用于哪些类型的对象,例如图片、超链接和页面。
对现有 API 的增强
- extension.getViews 方法现在可以返回弹出视图。
- 新的 windows.WINDOW_ID_NONE 常量表示焦点离开浏览器。
- 新的 tabs.getCurrent 方法返回与当前执行脚本相关联的标签页。
清单文件更改
- geolocation 权限允许扩展程序访问用户的地理位置。
- 匹配表达式现在可以选择所有协议或所有 URL。
- 访问 file:/// URL 不再触发访问您的计算机的安全警告,但是现在需要用户在扩展程序管理网页中允许访问。
Google Chrome 5
新增的 API
- pageAction: 使用
chrome.pageAction
API 在地址栏中添加图标。页面按钮代表用于当前网页的操作,但是不适用于所有网页。 - extension:
chrome.extension
API 包含任何扩展程序页面都能使用的实用方法。它包括在扩展程序和内容脚本之间或者两个扩展程序之间交换消息的支持,消息传递中详细描述了这些内容。 - browserAction: 使用浏览器按钮可以在 Google Chrome 浏览器主窗口地址栏右侧的工具栏中添加图标。除了图标,浏览器按钮还可以有工具提示、徽章和弹出内容。
- bookmarks: 使用
chrome.bookmarks
API 创建、组织或通过其他方式操纵书签,另外请参见替代页面,通过它您可以创建一个自定义的书签管理器页面。 - i18n: 使用
chrome.i18n
架构为您的整个应用或扩展程序实现国际化支持。 - history: 使用
chrome.history
API 与浏览器的历史记录交互,您可以添加、删除、通过 URL 查询浏览器的历史记录。如果您想要使用您自己的版本替换默认的历史记录页面,请参见替代页面。 - tabs: 使用
chrome.tabs
API 与浏览器标签页交互。您可以使用该 API 创建、修改或重新排列浏览器中的标签页。 - windows: 使用
chrome.windows
API 与浏览器窗口交互。您可以使用该模块创建、修改和重新排列浏览器中的窗口。