Manifest JSON
定义:manifest.json 是浏览器扩展的核心配置文件,声明扩展的名称、版本、权限、脚本入口等元信息。浏览器加载扩展时首先读取此文件,验证配置合法性后加载对应组件。文件采用 JSON 格式,包含 manifest_version(配置格式版本号)、name(扩展名称)、version(扩展版本)、permissions(权限列表)等必要字段。
与工具关系:本工具的核心功能就是根据用户配置自动生成符合规范的 manifest.json 文件,支持 V2(manifest_version: 2)和 V3(manifest_version: 3)两种版本格式,自动填充所有必要字段。
Service Worker
定义:Manifest V3 引入的后台脚本运行环境,替代传统的 Background Page。Service Worker 在需要时启动,空闲约 30 秒后自动终止,无法保持全局状态变量。支持事件监听(如 chrome.runtime.onInstalled)和消息传递,用于处理扩展的后台逻辑。由于生命周期短暂,需要通过 chrome.storage 保存状态,通过 chrome.alarms 实现定时任务。
与工具关系:选择 V3 版本并启用 Background 组件时,工具自动在 manifest.json 中配置 background.service_worker 字段,并生成对应的 background.js 文件,包含 Service Worker 的基本事件监听代码模板。
Content Script
定义:运行在网页上下文中的 JavaScript 脚本,可以读取和修改 DOM 结构,但运行在隔离的 JS 环境中,无法直接访问网页的 window 对象或调用网页的 JavaScript 函数。通过 chrome.runtime.sendMessage 与 Background 通信,实现数据交换和功能协调。Content Script 按照 URL 匹配模式在指定页面自动注入执行。
与工具关系:工具支持配置 Content Script 的启用开关、URL 匹配模式(matches 字段)和自定义代码,生成对应的 content.js 文件和 manifest.json 中的 content_scripts 配置项。
Popup 弹窗
定义:用户点击浏览器工具栏上的扩展图标时显示的小窗口页面。由 HTML、CSS 和 JavaScript 组成,通常用于显示扩展的控制面板或快捷操作界面。Popup 弹窗的生命周期与用户交互绑定,打开时加载 HTML 页面,关闭后页面 DOM 被销毁,JavaScript 执行上下文终止,不保留任何状态。需要持久化的数据应通过 chrome.storage API 存储。
与工具关系:工具支持配置 Popup 的标题、HTML 结构和 JavaScript 代码,生成 popup.html 和 popup.js 文件,并在 manifest.json 中配置 action.default_popup 字段。
Options 页面
定义:扩展的设置页面,允许用户自定义扩展行为和配置参数。通常通过右键菜单(chrome.runtime.openOptionsPage)或 Popup 中的设置链接打开,可以提供比 Popup 更复杂的配置界面。Options 页面的数据持久化通过 chrome.storage API 实现,页面关闭后数据仍保留在浏览器中。在 manifest.json 中通过 options_page 或 options_ui 字段声明。
与工具关系:工具支持启用 Options 页面并生成对应的 options.html 文件,开发者可在此基础上添加设置表单、存储逻辑和界面样式。
Permissions(权限)
定义:浏览器扩展访问敏感 API 或系统资源所需的权限声明。Chrome Web Store 审核要求扩展只申请功能必需的权限,过多权限会导致审核失败或用户拒绝安装。常见权限包括 storage(本地数据存储)、tabs(标签页列表查询和操作)、activeTab(当前标签页临时访问权限)、notifications(桌面通知)、cookies(Cookie 读写)、webRequest(网络请求拦截和修改)等。
与工具关系:工具提供 13 种常用权限的可视化配置复选框,根据启用的组件类型自动推荐必要权限,帮助开发者遵循最小权限原则,避免权限声明过多或遗漏。
Host Permissions(主机权限)
定义:Manifest V3 将主机权限从 permissions 中独立出来为 host_permissions 字段,用于声明扩展可以访问的 URL 范围。可以使用具体域名模式(如 https://www.example.com/*)或宽泛通配符(如 <all_urls>)。Chrome Web Store 审核时,具体域名的声明比通配符更容易通过,建议仅声明扩展实际需要访问的域名范围。
与工具关系:工具支持自定义 Host 权限配置输入框,帮助开发者在 manifest.json 中正确声明 host_permissions 字段,避免因权限范围过大导致审核失败。
chrome.storage API
定义:Chrome 扩展提供的持久化存储 API,用于在扩展的各个组件之间共享和保存数据。提供三种存储区域:storage.local(本地存储,容量大但不跨设备同步)、storage.sync(同步存储,跨设备同步但容量较小)、storage.session(会话存储,仅在浏览器运行期间有效)。数据以键值对形式存储,支持 JSON 对象。Service Worker 终止后数据仍可恢复读取。
与工具关系:工具在权限配置中提供 storage 选项,启用后可在生成的后台脚本和 Content Script 中使用 chrome.storage.local.get/set 等方法存储扩展状态和用户配置数据。
消息传递(Message Passing)
定义:Chrome 扩展不同组件之间(如 Content Script 与 Background、Popup 与 Background)的异步通信机制。主要 API 包括 chrome.runtime.sendMessage(发送消息)和 chrome.runtime.onMessage.addListener(监听消息)。通过定义消息类型和数据结构,实现跨执行上下文的数据交换和功能调用。长连接通信可使用 chrome.runtime.connect 建立端口。
与工具关系:工具在 Content Script 和 Background 的配置中提供自定义代码输入区域,开发者可以编写使用消息传递 API 的通信逻辑,实现组件间的数据同步和功能协调。
chrome.alarms API
定义:Chrome 扩展提供的定时任务 API,用于在指定时间间隔或特定时间点触发后台脚本执行。由于 Manifest V3 的 Service Worker 在空闲约 30 秒后会自动终止,chrome.alarms 是实现周期性后台任务(如定时数据同步、定期检查更新)的主要方式。通过 chrome.alarms.create 创建定时器,chrome.alarms.on.addListener 监听触发事件。最短触发间隔为 30 秒。
与工具关系:工具在权限配置中提供 alarms 选项,启用后可在生成的后台脚本中使用定时任务功能,解决 Service Worker 生命周期短暂带来的后台任务执行限制问题。
UD5工具箱