/multi-account-containers

Firefox Multi-Account Containers lets you keep parts of your online life separated into color-coded tabs that preserve your privacy. Cookies are separated by container, allowing you to use the web with multiple identities or accounts simultaneously.

Primary LanguageJavaScriptMozilla Public License 2.0MPL-2.0

Multi-Account Containers

The Firefox Multi-Account Containers extension lets you carve out a separate box for each of your online lives – no more opening a different browser just to check your work email! Learn More Here

Available on addons.mozilla.org

For more info, see:

Requirements

  • node 7+ (for jpm)
  • Firefox 91.1.0+

Development

Running Locally

Via WebExtensions API (web-ext)

  1. Fetch the locales updating the git-submodules: git submodule init && git submodule update --remote --depth 1 src/_locales
  2. Install the web-ext tool.
  3. Run web-ext run -s src/. This launches Firefox and installs the extension automatically.

This tool provides some additional development features, such as automatic reloading.

Via about:debugging in Firefox

  1. Fetch the locales updating the git-submodules: git submodule init && git submodule update --remote --depth 1 src/_locales
  2. Open the about:debugging page in Firefox.
  3. Click on This Firefox.
  4. Click on Load Temporary Add-on.
  5. Select src/manifest.json.

Here is a video that demonstrates how to do this.

Testing

  • Install dependencies:

    npm install
    
  • Run all tests:

    npm run test
    
  • Only run the linter:

    npm run lint
    

There is a timeout test that sometimes fails on certain machines, so make sure to run the tests on your clone before you make any changes to see if you have this problem.

Add/update messages for translation

The src/_locales directory is a git repository like any other, so to make changes to the messages:

  1. Make whatever changes you need in src/_locales/en as you work.

  2. cd src/_locales/en

  3. git branch message-updates-yyyymmdd

  4. git push -u origin message-updates-yyyymmdd

You can then open a pull request from the message-updates-yyyymmdd branch to

the l10n repo main branch.

Distributing

Make the new version

  1. Bump the version number in package.json and manifest.json
  2. Commit the version number bump
  3. Create a git tag for the version: git tag <version>
  4. Push the tag up to GitHub: git push --tags

Publish to AMO

  1. ./bin/build-addon.sh
  2. Upload the .zip to AMO

Publish to GitHub

Finally, we also publish the release to GitHub for those followers.

  1. Download the signed .xpi from the addon versions page
  2. Make the new release on GitHub
    • Use the version number for "Tag version" and "Release title"
    • Release notes: copy the output of git log --no-merges --pretty=format:"%h %s" <previous-version>..<new-version>
    • Attach binaries: select the signed .xpi file

Links

Facebook & Twitter icons CC-Attrib https://fairheadcreative.com.