SuperAPI AI 工具集

extension-manifest

编程与开发

查看项目

更新于 10-16 08:19

技能介绍

用途

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" }
}

权限分析步骤:

  1. 在代码库中检索 chrome. API 调用。
  2. 使用 references/api-permission-map.md 将每个调用映射到权限。
  3. 尽可能优先使用 activeTab 而非 tabs + host_permissions。
  4. 对非必要功能使用可选权限。
  5. 在 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:安全审计与最佳实践。

限制

资料未提供该技能的收费、价格、平台支持范围或具体效果数据,暂未提供。