Commit Graph

57 Commits

Author SHA1 Message Date
Gregory Szorc
4dabb75f1a Bug 989137 - Part 14: Return a promise from Experiments.init(); r=gfritzsche
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.
2014-04-10 13:29:02 -07:00
Gregory Szorc
943444a11f Bug 989137 - Part 13: Rename functions for associating with Add-on Manager; r=gfritzsche
The previous experiment feature expands the scope of these functions. A
rename was in order.
2014-04-10 13:27:36 -07:00
Gregory Szorc
ca82eb60d3 Bug 989137 - Part 12: Ability to ignore hashes of downloaded experiments; r=gfritzsche
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.
2014-04-10 13:18:19 -07:00
Georg Fritzsche
da0df86499 Bug 993084 - Fix experiments health report provider test. r=bsmedberg 2014-04-15 18:12:26 +02:00
Georg Fritzsche
b43b05c956 Bug 993084 - Consolidate pref name constants for experiment tests. r=bsmedberg 2014-04-15 18:12:26 +02:00
Georg Fritzsche
8b6af78c44 Bug 993084 - Delay initialization of telemetry experiments if there is no active experiment. r=bsmedberg
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.
2014-04-15 18:12:26 +02:00
Georg Fritzsche
6b6c2af35a Bug 994727 - Telemetry experiments: Fix disabling the feature. r=bsmedberg 2014-04-11 16:29:29 +02:00
Georg Fritzsche
ebd037742b Bug 994727 - Telemetry experiments: Test coverage for disabling the feature. r=bsmedberg 2014-04-11 16:29:29 +02:00
Georg Fritzsche
1c320894e7 Bug 993084 - Don't load experiments module if the feature is preffed off. r=bsmedberg 2014-04-10 16:56:25 +02:00
Gregory Szorc
abc979b6f0 Bug 989137 - Part 11: Make service initialization and uninitialization more robust; r=gfritzsche
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.
2014-04-07 14:11:31 -07:00
Benjamin Smedberg
bc6c0d2db4 Bug 993084 attempt - make CommonUtils and Metrics imports lazy, since they aren't going to be needed anywhere near startup or when experiments is disabled, r=gps 2014-04-08 17:18:17 -04:00
Gregory Szorc
4fba72f1fb Bug 989137 - Part 10: Add a testing-only JSM for common AddonManager operations; r=Unfocused, r=gfritzsche
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.
2014-04-04 15:58:29 -07:00
Gregory Szorc
7d5c3ab379 Bug 989137 - Part 9: Ensure add-ons are enabled when they should be; r=Unfocused, r=gfritzsche
Experiment add-ons are disabled by default in the Addon Manager. This
patch will manually enable them if necessary.
2014-04-04 15:58:27 -07:00
Gregory Szorc
7e3c378566 Bug 989137 - Part 8: Prevent unknown experiments from being installed; r=Unfocused
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.
2014-04-04 15:58:26 -07:00
Phil Ringnalda
e77a3a02b3 Backed out 3 changesets (bug 989137) for a sudden influx of xpcshell failures
CLOSED TREE

Backed out changeset 831a3ccce100 (bug 989137)
Backed out changeset d3053c4e4c51 (bug 989137)
Backed out changeset 7e410c1d61e6 (bug 989137)
2014-04-05 20:30:24 -07:00
Gregory Szorc
d0ea1efab2 Bug 989137 - Part 10: Add a testing-only JSM for common AddonManager operations; r=Unfocused, r=gfritzsche
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.
2014-04-04 15:58:29 -07:00
Gregory Szorc
92b7511b40 Bug 989137 - Part 9: Ensure add-ons are enabled when they should be; r=Unfocused, r=gfritzsche
Experiment add-ons are disabled by default in the Addon Manager. This
patch will manually enable them if necessary.
2014-04-04 15:58:27 -07:00
Gregory Szorc
cdfa651283 Bug 989137 - Part 8: Prevent unknown experiments from being installed; r=Unfocused
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.
2014-04-04 15:58:26 -07:00
Benjamin Smedberg
58278a2cdd Bug 992208 - Add Telemetry Experiments to the package so that they are actually used. Also a basic test that the service exists and can be created. r=gfritzsche 2014-04-04 13:03:29 -04:00
Benjamin Smedberg
f0fb2e5a7e Bug 985089 followup: fix mis-spelling of isNaN, r=gfritzsche 2014-04-04 09:16:58 -04:00
Benjamin Smedberg
c4fb36e675 Bug 986582 - Get rid of the toolkit.telemetry.enabledPreRelease pref and make the toolkit.telemetry.enabled pref do the right thing for beta users who are testing a final release build, r=rnewman 2014-04-03 14:55:42 -04:00
Gregory Szorc
30dbad8d70 Bug 989137 - Part 7: Remove unncessary content from test experiments; r=Unfocused
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.
2014-03-30 11:06:57 -07:00
Gregory Szorc
2f4ac65cb9 Bug 989137 - Part 6: Create experiment XPIs during the build; r=bsmedberg
Instead of checking in binary .xpi files, we now have the source files
under source control and generate the .xpi as part of the build.

The build system mechanism to generate the .xpi files is hacky. But it's
similar to what existing processes use. Bug 988938 will eventually make
this more sane.

Since the produced .xpi files no longer have stable content, the SHA-1s
of the experiments are now calculated at test run time.
2014-03-29 18:10:11 -07:00
Gregory Szorc
4cc99a0bce Bug 989137 - Part 5: Prefix each log message with the instance of the object; r=gfritzsche
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.
2014-03-28 13:04:09 -07:00
Gregory Szorc
188b93ef41 Bug 989137 - Part 4: Use a prefixing logger for Experiments logging; r=gfritzsche
Logging in the Experiments module were using a common pattern of
prefixing all messages with the type. We move this prefixing into
a prefixed logger.
2014-03-28 12:57:43 -07:00
Gregory Szorc
58a79a6dca Bug 989137 - Part 2: Don't use a global logger; r=gfritzsche
As part of debugging subsequent patches, I ran into issues debugging the
interaction between multiple Experiments instances. To get to the bottom
of the problem, I had to make some changes to the logging framework.
This is the first patch in a sub-series dealing with logging.

This patch stops relying on the global logger. Subsequent patches will
make the logging output aid debugging.
2014-03-28 11:20:31 -07:00
Gregory Szorc
66a1b56284 Bug 989137 - Part 1: Uninstall unknown experiments; r=Unfocused
Before this patch, experiment add-ons may have existed in the Addons
Manager without the Experiments service knowing about them. This detects
these unknown add-ons and uninstalls them. See the in-line comment on
the rationale behind this decision.

The added unit test fails without the Experiments.jsm change.
2014-03-26 22:20:23 -07:00
Gregory Szorc
16c3bc64af Bug 985084 - Experiment add-ons should be disabled by default; r=Unfocused
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.
2014-03-21 16:05:29 -07:00
Gregory Szorc
eb640ba1d1 Backed out changeset 4834a3833639 and c580afddd1cb (bug 985084 and bug 97500) 2014-03-28 21:45:10 -07:00
Gregory Szorc
f0a35ed9b0 Bug 985084 - Experiment add-ons should be disabled by default; r=Unfocused
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.
2014-03-21 16:05:29 -07:00
Gregory Szorc
eb9bfbfbca Bug 975000 - Disable updating and compatibility checking for Experiments; r=Unfocused
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.
2014-03-28 20:17:04 +01:00
Georg Fritzsche
05042e7668 Bug 986040 - Telemetry experiments: Assure that no experiment addon is running yet before starting an experiment. r=Unfocused 2014-03-27 14:26:59 -07:00
Georg Fritzsche
4d4108e83e Bug 973992 - Telemetry experiments: Make the experiments code use the new experiments addon type. r=Unfocused 2014-03-27 14:25:04 -07:00
Georg Fritzsche
fa565ea435 Bug 986261 - Telemetry experiments unit tests hang when they fail. r=felipe 2014-03-27 14:55:36 +01:00
Georg Fritzsche
e87a4523ad Bug 983231 - Telemetry experiments: test manifest condition evaluation. r=felipe 2014-03-26 16:35:59 +01:00
Benjamin Smedberg
d01fde93a7 Bug 988710 - Task.spawn can launch synchronously, which leads to a race setting and clearing this._mainTask. Move that into the .then() clause of _run. Also fix up some logging and FHR issues, r=gfritzsche 2014-03-27 09:30:25 -04:00
Georg Fritzsche
a336a5bb08 Bug 987207 - Telemetry experiments - Assure proper saving & loading from the cache. r=felipe 2014-03-25 17:50:24 +01:00
Benjamin Smedberg
1ca53d56af Bug 987225 - Combine the various tasks in Experiments.jsm to a single serial task. r=gfritzsche (delegated from felipe). Also fixes:
* no need to pass an addon/experiment ID to .disableExperiment()
* fix multiple-logging when multiple Experiments() objects are created as in tests
* ensures that all dirty writes actually get written
2014-03-25 13:50:34 -04:00
Benjamin Smedberg
95b2b1a3a0 Bug 977708 - Annotate crash reports with the current experiment, r=felipe 2014-03-24 15:38:13 -04:00
Georg Fritzsche
08719d86dc Bug 983360 - Telemetry experiments: add monitoring data to Telemetry payload. r=bsmedberg 2014-03-24 09:58:57 +01:00
Georg Fritzsche
128f183671 Bug 985670 - Telemetry experiments: Decouple experiment and addon ids. r=felipe 2014-03-24 09:58:57 +01:00
Georg Fritzsche
48f8d0b008 Bug 985670 - Telemetry experiments: Don't schedule incorrect timer when there is no pending experiment. r=felipe 2014-03-24 09:58:57 +01:00
Georg Fritzsche
b203565edc Bug 984387 - Telemetry experiments: test coverage for disabling and removal of experiments via manifest. r=felipe 2014-03-24 09:58:56 +01:00
Gregory Szorc
49ac0afc11 Bug 974024 - Add FHR recording of Telemetry Experiments activity; r=bsmedberg 2014-03-20 14:16:00 -07:00
Benjamin Smedberg
6e6391b0b7 Bug 985682 - Experiment IDs aren't loaded correctly from the cache. Tests will be separate, r=gfritzsche 2014-03-20 11:19:19 -04:00
Benjamin Smedberg
18d2cd26d5 Bug 985089 - Allow QA to set a pref to control experiment sampling values, r=felipe 2014-03-20 11:19:19 -04:00
Gregory Szorc
c01e1dca86 Bug 973997 - Define and document Experiments Manifests; r=bsmedberg 2014-02-26 16:46:26 -08:00
Benjamin Smedberg
feb25d7dc1 Bug 984879 - Experiment manager shutdown, r=felipe 2014-03-18 22:52:30 +01:00
Georg Fritzsche
a0d9f076c3 Bug 984014 - Telemetry experiments - Test experiment update. r=felipe 2014-03-18 22:52:30 +01:00
Georg Fritzsche
61a6fabe2d Bug 979474 - Disable certificate checks for telemetry experiment checks. r=felipe 2014-03-18 22:52:30 +01:00