Upcoming tests rely heavily on promises. I just learned that browser
chrome tests support add_task() as an alternative to test(). This patch
ports the browser_experiments.js test and utilized utility functions
to use add_task() and promises.
--HG--
extra : rebase_source : 434b7dc0e899fef0c508d5dd01438514da519ba3
extra : histedit_source : 517043f2bbe7a22bd53e8ae0c77f585ac107f6c9
Subsequent patches were running into race conditions and bugs related to
Experiments instance initialization state. This patch plugs the
necessary holes in initialization state management to unblock work.
The fixes are far from robust. There are still race conditions and bugs.
They should probably be addressed later.
--HG--
extra : rebase_source : 5f0c7fa1f554d09a21b1452506884dc771cb829d
There is a lot of boilerplate testing code that performs common
AddonManager operations. Some common operations used for testing
Experiments have been refactored into a testing-only JSM that lives as
part of the Add-ons Manager.
--HG--
extra : rebase_source : f18cf54c7af6d390ed4437bd0ed0eb4beea76b0d
The experiments service insists on being in control of experiments.
Before, it wasn't being as assertive as it needed to be: other browser
components could install experiments behind its back. This patch
reasserts the experiments service as king of experiments add-on
management.
--HG--
extra : rebase_source : 91439622e47419fae7675d83890e83cf37db453b
The change in 0633949f1000 was buggy. If a new Addon instance were
created, it would always return the value stored in the database. This
meant that if you set userDisabled = false and called getAddonByID(),
userDisabled would likely be reported as true.
--HG--
extra : rebase_source : 02be7302b6e168b5d56cbf02de0cca4810ccd700
extra : amend_source : 4cdc73bfbc826abd594d6f8a2374672be834dba8
The test experiments had unnecessary content in their install.rdf files.
<targetApplication> does not apply to experiment types and has been
removed.
The bootstrap setting is also implied and has been removed.
--HG--
extra : rebase_source : 52c297b17244b2cf160bc41018897ecc3fb0eabd
Experiment add-ons are now disabled by default on application load. It
is up to the Experiments Manager to enable them.
This means that experiments may not be able to reliably collect data or
modify behavior close to application startup. (There is a window between
when the Addon Manager initializes and when the Experiments Manager
initializes.) This window is acceptable for the initial version of the
experiments feature.
The Experiments Manager doesn't currently enable experiments on startup.
This will be addressed in a subsequent patch. Its tests do not regress
(indicating a lack of test coverage), so no harm no foul.
--HG--
extra : rebase_source : 00a55146576f490200a6148bd5516f84def9879c
extra : source : bd901384b973c7ff581fe24a3012f0191b8bbe67
Experiment add-ons are installed and updated via the Experiments Manager
service. With this change, the Add-ons Manager lets experiment add-ons
play by their own rules without interference.
--HG--
extra : rebase_source : 12f990198fed7171b9572c24aa2f8319620414a2
A new type of add-on is introduced: experiments.
Experiments are add-ons that conduct data experiments. They are deployed
to compatible clients and collect additional information about the
client.
--HG--
extra : rebase_source : 98a612933978b3e4bcfb83da9f6a9782c62dc0da
extra : amend_source : 9347a56bc3034c7ea1e50918278c6b9cc1270521