Skip to content

feat: Firefox extension - #3

Merged
kermitsxb merged 9 commits into
mainfrom
feat/firefox-extension
Oct 1, 2026
Merged

kermitsxb merged 9 commits into
mainfrom
feat/firefox-extension

Conversation

@kermitsxb

Copy link
Copy Markdown
Owner

Summary

Firefox support for the GitHub → Orca extension, using the same native host as Chrome and Arc.

  • Build: npm run build also produces extension-firefox/ (git-ignored). Its manifest is derived from extension/manifest.json by scripts/firefox-manifest.mjs. The derived manifest uses background.scripts, drops key, adds options_ui, and sets browser_specific_settings.gecko (id github-orca@stocki, min 128, data_collection_permissions: none).
  • Signing: npm run sign:firefox runs web-ext sign --channel=unlisted with WEB_EXT_API_KEY / WEB_EXT_API_SECRET and writes the .xpi to web-ext-artifacts/. npm run lint:firefox runs web-ext lint. Both scripts rebuild first.
  • Host registration: scripts/install.sh also writes ~/Library/Application Support/Mozilla/NativeMessagingHosts/com.stocki.github_orca.json with allowed_extensions. Host code is unchanged.
  • Error mapping: the background worker reads Firefox's port.error. Firefox's "No such native application" and "does not have permission" messages now map to the same toasts as on Chrome.
  • Docs: README has a Firefox install section (signing, .xpi, temporary load, permissions troubleshooting). AGENTS.md is updated.

Verification

  • npm test passes (229 tests), npm run typecheck is clean and npm run build succeeds.
  • npm run lint:firefox reports 0 errors and 2 warnings. data_collection_permissions only exists from Firefox 140 (Android 142), but strict_min_version is 128. Older versions ignore the key, so the warnings are accepted.
  • install.sh was run against a sandbox HOME in three setups: Chrome and Mozilla dirs, Mozilla only, and no browser dirs. The no-browser setup fails with the expected message. The script was not run against the real HOME.

Not verified (manual)

  • Run ./scripts/install.sh, then load extension-firefox/ via about:debugging.
  • Check Review in Orca and Clone in Orca on github.com.
  • Run one slow clone that takes over 30 s, to check that Firefox keeps the event page alive while the native port is open.
  • Sign with npm run sign:firefox and install the .xpi in Firefox release.

@kermitsxb
kermitsxb marked this pull request as ready for review October 1, 2026 10:43
* ci: build both extensions and release them on version tags

* docs: releases

* ci: cut releases with release-please

* docs: release-please releases
* ci: reuse already-submitted AMO versions when signing

* docs: Firefox signing retries
@kermitsxb
kermitsxb merged commit 87b8c95 into main Oct 1, 2026
3 checks passed
@github-actions github-actions Bot mentioned this pull request Oct 1, 2026
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.

1 participant