用途
Extension Manifest & Permissions Generator 是一个面向 Chrome MV3 扩展开发的技能,用于根据扩展当前实现生成最佳的 manifest.json,并通过分析代码确定最小权限集,遵循 Chrome 官方文档与最佳实践。
主要能力
- 检测项目框架:检查是否存在 wxt.config.ts、crxjs.config.ts 或原始 manifest.json。
- 扫描扩展代码库中的 Chrome API 使用情况。
- 将每个 API 调用映射到其所需权限(参考 references/api-permission-map.md)。
- 生成包含最小必需权限的 manifest.json。
- 依据 Chrome 文档与 CWS 政策进行校验。
- 报告用户将看到的权限警告。
使用方式
该技能提供了一套工作流:先检测框架,再扫描代码库中的 Chrome API 调用,然后映射权限、生成 manifest.json、校验并报告权限警告。
对于 CRXJS 项目,manifest 由代码和 package.json 自动生成,可通过 crxjs.config.ts 覆盖,详见 https://docs.crxjs.com/。
技能附带一个快速 manifest 模板:
{
"manifest_version": 3,
"name": "Extension Name",
"version": "1.0.0",
"description": "Brief description. Max 132 chars for CWS.",
"icons": {
"16": "icons/icon16.png",
"48": "icons/icon48.png",
"128": "icons/icon128.png"
},
"action": {
"default_popup": "popup.html",
"default_icon": { "16": "icons/icon16.png" }
},
"permissions": [],
"host_permissions": [],
"background": { "service_worker": "background.js", "type": "module" }
}
权限分析步骤:
- 在代码库中检索 chrome. API 调用。
- 使用 references/api-permission-map.md 将每个调用映射到权限。
- 尽可能优先使用 activeTab 而非 tabs + host_permissions。
- 对非必要功能使用可选权限。
- 在 references/permission-warnings.md 中检查警告文本。
常见错误与修复
- host_permissions 放在 permissions 内:将 URL 移到单独的 host_permissions 数组。
- 使用 <all_urls>:缩小到特定域名模式。
- 缺少 activeTab:仅在用户点击时需要当前标签页时添加。
- 过度使用 tabs 权限:仅在需要标签页 URL/标题时使用;否则改用 activeTab。
- content_security_policy 写成字符串:必须是对象 { "extension_pages": "..." }。
- web_accessible_resources 写成 string[]:应使用包含 resources + matches 的对象。
关键 MV3 规则
- host_permissions 与 permissions 分离。
- Service worker 取代后台页面(无 DOM、无 window)。
- content_security_policy 是对象,不是字符串。
- 禁止远程代码执行(无 eval、无 CDN 脚本)。
- web_accessible_resources 需要 matches 数组。
- 使用 chrome.scripting.executeScript() 而非 tabs.executeScript()。
参考资料
- references/manifest-fields-reference.md:所有 manifest 字段及其类型与示例。
- references/manifest-templates.md:即用模板(popup、content script、sidepanel、devtools)。
- references/manifest-validation-checklist.md:提交前校验清单。
- references/api-permission-map.md:Chrome API 到权限的映射。
- references/permission-warnings.md:每个权限对应的用户可见警告文本。
- references/permission-strategies.md:可选权限、activeTab、升级模式。
相关技能
- extension-create:完整项目脚手架。
- extension-analyze:安全审计与最佳实践。
限制
资料未提供该技能的收费、价格、平台支持范围或具体效果数据,暂未提供。