The Add-on Feature

By Erik Vold

I want to propose a process for landing add-ons as features.

The first step is to allow the Jetpack test suite to be used on ANY add-on type. I suggest we do this by using a jetpack-test-options.json file in the root of the add-on to determine how the tests should be run, then we should only have to install it and watch the tests run. This is similar to how we run part of the Jetpack test suite, the idea here is merely to extend this to all add-on types. The add-on developer would simply have to create a test folder with test-*.js files which contain the Jetpack style tests.

The second step would be to add some directory to mozilla-central for these add-ons which land as features, it won’t matter if they are restartless or not, they can be any add-on type, so this directory would behave like the extensions directory of one’s Firefox profile. The only difference would be that this set of extensions would defer to the extensions directory of the Firefox profile being used. If the extensions directory has an extension with the same id as an add-on feature then the add-on feature is disabled and the extension is run. If the add-on is restartless and it is disabled, then the add-on feature would be enabled again.

In this way, DevTools could have clones on BitBucket and Github, and contributors could clone in to their extensions directory start hacking on the code, run tests, and submit pull requests without ever touching mozilla-central code.