Skip to content

extension: Firefox 发行通道(AMO unlisted 签名)+ 图标换 repo avatar - #6

Merged
abc9207144 merged 4 commits into
masterfrom
feature/firefox-channel
Oct 25, 2026
Merged

abc9207144 merged 4 commits into
masterfrom
feature/firefox-channel

Conversation

@steponeerror

Copy link
Copy Markdown
Owner

问题

Firefox 用户无法使用插件:现有 manifest 是 Chrome MV3 专属(background.service_worker),且 background 初始化调用的 storage.local.setAccessLevel 是 Chrome 专属 API,Firefox 下直接中断。另外插件图标仍是旧版,与 repo avatar 不一致。

变更

  • Firefox 通道构建:public/manifest.json 保持 Chrome 版不动(单一事实源);scripts/make-firefox-manifest.mjs 在构建时派生 dist/manifest.json:事件页 background.scripts(取代 service worker,type: module 保留——background.js 与 index 共享 rollup 代码分块)、browser_specific_settings.gecko(id=ip-radar-extension@steponeerror.github.io,strict_min_version=127,即 optional_host_permissions 门槛)。派生契约由测试钉死(改了什么 + 没改什么)。
  • 兼容守卫:background.ts 的 setAccessLevel 加存在性守卫,Chrome 行为逐字节等价;新增独立测试文件覆盖无该 API 的启动路径(独立文件是刻意的:background 模块副作用需全新模块注册表)。
  • 更新检查分通道:UpdateCheck.tsx 按 VITE_CHANNEL 比对 Release 资产前缀(IP.Radar.Firefox_* / IP.Radar.Chrome_*),Chrome 端字符串与行为零变化。
  • build:firefox:构建 + 派生 + 打包 IP.Radar.Firefox_v<版本>.zip(rm -f 防同版本重建累积陈旧 hashed chunks)。
  • README(繁體)Firefox 段:about:debugging 临时加载(重启即失)、永久安装走 AMO unlisted 签名(amo.env + web-ext sign,免费不公开上架,重签后已装者 AMO 自动更新)、gecko id 首签后永久不可换、Release 需上传 IP.Radar.Firefox_v<版本>.zip 资产更新检查才就绪。
  • 图标:public/icons/{32,64,128}.png 由用户 1024px repo avatar 重生成(LANCZOS)。
  • 文档:ADR 0002(Firefox 通道分发决策、不可逆点、否决项)+ CONTEXT.md「通道」词条。

验证

  • npm test 36 passed / 1 skipped(含新增 2 测)
  • build:firefox 产物 manifest 字段精确(background scripts+module、gecko 块);连续两次构建 zip 条目集完全一致(rm -f 生效)
  • Chrome 回归:npm run build 后 dist/manifest.json 与 public/manifest.json 字节一致(cmp 干净)
  • SDD 评审链:任务评审 Spec ✅ Approved → 全分支终审 Ready to merge(0 Critical/Important,chrome.* 全域盘点确认唯一 Chrome 专属调用已守卫)→ 修复波 scoped 复审 2/2 ADDRESSED

注意

gecko id 首次 AMO 签名后即为永久身份(换 id = 新扩展);首签前跑一次 web-ext lint。签名凭据只进 amo.env(gitignore)。

@abc9207144
abc9207144 merged commit 799b4f3 into master Oct 25, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants