大多数扩展程序都需要访问一个或多个 Chrome 扩展程序 API 才能正常运行。此 API 参考文档介绍了可在扩展程序中使用的 API,并提供了示例用例。
Common Extensions API 功能
扩展程序 API 由一个命名空间组成,其中包含用于执行扩展程序工作的方法和属性,并且通常(但不一定)包含 manifest.json 文件的清单字段。例如,chrome.action 命名空间需要在清单中包含 "action" 对象。许多 API 还要求在清单中添加权限。
除非另有说明,否则扩展 API 中的方法是异步的。异步方法会立即返回,而无需等待调用它们的操作完成。使用 Promise 获取这些异步方法的结果。
Chrome 扩展程序 API
- accessibilityFeatures
-   使用 chrome.accessibilityFeaturesAPI 管理 Chrome 的无障碍功能。此 API 依赖于 API 类型的 ChromeSetting 原型来获取和设置各个无障碍功能。为了获取功能状态,扩展程序必须请求accessibilityFeatures.read权限。如需修改功能状态,扩展程序需要accessibilityFeatures.modify权限。请注意,accessibilityFeatures.modify并不意味着拥有accessibilityFeatures.read权限。
- 操作
-  Chrome 88 及更高版本 MV3 及更高版本使用 chrome.actionAPI 控制 Google Chrome 工具栏中的扩展程序图标。
- 闹钟
-   使用 chrome.alarmsAPI 安排代码在指定时间或未来某个时间定期运行。
- 音频
-  Chrome 59 及更高版本 仅限 ChromeOSchrome.audioAPI 可供用户获取有关连接到系统的音频设备的信息并控制这些设备。此 API 目前仅在 ChromeOS 的自助服务终端模式下可用。
- 书签
-   使用 chrome.bookmarksAPI 可创建、整理和以其他方式操作书签。另请参阅替换网页,您可以使用该功能创建自定义书签管理器页面。
- browsingData
-   使用 chrome.browsingDataAPI 从用户的本地个人资料中移除浏览数据。
- certificateProvider
-  Chrome 46 及更高版本 仅限 ChromeOS使用此 API 向平台公开证书,平台可以使用这些证书进行 TLS 身份验证。 
- 命令
-   使用 Commands API 添加键盘快捷键,以触发扩展程序中的操作,例如打开浏览器操作或向扩展程序发送命令的操作。 
- contentSettings
-   使用 chrome.contentSettingsAPI 更改用于控制网站是否可以使用 Cookie、JavaScript 和插件等功能的设置。更一般地说,内容设置允许您按网站自定义 Chrome 的行为,而不是全局自定义。
- contextMenus
-   使用 chrome.contextMenusAPI 可向 Google Chrome 的上下文菜单添加项。您可以选择上下文菜单添加项所适用的对象类型,例如图片、超链接和网页。
- Cookie
-   使用 chrome.cookiesAPI 可查询和修改 Cookie,并在 Cookie 发生更改时收到通知。
- 调试器
-   chrome.debuggerAPI 可作为 Chrome 远程调试协议的替代传输方式。使用chrome.debugger附加到一个或多个标签页,以检测网络互动、调试 JavaScript、更改 DOM 和 CSS 等。使用Debuggee属性tabId以sendCommand为目标标签页,并通过onEvent回调中的tabId路由事件。
- declarativeContent
-   使用 chrome.declarativeContentAPI 根据网页内容采取行动,而无需获得读取网页内容的权限。
- declarativeNetRequest
-  Chrome 84 及更高版本chrome.declarativeNetRequestAPI 用于通过指定声明性规则来屏蔽或修改网络请求。这样,扩展程序就可以修改网络请求,而无需拦截这些请求并查看其内容,从而提供更高的隐私保护。
- desktopCapture
-   Desktop Capture API 可捕获屏幕、单个窗口或单个标签页的内容。 
- devtools.inspectedWindow
-   使用 chrome.devtools.inspectedWindowAPI 与检查的窗口互动:获取检查的网页的标签页 ID、在检查的窗口的上下文中评估代码、重新加载网页或获取网页中的资源列表。
- devtools.network
-   使用 chrome.devtools.networkAPI 检索开发者工具在“网络”面板中显示的网络请求的相关信息。
- devtools.panels
-   使用 chrome.devtools.panelsAPI 将扩展程序集成到开发者工具窗口界面中:创建自己的面板、访问现有面板和添加边栏。
- devtools.performance
-  Chrome 129 及更高版本使用 chrome.devtools.performanceAPI 监听开发者工具中“性能”面板的录制状态更新。
- devtools.recorder
-  Chrome 105 及更高版本使用 chrome.devtools.recorderAPI 自定义开发者工具中的“记录器”面板。
- dns
-  开发者渠道使用 chrome.dnsAPI 进行 DNS 解析。
- documentScan
-  Chrome 44 及更高版本 仅限 ChromeOS使用 chrome.documentScanAPI 从连接的文档扫描仪中发现和检索图片。
- dom
-  Chrome 88 及更高版本使用 chrome.domAPI 访问扩展程序的特殊 DOM API
- 下载
-   使用 chrome.downloadsAPI 以编程方式发起、监控、操纵和搜索下载。
- enterprise.deviceAttributes
-  使用 chrome.enterprise.deviceAttributesAPI 读取设备属性。注意:此 API 仅适用于根据企业政策强制安装的扩展程序。
- enterprise.hardwarePlatform
-  Chrome 71 及更高版本 需要政策使用 chrome.enterprise.hardwarePlatformAPI 获取浏览器运行的硬件平台的制造商和型号。注意:此 API 仅适用于由企业政策安装的扩展程序。
- enterprise.login
-  使用 chrome.enterprise.loginAPI 退出受管理的访客会话。注意:此 API 仅适用于在 ChromeOS 受管理的访客会话中由企业政策安装的扩展程序。
- enterprise.networkingAttributes
-  使用 chrome.enterprise.networkingAttributesAPI 读取有关当前网络的信息。注意:此 API 仅适用于根据企业政策强制安装的扩展程序。
- enterprise.platformKeys
-  仅限 ChromeOS 需要政策使用 chrome.enterprise.platformKeysAPI 生成密钥并为这些密钥安装证书。这些证书将由平台管理,可用于 TLS 身份验证、网络访问或通过 chrome.platformKeys 由其他扩展程序使用。
- 事件
-   chrome.events命名空间包含 API 在调度事件时使用的常见类型,用于在发生值得注意的事情时通知您。
- extension
-   chrome.extensionAPI 具有可供任何扩展程序页面使用的实用程序。它支持在扩展程序及其内容脚本之间或在扩展程序之间交换消息,如消息传递中所述。
- extensionTypes
-   chrome.extensionTypesAPI 包含 Chrome 扩展程序的类型声明。
- fileBrowserHandler
-  仅限 ChromeOS 仅限前台使用 chrome.fileBrowserHandlerAPI 扩展 Chrome OS 文件浏览器。例如,您可以使用此 API 让用户将文件上传到您的网站。
- fileSystemProvider
-  仅限 ChromeOS使用 chrome.fileSystemProviderAPI 创建可通过 ChromeOS 上的文件管理器访问的文件系统。
- fontSettings
-   使用 chrome.fontSettingsAPI 管理 Chrome 的字体设置。
- gcm
-   使用 chrome.gcm可让应用和扩展程序通过 Firebase Cloud Messaging (FCM) 发送和接收消息。
- 历史记录
-   使用 chrome.historyAPI 与浏览器记录的已访问页面进行互动。您可以在浏览器的历史记录中添加、移除和查询网址。如需使用您自己的版本替换历史记录页面,请参阅替换页面。
- i18n
-   使用 chrome.i18n基础架构在整个应用或扩展程序中实现国际化。
- 身份
-   使用 chrome.identityAPI 获取 OAuth2 访问令牌。
- idle
-   使用 chrome.idleAPI 检测机器的空闲状态何时发生变化。
- input.ime
-  仅限 ChromeOS使用 chrome.input.imeAPI 为 Chrome OS 实现自定义 IME。这样,扩展程序就可以处理按键、设置组合并管理候选字窗口。
- instanceID
-  Chrome 44 及更高版本使用 chrome.instanceID访问实例 ID 服务。
- loginState
-  Chrome 78 及更高版本 仅限 ChromeOS使用 chrome.loginStateAPI 读取和监控登录状态。
- 管理
-   chrome.managementAPI 提供了一些方法来管理已安装的应用和扩展程序。
- 通知
-   使用 chrome.notificationsAPI 通过模板创建丰富通知,并在系统托盘中向用户显示这些通知。
- offscreen
-  Chrome 109 及更高版本 MV3 及更高版本使用 offscreenAPI 创建和管理屏幕外文档。
- 多功能框
-   借助多功能框 API,您可以向 Google Chrome 的地址栏(也称为多功能框)注册关键字。 
- pageCapture
-   使用 chrome.pageCaptureAPI 将标签页另存为 MHTML。
- 权限
-   使用 chrome.permissionsAPI 在运行时(而非安装时)请求已声明为可选的权限,以便用户了解需要这些权限的原因,并仅授予必要的权限。
- platformKeys
-  Chrome 45 及更高版本 仅限 ChromeOS使用 chrome.platformKeysAPI 访问由平台管理的客户端证书。如果用户或政策授予了相应权限,扩展程序便可在其自定义身份验证协议中使用此类证书。例如,这允许在第三方 VPN 中使用平台管理的证书(请参阅 chrome.vpnProvider)。
- power
-   使用 chrome.powerAPI 可替换系统的电源管理功能。
- printerProvider
-  Chrome 44 及更高版本chrome.printerProviderAPI 会公开打印管理器使用的事件,以便查询受扩展程序控制的打印机、查询这些打印机的功能,以及向这些打印机提交打印作业。
- 打印
-  Chrome 81 及更高版本 仅限 ChromeOS使用 chrome.printingAPI 将打印作业发送到 Chromebook 上安装的打印机。
- printingMetrics
-  使用 chrome.printingMetricsAPI 获取有关打印使用情况的数据。
- 隐私权
-   使用 chrome.privacyAPI 来控制 Chrome 中可能会影响用户隐私的功能的使用情况。此 API 依赖于 ChromeSetting 类型的 API 原型来获取和设置 Chrome 的配置。
- 进程
-  开发者渠道使用 chrome.processesAPI 与浏览器的进程进行交互。
- proxy
-   使用 chrome.proxyAPI 管理 Chrome 的代理设置。此 API 依赖于 ChromeSetting 类型的 API 原型来获取和设置代理配置。
- readingList
-  Chrome 120 及更高版本 MV3 及更高版本使用 chrome.readingListAPI 读取和修改阅读清单中的内容。
- runtime
-   使用 chrome.runtimeAPI 可检索服务工作线程、返回清单的相关详细信息,以及监听和响应扩展程序生命周期中的事件。您还可以使用此 API 将网址的相对路径转换为完全限定网址。
- 脚本
-  Chrome 88 及更高版本 MV3 及更高版本使用 chrome.scriptingAPI 在不同上下文中执行脚本。
- search
-  Chrome 87 及更高版本使用 chrome.searchAPI 通过默认提供程序进行搜索。
- 会话
-   使用 chrome.sessionsAPI 查询和恢复浏览会话中的标签页和窗口。
- sidePanel
-  Chrome 114 及更高版本 MV3 及更高版本使用 chrome.sidePanelAPI 在浏览器的侧边栏中托管内容,与网页的主要内容并排显示。
- storage
-   使用 chrome.storageAPI 来存储、检索和跟踪用户数据的更改。
- system.cpu
-   使用 system.cpuAPI 查询 CPU 元数据。
- system.display
-   使用 system.displayAPI 查询展示元数据。
- system.memory
-   chrome.system.memoryAPI。
- system.storage
-   使用 chrome.system.storageAPI 查询存储设备信息,并在可移除存储设备连接和断开连接时收到通知。
- systemLog
-  使用 chrome.systemLogAPI 记录来自扩展程序的 Chrome 系统日志。
- tabCapture
-   使用 chrome.tabCaptureAPI 与标签页媒体流进行互动。
- tabGroups
-  Chrome 89 及更高版本 MV3 及更高版本使用 chrome.tabGroupsAPI 与浏览器的标签页分组系统进行交互。您可以使用此 API 修改和重新排列浏览器中的标签页组。如需对标签页进行分组和取消分组,或查询哪些标签页位于分组中,请使用chrome.tabsAPI。
- 标签页
-   使用 chrome.tabsAPI 与浏览器的标签页系统进行交互。您可以使用此 API 在浏览器中创建、修改和重新排列标签页。
- topSites
-   使用 chrome.topSitesAPI 访问新标签页上显示的顶级网站(即访问次数最多的网站)。这些快捷方式不包括用户自定义的快捷方式。
- tts
-   使用 chrome.ttsAPI 播放合成的文字转语音 (TTS)。另请参阅相关的ttsEngineAPI,该 API 允许扩展程序实现语音引擎。
- ttsEngine
-   使用 chrome.ttsEngineAPI 通过扩展程序实现文字转语音(TTS) 引擎。如果您的扩展程序使用此 API 进行注册,那么当任何扩展程序或 Chrome 应用使用ttsAPI 生成语音时,该扩展程序都会收到包含要朗读的发言内容和其他参数的事件。然后,扩展程序可以使用任何可用的 Web 技术来合成和输出语音,并将事件发送回调用函数以报告状态。
- 类型
-   chrome.typesAPI 包含 Chrome 的类型声明。
- userScripts
-  Chrome 120 及更高版本 MV3 及更高版本使用 userScriptsAPI 在用户脚本上下文中执行用户脚本。
- vpnProvider
-  Chrome 43 及更高版本 仅限 ChromeOS使用 chrome.vpnProviderAPI 实现 VPN 客户端。
- 壁纸
-  Chrome 43 及更高版本 仅限 ChromeOS使用 chrome.wallpaperAPI 更改 ChromeOS 壁纸。
- webAuthenticationProxy
-  Chrome 115 及更高版本 MV3 及更高版本借助 chrome.webAuthenticationProxyAPI,在远程主机上运行的远程桌面软件可以拦截 Web 身份验证 API (WebAuthn) 请求,以便在本地客户端上处理这些请求。
- webNavigation
-   使用 chrome.webNavigationAPI 接收有关正在处理的导航请求的状态的通知。
- webRequest
-   使用 chrome.webRequestAPI 观察和分析流量,并拦截、屏蔽或修改正在处理的请求。
- 窗口
-   使用 chrome.windowsAPI 与浏览器窗口互动。您可以使用此 API 在浏览器中创建、修改和重新排列窗口。