multi-account-containers/README.md
Andre Schröder a1d01f8ff2 Fix development instructions in README
web-ext will not work when following the instructions without having
this diff applied:

```
$ ./node_modules/web-ext/bin/web-ext run -s src/
(node:41062) Warning: Accessing non-existent property 'cat' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
(node:41062) Warning: Accessing non-existent property 'cd' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'chmod' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'cp' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'dirs' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'pushd' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'popd' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'echo' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'tempdir' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'pwd' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'exec' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'ls' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'find' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'grep' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'head' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'ln' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'mkdir' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'rm' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'mv' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'sed' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'set' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'sort' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'tail' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'test' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'to' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'toEnd' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'touch' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'uniq' of module exports inside circular dependency
(node:41062) Warning: Accessing non-existent property 'which' of module exports inside circular dependency
Applying config file: ./package.json
Running web extension from /home/andre/Git/multi-account-containers/src
Use --verbose or open Tools > Web Developer > Browser Console to see logging

WebExtError: Temporary add-on installation is not supported in this version of Firefox (you need Firefox 49 or higher). For older Firefox versions, use --pre-install
    at FirefoxDesktopExtensionRunner._callee6$ (/home/andre/Git/multi-account-containers/node_modules/web-ext/dist/webpack:/src/extension-runners/firefox-desktop.js:273:19)
    at tryCatch (/home/andre/Git/multi-account-containers/node_modules/web-ext/node_modules/regenerator-runtime/runtime.js:62:40)
    at Generator.invoke [as _invoke] (/home/andre/Git/multi-account-containers/node_modules/web-ext/node_modules/regenerator-runtime/runtime.js:296:22)
    at Generator.prototype.<computed> [as throw] (/home/andre/Git/multi-account-containers/node_modules/web-ext/node_modules/regenerator-runtime/runtime.js:114:21)
    at step (/home/andre/Git/multi-account-containers/node_modules/web-ext/dist/webpack:/node_modules/babel-runtime/helpers/asyncToGenerator.js:17:1)
    at /home/andre/Git/multi-account-containers/node_modules/web-ext/dist/webpack:/node_modules/babel-runtime/helpers/asyncToGenerator.js:30:1
    at processTicksAndRejections (node:internal/process/task_queues:93:5)
```

web-ext will work when following the instructions with having this diff
applied:

```
$ web-ext run -s src/
Applying config file: ./package.json
Running web extension from /home/andre/Git/multi-account-containers/src
Use --verbose or open Tools > Web Developer > Browser Console to see logging
Installed /home/andre/Git/multi-account-containers/src as a temporary add-on
The extension will reload if any source file changes
Press R to reload (and Ctrl-C to quit)
```

I copied the wording from
2184fee75a/README.md

I guess the underlying problem is that the web-ext version specified in
the package.json is very outdated. By installing the web-ext tool via
the provided instructions it fixes the problem.

Furthermore, the `webextensions-examples` repo doesn't specify web-ext
in their package.json which means that installing web-ext via the
provided instructions seems to be the preferred way. (So maybe web-ext
should be removed from the package.json entirely?)

Fixes #1926
2020-12-23 04:13:16 +01:00

3.1 KiB
Raw Blame History

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 57+

Development

To run this extension:

  1. Open Firefox and load the about:debugging page. Click Load Temporary Add-on and select the manifest.json file within the folder of an example extension. Here is a video that demonstrates how to do this.
  2. Install the web-ext tool. At the command line, open the example extension's folder and type web-ext run -s src/. This launches Firefox and installs the extension automatically. This tool provides some additional development features, such as automatic reloading.

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.

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. npm run-script build
  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

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