阅读使用入门部分后,请使用本指南简要了解扩展程序组件、它们在 Manifest V3 中的功能以及如何组合这些组件。首先熟悉扩展程序的功能:然后,通过扩展程序 核心概念部分学习如何组合这些功能。

设计界面

大多数扩展程序都需要某种类型的用户互动才能正常运行。扩展程序平台提供了多种方式来向您的扩展程序添加互动。这些方法包括从 Chrome 工具栏、侧边栏、上下文菜单等触发的弹出式窗口。
使用 chrome.sidePanel API 可将内容托管在浏览器侧边栏中的网页主要内容旁边。
控制扩展程序图标在工具栏中的显示。
向 Google Chrome 的上下文菜单添加项。

控制浏览器

借助 Chrome 的扩展程序 API,您可以改变浏览器的工作方式。
设置覆盖是扩展程序覆盖所选 Chrome 设置的一种方式。此外,扩展程序可以使用 HTML 覆盖网页来替换 Google Chrome 通常提供的网页。扩展程序可以覆盖书签管理器、“历史记录”标签页或新标签页。
开发者工具扩展程序可通过添加到扩展程序中的开发者工具页面访问开发者工具专用扩展程序 API,从而向 Chrome 开发者工具中添加功能。您也可以使用 chrome.debugger API 来调用 Chrome 的远程调试协议。附加到一个或多个标签页,以插桩网络交互、调试 JavaScript、更改 DOM 等。
借助 chrome.notifications API,您可以使用模板创建通知,并在用户的系统任务栏中向用户显示这些通知。
您可以使用 chrome.history API 与浏览器的已访问网页记录进行交互,并使用 chrome.browsingData API 管理其他浏览数据。使用 chrome.topSites 访问最常访问的网站。
使用 chrome.tabschrome.tabGroupschrome.windows 等 API 创建、修改和排列用户的浏览器。
使用 chrome.commands API 添加可在扩展程序中触发操作的键盘快捷键。例如,您可以添加用于打开浏览器操作的快捷方式,或者向扩展程序发送命令。
使用 chrome.identity API 获取 OAuth 2.0 访问令牌。
chrome.management API 提供了管理已安装和正在运行的扩展程序列表的方法。它尤其适用于会替换内置“新标签页”页面的扩展程序。
借助 chrome.omnibox API,您可以在 Google Chrome 的多功能框(地址栏)中注册关键字。
使用 chrome.privacy API 可以控制使用 Chrome 中可能会影响用户隐私的功能。另请参阅 chrome.proxy API 以管理 Chrome 的代理设置。
使用 chrome.downloads API,以编程方式启动、监控、操纵和搜索下载内容。
使用 chrome.bookmarks API 和 chrome.readingList API 来创建、整理和以其他方式操作这些列表。

控制网络

动态更改网页的内容和行为。您可以通过注入脚本、拦截网络请求以及使用 Web API 与网页进行交互,来控制和修改 Web。
内容脚本是在网页环境中运行的文件。它们使用标准文档对象模型 (DOM) 读取浏览器所访问网页的详情、更改这些网页,并将信息传递给其父级扩展程序。
"activeTab" 权限可让扩展程序在用户调用该扩展程序时(例如通过点击其操作)临时访问当前处于活动状态的标签页。用户访问该标签页时,对标签页的访问权限会一直有效;当用户离开页面或关闭标签页时,访问权限便会撤消。
使用 chrome.declarativeNetRequestchrome.webRequestchrome.webNavigation API 观察、屏蔽和修改网络请求。
了解使用 chrome.tabCapturegetDisplayMedia() 等 Web 平台 API 录制标签页、窗口或屏幕中音频和视频的不同方法。
使用 chrome.contentSettings API 可以控制网站是否可以使用 Cookie、JavaScript 和插件等功能。从更笼统的角度来说,内容设置可让您按网站(而非全局)自定义 Chrome 的行为。

核心概念

使用 Web 平台和扩展 API,您可以通过组合不同的界面组件和扩展平台功能来构建更复杂的功能。
扩展 Service Worker (service-worker.js) 是一种基于事件的脚本,浏览器在后台运行。它通常用于处理数据、协调扩展程序不同部分中的任务,以及用作扩展程序的事件管理器。
了解权限:其运作方式,以及在不需要时避免请求权限的时机。
很多时候,内容脚本或其他扩展页面都需要向扩展 Service Worker 发送或接收信息。在这些情况下,任一端都可以监听另一端发送的消息,并在同一通道上做出响应。
启用扩展程序即可与原生应用交换消息。
在 Manifest V3 中,扩展程序需要在扩展程序本身内捆绑使用的所有代码。有多种策略可以实现这一点。
Chrome 扩展程序有一个专门的 Storage API,适用于所有扩展程序组件。它包含四个针对特定用例的独立存储区域,以及一个用于跟踪每次数据更新的事件监听器。
Service Worker 没有 DOM 访问权限。借助 Offscreen API,此扩展程序可以在隐藏的文档中使用 DOM API,而不会因打开新窗口或标签页而中断用户体验。
通过跨域隔离,网页可以使用 SharedArrayBuffer 等强大的功能。扩展程序可以通过为 "cross_origin_embedder_policy""cross_origin_opener_policy" 清单键指定适当的值来选择启用跨域隔离。