用途:用于从零设计并构建 Chrome 扩展、将 Manifest V2 迁移到 V3、实现 Service Worker、内容脚本或弹窗/选项页、调试跨上下文消息传递,以及使用 storage、permissions、alarms、side panel 等扩展专用 API。不适用于 Safari App Extensions、未使用 WebExtensions API 的 Firefox 开发,以及与扩展 API 无关的普通网页开发。
主要能力与约定:始终优先使用 Service Worker 而非后台页面;明确区分 Service Worker(后台)、内容脚本(可访问 DOM)与 UI 上下文(弹窗、选项页);使用 chrome.runtime.sendMessage 和 chrome.tabs.sendMessage 通信,按目标 Chrome 版本选择回调或 Promise 形式,处理 runtime.lastError 或拒绝,不混用响应机制;遵循最小权限原则,尽量使用 optional_permissions;持久化数据使用 chrome.storage.local 或 chrome.storage.sync 而非 localStorage;网络过滤与修改使用 declarativeNetRequest。
用法要点:Manifest V3 基本结构包含 manifest_version、name、version、action.default_popup、background.service_worker、content_scripts 的 matches 与 js,以及 permissions(如 storage、activeTab)。消息监听中应校验 sender.id 与消息类型,敏感操作单独授权;内容脚本需校验外部输入。初始化可用 chrome.runtime.onInstalled;避免 innerHTML 与 eval(),优先 textContent 等安全 DOM API;不要在 Service Worker 中阻塞主线程。
限制:Service Worker 是短暂的,定时任务应使用 chrome.alarms,而非 setTimeout 或 setInterval。消息行为需匹配目标浏览器文档版本;仅在实际存在待处理的异步 sendResponse 时返回字面量 true。内容脚本与页面消息视为不可信。manifest 引用的 popup.html、background.js、content.js 等文件需自行创建与测试,本技能不打包这些文件。不要在 sync 存储中保存凭据,也不要静默扩大主机权限。输出不能替代针对具体环境的验证、测试或专家审查;若缺少必要输入、权限、安全边界或成功标准,应停止并请求澄清。