We now mark the experiments cache as clean before writing the cache.
This means that any changes to the data between collecting it and when
the actual write executes will properly mark the cache as dirty.
--HG--
extra : rebase_source : 1c8b2dd2365ff2c27e7b545c5347ab178d6818d9
extra : histedit_source : a6b10099af6e8d4c67450e9f4afef403d5b74436
We expect all historic experiments to have a valid endDate. Setting an experiment to disabled and then calling into reconcileAddonState can trigger calls into Experiments.getExperiments() via the AddonManager, so we need to set the endDate before that.
Upcoming tests will need to wait on init() to finish before running. We
now return a promise so these tests don't have to look at internal
variables.
--HG--
extra : rebase_source : 487645efe419fb3fa3371f85a81e8f3e1ccd9012
extra : amend_source : 3d6bb785e0ecdabcbff1e5bc62ee7dc56cbb7244
extra : histedit_source : 8d12f7e5c47995a408509a85a527bc86f9a76ccb
The previous experiment feature expands the scope of these functions. A
rename was in order.
--HG--
extra : rebase_source : 054d7a440e3e15436ff7fbcbc4f91b28dd4fc9fd
We normally validate hashes of XPIs as part of installing experiments.
While a useful security feature, this patch makes that optional. This in
turn makes automated and manual testing easier.
--HG--
extra : rebase_source : 292653411391843fad3f62d0bee01e11779313b6
To sync experiment state with the addon manager, we need to start it early when there is a
active experiment.
However, initializing the telemetry experiments system too early can lead to performance
regressions, so we delay the initialization if we don't have an active experiment.
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
Experiment add-ons are disabled by default in the Addon Manager. This
patch will manually enable them if necessary.
--HG--
extra : rebase_source : 2271372b232b5d85af32a4a96f2e3beb867cabf9
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
We now maintain per-type counts/IDs of each Policy, Experiments, and
ExperimentEntry. The log events for each type are prefixed with the
count/ID so one can easily attribute events to specific instances.
--HG--
extra : rebase_source : 4f1fcc38e5f52ff38b90f9ce71e332492983ff37