Bug 1249845 - Store the e10s rollout cohort in the telemetry environment. r=gfritzsche
MozReview-Commit-ID: BUPA7bEv8RC
--- a/toolkit/components/telemetry/TelemetryEnvironment.jsm
+++ b/toolkit/components/telemetry/TelemetryEnvironment.jsm
@@ -171,16 +171,17 @@ const PREF_DISTRIBUTION_VERSION = "distr
const PREF_DISTRIBUTOR = "app.distributor";
const PREF_DISTRIBUTOR_CHANNEL = "app.distributor.channel";
const PREF_HOTFIX_LASTVERSION = "extensions.hotfix.lastVersion";
const PREF_APP_PARTNER_BRANCH = "app.partner.";
const PREF_PARTNER_ID = "mozilla.partner.id";
const PREF_UPDATE_ENABLED = "app.update.enabled";
const PREF_UPDATE_AUTODOWNLOAD = "app.update.auto";
const PREF_SEARCH_COHORT = "browser.search.cohort";
+const PREF_E10S_COHORT = "e10s.rollout.cohort";
const EXPERIMENTS_CHANGED_TOPIC = "experiments-changed";
const SEARCH_ENGINE_MODIFIED_TOPIC = "browser-search-engine-modified";
const SEARCH_SERVICE_TOPIC = "browser-search-service";
const COMPOSITOR_CREATED_TOPIC = "compositor:created";
const DISTRIBUTION_CUSTOMIZATION_COMPLETE_TOPIC = "distribution-customization-complete";
/**
@@ -1105,16 +1106,17 @@ EnvironmentCache.prototype = {
let updateChannel = null;
try {
updateChannel = UpdateUtils.getUpdateChannel(false);
} catch (e) {}
this._currentEnvironment.settings = {
blocklistEnabled: Preferences.get(PREF_BLOCKLIST_ENABLED, true),
e10sEnabled: Services.appinfo.browserTabsRemoteAutostart,
+ e10sCohort: Preferences.get(PREF_E10S_COHORT, "unknown"),
telemetryEnabled: Utils.isTelemetryEnabled,
locale: getBrowserLocale(),
update: {
channel: updateChannel,
enabled: Preferences.get(PREF_UPDATE_ENABLED, true),
autoDownload: Preferences.get(PREF_UPDATE_AUTODOWNLOAD, true),
},
userPrefs: this._getPrefData(),
--- a/toolkit/components/telemetry/docs/environment.rst
+++ b/toolkit/components/telemetry/docs/environment.rst
@@ -38,16 +38,17 @@ Structure::
defaultSearchEngine: <string>, // e.g. "yahoo"
defaultSearchEngineData: {, // data about the current default engine
name: <string>, // engine name, e.g. "Yahoo"; or "NONE" if no default
loadPath: <string>, // where the engine line is located; missing if no default
submissionURL: <string> // missing if no default or for user-installed engines
},
searchCohort: <string>, // optional, contains an identifier for any active search A/B experiments
e10sEnabled: <bool>, // whether e10s is on, i.e. browser tabs open by default in a different process
+ e10sCohort: <string>, // which e10s cohort was assigned for this user
telemetryEnabled: <bool>, // false on failure
locale: <string>, // e.g. "it", null on failure
update: {
channel: <string>, // e.g. "release", null on failure
enabled: <bool>, // true on failure
autoDownload: <bool>, // true on failure
},
userPrefs: {
--- a/toolkit/components/telemetry/tests/unit/test_TelemetryEnvironment.js
+++ b/toolkit/components/telemetry/tests/unit/test_TelemetryEnvironment.js
@@ -336,16 +336,17 @@ function checkBuildSection(data) {
}
}
}
function checkSettingsSection(data) {
const EXPECTED_FIELDS_TYPES = {
blocklistEnabled: "boolean",
e10sEnabled: "boolean",
+ e10sCohort: "string",
telemetryEnabled: "boolean",
locale: "string",
update: "object",
userPrefs: "object",
};
Assert.ok("settings" in data, "There must be a settings section in Environment.");