PT 助手 Plus Firefox 扩展商店:AMO 提交与审核要点
Firefox 扩展(Web Extensions)的分发必须通过 Mozilla 官方的扩展商店(AMO),其严格的审核流程常导致开发者因权限声明不清晰、隐私政策缺失等问题被拒。本文基于 PT 助手 Plus(一款辅助下载 PT 站资源的浏览器插件)的实践经验,详解 AMO 提交全流程及关键审核要点,帮助开发者规避常见陷阱,提升通过率。
一、扩展元数据配置规范
AMO 对扩展的 manifest.json 有严格要求,核心在于权限声明的最小化和功能描述的准确性。PT 助手 Plus 的配置文件 public/manifest.json 中需特别注意以下几点:
1.1 权限声明精简原则
Firefox 要求扩展仅申请必要权限。例如,PT 助手 Plus 仅声明与资源下载相关的核心权限:
"permissions": [
"activeTab", // 临时访问当前标签页
"storage", // 存储用户配置
"contextMenus", // 自定义右键菜单(见[src/background/contextMenus.ts](https://link.gitcode.com/i/356a3a1d427ef1d68f27dff27c94c64b))
"notifications" // 操作结果通知
]
风险点:避免使用通配符 URL 权限(如 <all_urls>),需明确指定 PT 站点域名,如 ["https://*.ptsite.com/*"]。
1.2 浏览器兼容性配置
通过 browser_specific_settings 字段指定 Firefox 特有配置,确保更新机制合规:
"browser_specific_settings": {
"gecko": {
"update_url": "https://pt-plugins.github.io/PT-Plugin-Plus/update/firefox.json",
"strict_min_version": "68.0" // 最低支持版本
}
}
二、隐私政策与数据处理
Mozilla 对用户数据保护要求严格,扩展必须提供清晰的隐私政策说明。PT 助手 Plus 通过 privacy-statement.md 明确以下要点:
2.1 数据本地化存储
强调所有用户数据(如站点配置、下载历史)仅存储在本地浏览器,不上传至第三方服务器:
"在您使用助手的过程中,会产生一些配置数据和历史记录,这些信息全部存储于当前浏览器" —— privacy-statement.md
2.2 第三方数据交互声明
若扩展需与外部服务(如下载客户端)通信,需明确数据传输方式。例如 PT 助手 Plus 声明:
"当您已配置了备份服务器,这些信息会由您决定是否上传至这些服务器"
三、用户界面与交互合规
AMO 要求扩展的 UI 元素(如右键菜单、弹窗)必须功能明确且无误导性。PT 助手 Plus 的上下文菜单实现 src/background/contextMenus.ts 遵循以下原则:
3.1 右键菜单设计规范
通过 createSiteMenus 方法动态生成上下文菜单,仅在 PT 站点页面显示相关选项:
// 代码片段来自[src/background/contextMenus.ts](https://link.gitcode.com/i/356a3a1d427ef1d68f27dff27c94c64b)
public createSiteMenus(host: string) {
const site = this.options.sites.find(s => s.host === host);
if (site) {
this.add({
id: site.host,
title: `发送到 ${site.name}`,
contexts: ["link"],
targetUrlPatterns: [`*://${site.host}/*torrent*`] // 仅对资源链接生效
});
}
}
3.2 弹窗界面简洁性
扩展弹窗 public/popup.html 需避免复杂交互,聚焦核心功能(如快速切换下载客户端)。AMO 禁止弹窗包含广告、诱导分享等无关内容。
四、审核材料准备清单
4.1 必选文档
- 隐私政策:使用 privacy-statement.md 生成 HTML 版本,需包含:
- 数据收集范围(仅本地存储)
- 第三方数据共享声明(无)
- 用户数据删除方式(清除浏览器数据)
- 功能截图:提供 3-5 张关键界面截图,如:
- 右键菜单操作(图 2)
- 下载配置页面
- 资源搜索结果

图 2:PT 助手 Plus 在 PT 站点的右键菜单,仅显示与资源相关的操作选项
4.2 测试包要求
- 提交 ZIP 格式的打包文件,不含开发依赖(通过
yarn build:firefox生成) - 确保扩展 ID 与 AMO 开发者账号关联(通过
web-ext sign工具自动生成)
五、常见审核失败案例及解决方案
| 失败原因 | 解决措施 |
|---|---|
| 权限过度申请 | 移除 webRequest 等非必要权限,使用 activeTab 替代 <all_urls> |
| 隐私政策缺失 | 补充 privacy-statement.md 并在扩展内提供访问入口 |
| 代码混淆或加密 | 确保所有 JavaScript 代码可阅读,移除 eval 动态执行(如 src/background/contextMenus.ts 第 865 行需重构) |
| 更新 URL 不可访问 | 使用 Mozilla 认可的 HTTPS 地址,如示例中的 GitHub Pages 链接 |
六、提交流程与后续维护
6.1 提交步骤
- 注册 Mozilla 开发者账号并完成邮箱验证
- 通过 AMO 开发者控制台 上传扩展 ZIP 包
- 填写扩展详情(使用 public/_locales/zh_CN/messages.json 中的多语言描述)
- 等待自动审核(约 1-2 小时)及人工审核(1-3 个工作日)
6.2 版本更新策略
- 小版本更新(bug 修复):通过
update_url自动推送,无需重新审核 - 大版本更新(新增功能):需提交新版本至 AMO 重新审核
- 保持更新频率:长期不更新的扩展可能被 AMO 标记为"不活跃"
结语
AMO 的严格审核旨在保障用户安全,开发者只需专注于功能必要性、隐私保护和代码透明度即可顺利通过。PT 助手 Plus 的实践表明,遵循最小权限原则、提供清晰的隐私政策、优化用户交互体验是通过审核的核心要素。建议提交前使用 web-ext lint 工具自检,减少反复修改成本。
提示:完整的 AMO 审核指南可参考 Mozilla 官方文档,结合本文的实践经验可大幅提升通过率。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



