Skip to content

AlvaroBeckerig/multi-account-containers

 
 

Repository files navigation

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

Note: Firefox 57 + 58 users should Install from our latest GitHub Release

For more info, see:

Requirements

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

Development

Web Extension Development

Since Firefox 57, this extension can now be run without any of the legacy components that were previously needed.

  1. Install web-ext with npm
  2. cd webextension; web-ext run -f Nightly

This will work in other builds of Firefox however certain features won't work and you will need to manually flip preferences to enable containers. All other sections of this guide talk about using the legacy setup with jpm.

Legacy Development

Development Environment

Add-on development is better with a particular environment. One simple way to get that environment set up is to install the DevPrefs add-on. You can make a custom Firefox profile that includes the DevPrefs add-on, and use that profile when you run the code in this repository.

  1. Make a new profile by running /path/to/firefox -P, which launches the profile editor. "Create Profile" -- name it whatever you wish (e.g. 'addon_dev') and store it in the default location. It's probably best to deselect the option to "Use without asking," since you probably don't want to use this as your default profile.

  2. Once you've created your profile, click "Start Firefox". A new instance of Firefox should launch. Go to Tools->Add-ons and search for "DevPrefs". Install it. Quit Firefox.

  3. Now you have a new, vanilla Firefox profile with the DevPrefs add-on installed. You can use your new profile with the code in this repository like so:

Run the .xpi file in an unbranded build

Release & Beta channels do not allow un-signed add-ons, even with the DevPrefs. So, you must run the add-on in an unbranded build:

  1. Download and install an un-branded build of Firefox
  2. Download the latest .xpi from this repository's releases
  3. Run the un-branded build of Firefox with your DevPrefs profile
  4. Go to about:addons
  5. Click the gear, and select "Install Add-on From File..."
  6. Select the .xpi file

Correct prefs

Whilst this is still using legacy code to test you will need the following in your profile:

Change the following prefs in about:config:

  • extensions.legacy.enabled = true
  • xpinstall.signatures.required = false

Run the TxP experiment with jpm

  1. git clone [email protected]:mozilla/testpilot-containers.git
  2. cd testpilot-containers
  3. npm install
  4. ./node_modules/.bin/jpm run -p /Path/To/Firefox/Profiles/{junk}.addon_dev -b FirefoxBeta (where FirefoxBeta might be: ~//obj-x86_64-pc-linux-gnu/dist/bin/firefox or ~//firefox)

Check out the Browser Toolbox for more information about debugging add-on code.

Building .xpi

To build a local testpilot-containers.xpi, use the plain jpm xpi command, or run npm run build.

Testing

TBD

Distributing

Make the new version

  1. Bump the version number in package.json, install.rdf, 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

While the add-on is an Embedded Web Extension, we have to use the Mozilla Internal Signing Service to sign it as a Mozilla extension exempt from AMO's Web Extension restrictions.

So, to distribute the add-on to AMO:

  1. Use jpm xpi to build the .xpi file
  2. Submit the .xpi to the Internal Signing Service and download the signed .xpi
  3. Upload the signed .xpi file to AMO

Publish to GitHub

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

  1. 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 http://fairheadcreative.com.

About

Firefox Multi-Account Containers adds new features to Containers.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 66.9%
  • CSS 21.8%
  • HTML 11.3%