bug 1408433 - Remove toolkit.telemetry.enabled code from Experiments r?Dexter draft
authorChris H-C <chutten@mozilla.com>
Thu, 19 Oct 2017 16:10:06 -0400
changeset 686351 8757e974607e0dad08bf0b2cc004a42b585fe207
parent 686350 eb49765b711a4750ba6fca6c1b19b3b23e22dcbe
child 737365 0ae6ad2f447bd375d59fef221d6fe44a5bb33d2c
push id86174
push userbmo:chutten@mozilla.com
push dateWed, 25 Oct 2017 20:03:10 +0000
reviewersDexter
bugs1408433
milestone58.0a1
bug 1408433 - Remove toolkit.telemetry.enabled code from Experiments r?Dexter MozReview-Commit-ID: 1Kz7G2oJWO6
browser/experiments/Experiments.jsm
--- 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>,