Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

Browser Extensions

Internal browser extensions for Chrome and Firefox. Each extension lives in its own folder under extensions/ and has its own README.

Extension What it does
uri-whisperer Links tech.studitemps:… URIs on debest and kraken to the URI Whisperer

Installation

Ready-made packages are under Releases. Every release belongs to one extension, as the tag shows (<extension>/v<version>).

Firefox

  1. Download the .xpi of the release.
  2. Open about:addons → gear icon → Install Add-on From File… and select the file.

After that, Firefox installs new versions on its own. It checks the extension's update_url (https://studitemps.github.io/browser-extensions/<extension>/updates.json).

Chrome

  1. Unzip the release's -chrome.zip.
  2. Open chrome://extensions and turn on developer mode.
  3. Click Load unpacked and select the unzipped folder.

Chrome doesn't update unpacked extensions. For a new version, replace the folder and click ↻ in chrome://extensions.

For development, load the extension's folder directly:

  • in Chrome as an unpacked extension
  • in Firefox via about:debugging#/runtime/this-firefox → Load Temporary Add-on… → manifest.json (lasts until restart)

Release

Releases are built by the GitHub Action .github/workflows/release.yml. It is triggered by a tag <extension>/v<major>.<minor>.<patch>:

git tag uri-whisperer/v0.4.0
git push origin uri-whisperer/v0.4.0

The action then:

  1. Writes the version from the tag into extensions/<extension>/manifest.json (in the build only, not committed). You don't edit version by hand.
  2. Runs extensions/<extension>/test/*.test.mjs with node --test, and web-ext lint.
  3. Has AMO sign the extension as "unlisted". This usually takes a few minutes.
  4. Publishes a GitHub release with the .xpi and a Chrome zip.
  5. Writes <extension>/updates.json to the gh-pages branch, which GitHub Pages serves.

AMO accepts each version only once, so you can't reuse a tag.

Signing locally as a fallback: Bump version in the extension's manifest.json first, then run from the extension's folder:

npx web-ext sign --channel=unlisted --api-key="$AMO_JWT_ISSUER" --api-secret="$AMO_JWT_SECRET" --ignore-files 'test/**' 'web-ext-artifacts/**' 'README.md'

The signed file ends up in web-ext-artifacts/.

Adding an extension

  1. Create extensions/<name>/ with a Manifest V3 manifest.json.
  2. Give it a unique browser_specific_settings.gecko.id.
  3. Set browser_specific_settings.gecko.update_url to https://studitemps.github.io/browser-extensions/<name>/updates.json.
  4. Put tests in test/*.test.mjs, if there are any.
  5. Add the extension to the table above.
  6. Release with the tag <name>/v0.1.0.

This repository is public, so new extensions must not contain anything confidential.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages