--- a/browser/experiments/Experiments.jsm
+++ b/browser/experiments/Experiments.jsm
@@ -21,18 +21,16 @@ XPCOMUtils.defineLazyModuleGetter(this,
XPCOMUtils.defineLazyModuleGetter(this, "AddonManager",
"resource://gre/modules/AddonManager.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "AddonManagerPrivate",
"resource://gre/modules/AddonManager.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "TelemetryEnvironment",
"resource://gre/modules/TelemetryEnvironment.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "TelemetryLog",
"resource://gre/modules/TelemetryLog.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "TelemetryUtils",
- "resource://gre/modules/TelemetryUtils.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "CommonUtils",
"resource://services-common/utils.js");
XPCOMUtils.defineLazyServiceGetter(this, "gCrashReporter",
"@mozilla.org/xre/app-info;1",
"nsICrashReporter");
const FILE_CACHE = "experiments.json";
@@ -47,18 +45,16 @@ const PREF_BRANCH = "exper
const PREF_ENABLED = "enabled"; // experiments.enabled
const PREF_ACTIVE_EXPERIMENT = "activeExperiment"; // whether we have an active experiment
const PREF_LOGGING = "logging";
const PREF_LOGGING_LEVEL = PREF_LOGGING + ".level"; // experiments.logging.level
const PREF_LOGGING_DUMP = PREF_LOGGING + ".dump"; // experiments.logging.dump
const PREF_MANIFEST_URI = "manifest.uri"; // experiments.logging.manifest.uri
const PREF_FORCE_SAMPLE = "force-sample-value"; // experiments.force-sample-value
-const PREF_TELEMETRY_ENABLED = "toolkit.telemetry.enabled";
-
const URI_EXTENSION_STRINGS = "chrome://mozapps/locale/extensions/extensions.properties";
const CACHE_WRITE_RETRY_DELAY_SEC = 60 * 3;
const MANIFEST_FETCH_TIMEOUT_MSEC = 60 * 3 * 1000; // 3 minutes
const TELEMETRY_LOG = {
// log(key, [kind, experimentId, details])
ACTIVATION_KEY: "EXPERIMENT_ACTIVATION",
@@ -381,36 +377,32 @@ Experiments.Experiments.prototype = {
observe(subject, topic, data) {
switch (topic) {
case PREF_CHANGED_TOPIC:
if (data == PREF_BRANCH + PREF_MANIFEST_URI) {
this.updateManifest();
} else if (data == PREF_BRANCH + PREF_ENABLED) {
this._toggleExperimentsEnabled(gPrefs.getBoolPref(PREF_ENABLED, false));
- } else if (data == PREF_TELEMETRY_ENABLED) {
- this._telemetryStatusChanged();
}
break;
}
},
init() {
this._shutdown = false;
configureLogging();
- gExperimentsEnabled = gPrefs.getBoolPref(PREF_ENABLED, false) && TelemetryUtils.isTelemetryEnabled;
+ gExperimentsEnabled = gPrefs.getBoolPref(PREF_ENABLED, false) && Services.telemetry.canRecordExtended;
this._log.trace("enabled=" + gExperimentsEnabled + ", " + this.enabled);
Services.prefs.addObserver(PREF_BRANCH + PREF_LOGGING, configureLogging);
Services.prefs.addObserver(PREF_BRANCH + PREF_MANIFEST_URI, this, true);
Services.prefs.addObserver(PREF_BRANCH + PREF_ENABLED, this, true);
- Services.prefs.addObserver(PREF_TELEMETRY_ENABLED, this, true);
-
AddonManager.shutdown.addBlocker("Experiments.jsm shutdown",
this.uninit.bind(this),
this._getState.bind(this)
);
this._registerWithAddonManager();
this._loadTask = this._loadFromCache();
@@ -448,18 +440,16 @@ Experiments.Experiments.prototype = {
if (!this._shutdown) {
this._log.trace("uninit: no previous shutdown");
this._unregisterWithAddonManager();
Services.prefs.removeObserver(PREF_BRANCH + PREF_LOGGING, configureLogging);
Services.prefs.removeObserver(PREF_BRANCH + PREF_MANIFEST_URI, this);
Services.prefs.removeObserver(PREF_BRANCH + PREF_ENABLED, this);
- Services.prefs.removeObserver(PREF_TELEMETRY_ENABLED, this);
-
if (this._timer) {
this._timer.clear();
}
}
this._shutdown = true;
if (this._mainTask) {
if (this._networkRequest) {
@@ -593,36 +583,32 @@ Experiments.Experiments.prototype = {
set enabled(enabled) {
this._log.trace("set enabled(" + enabled + ")");
gPrefs.setBoolPref(PREF_ENABLED, enabled);
},
async _toggleExperimentsEnabled(enabled) {
this._log.trace("_toggleExperimentsEnabled(" + enabled + ")");
let wasEnabled = gExperimentsEnabled;
- gExperimentsEnabled = enabled && TelemetryUtils.isTelemetryEnabled;
+ gExperimentsEnabled = enabled && Services.telemetry.canRecordExtended;
if (wasEnabled == gExperimentsEnabled) {
return;
}
if (gExperimentsEnabled) {
await this.updateManifest();
} else {
await this.disableExperiment(TELEMETRY_LOG.TERMINATION.SERVICE_DISABLED);
if (this._timer) {
this._timer.clear();
}
}
},
- _telemetryStatusChanged() {
- this._toggleExperimentsEnabled(gPrefs.getBoolPref(PREF_ENABLED, false));
- },
-
/**
* Returns a promise that is resolved with an array of `ExperimentInfo` objects,
* which provide info on the currently and recently active experiments.
* The array is in chronological order.
*
* The experiment info is of the form:
* {
* id: <string>,