This desktop-only addon shows information about your Sync account, including showing all server data for your account. It is designed primarily for Sync developers, or advanced users who would like insights into their Sync data.
It is a React app which needs full chrome permissions - ie, the .jsx files have
ChromeUtils
and are able to reach into the internal sync/fxa/etc implementation
to display and edit. It mostly just reads, but it includes destructive
functionality; arbitrary editing of sync related stuff, raw sql execution, etc.
It does this by abusing addons "experimental api" support - where the "api" here is "whatever it takes to give ChromeUtils to our jsx". See ext_bootstrap.js. And to register the about page - see "*Redirector.js".
Once installed, type about:sync
into the URL bar.
Available for Firefox here: https://addons.mozilla.org/firefox/addon/about-sync/
This is only possible in Nightly. To proceed, you must use about:config
to
set extensions.experiments.enabled=true
and xpinstall.signatures.required=false
.
- Clone the git repo locally.
- Run
npm install
inside the repo. - Optionally, run
npm run dev
which should start a daemon which means any edits you make while Firefox is running should get picked up, and only need a "refresh" rather than a full browser restart to be seen. - Visit
about:debugging
-> "This Nightly" -> "Load Temporary Addon", then select any file in the root directory (eg,chrome.manifest
). - Open
about:sync
- To see verbose debug messages from bootstrap.js, set a boolean preference
extensions.aboutsync.verbose=true
- messages will be sent to the browser console. Most non-bootstrap code can just useconsole.log()
etc.
The CI process creates "dep signed" XPI files which can be used to test - this is useful to test the artifact of a PR, or to pre-test a release XPI before final "production signing".
See the official docs but a tl;dr is:
- CI will have a
dep-signed
job which will have the .xpi as an artifact. - This can be tested on Nightly only and only if the preference
xpinstall.signatures.dev-root
is true - this pref does not exist by default, so you need to create it as a bool pref. - As with running from source, you also need
extensions.experiments.enabled=true
Because this addon must be signed by the addons team, the release process is more difficult than for regular addons.
The general process followed by the addons team is documented here, but at the current time, the maintainers of about-sync don't have the required permissions. Therefore, the process is:
-
Bump the version in
package.json
the final version string will be something like
X.Y.Zbuildid20220601.073719
-
If needed, bump the
strict_min_version
inmanifest.json
. Ensure there is a matching version you're targeting in the version listMust use an exact version,
{version_number}.*
are not allowed to be used -
Find the exact github revision revision you want as the new build; usually current
main
. Ensure this revision is tested using the testing process described above -
Follow the Mozilla Add-on Review Request Intake instructions to create an issue that will kick off the process for an update.
-
You will be notified of an initial build, with will include a "dep-signing" task - however, this doesn't create the .xpi you can submit to AMO. Two additional sign-offs from the addons team is necessary and you will be given another taskcluster link.
-
In this second taskcluster build, you should find a link to a "release signing" taskcluster job, look for the built, signed .xpi and download it locally.
-
This release signing task should also have created a github tag in the aboutsync repository. Check that it has!
-
Upload the xpi to addons.mozilla.org. If you don't have the permission for this, ask for help in the #addons-pipeline channel.