Bug 1228090 - Update traacking protection telemetry histogram to represent user setting. r=mfinkle
--- a/mobile/android/chrome/content/browser.js
+++ b/mobile/android/chrome/content/browser.js
@@ -598,20 +598,17 @@ var BrowserApp = {
InitLater(() => Cu.import("resource://gre/modules/NotificationDB.jsm"));
InitLater(() => Cu.import("resource://gre/modules/Payment.jsm"));
InitLater(() => Services.obs.notifyObservers(window, "browser-delayed-startup-finished", ""));
InitLater(() => Messaging.sendRequest({ type: "Gecko:DelayedStartup" }));
if (AppConstants.NIGHTLY_BUILD) {
InitLater(() => ShumwayUtils.init(), window, "ShumwayUtils");
- InitLater(() => Telemetry.addData("TRACKING_PROTECTION_ENABLED",
- Services.prefs.getBoolPref("privacy.trackingprotection.enabled")));
- InitLater(() => Telemetry.addData("TRACKING_PROTECTION_PBM_DISABLED",
- !Services.prefs.getBoolPref("privacy.trackingprotection.pbmode.enabled")));
+ InitLater(() => Telemetry.addData("FENNEC_TRACKING_PROTECTION_STATE", parseInt(BrowserApp.getTrackingProtectionState())));
InitLater(() => WebcompatReporter.init());
}
InitLater(() => LightWeightThemeWebInstaller.init());
InitLater(() => SpatialNavigation.init(BrowserApp.deck, null), window, "SpatialNavigation");
InitLater(() => CastingApps.init(), window, "CastingApps");
InitLater(() => Services.search.init(), Services, "search");
InitLater(() => DownloadNotifications.init(), window, "DownloadNotifications");
@@ -1452,16 +1449,30 @@ var BrowserApp = {
}, this);
},
// These values come from pref_tracking_protection_entries in arrays.xml.
PREF_TRACKING_PROTECTION_ENABLED: "2",
PREF_TRACKING_PROTECTION_ENABLED_PB: "1",
PREF_TRACKING_PROTECTION_DISABLED: "0",
+ /**
+ * Returns the current state of the tracking protection pref.
+ * (0 = Disabled, 1 = Enabled in PB, 2 = Enabled)
+ */
+ getTrackingProtectionState: function() {
+ if (Services.prefs.getBoolPref("privacy.trackingprotection.enabled")) {
+ return this.PREF_TRACKING_PROTECTION_ENABLED;
+ }
+ if (Services.prefs.getBoolPref("privacy.trackingprotection.pbmode.enabled")) {
+ return this.PREF_TRACKING_PROTECTION_ENABLED_PB;
+ }
+ return this.PREF_TRACKING_PROTECTION_DISABLED;
+ },
+
handlePreferencesRequest: function handlePreferencesRequest(aRequestId,
aPrefNames,
aListen) {
let prefs = [];
for (let prefName of aPrefNames) {
let pref = {
@@ -1492,23 +1503,17 @@ var BrowserApp = {
// Handle master password
case "privacy.masterpassword.enabled":
pref.type = "bool";
pref.value = MasterPassword.enabled;
prefs.push(pref);
continue;
case "privacy.trackingprotection.state": {
pref.type = "string";
- if (Services.prefs.getBoolPref("privacy.trackingprotection.enabled")) {
- pref.value = this.PREF_TRACKING_PROTECTION_ENABLED;
- } else if (Services.prefs.getBoolPref("privacy.trackingprotection.pbmode.enabled")) {
- pref.value = this.PREF_TRACKING_PROTECTION_ENABLED_PB;
- } else {
- pref.value = this.PREF_TRACKING_PROTECTION_DISABLED;
- }
+ pref.value = this.getTrackingProtectionState();
prefs.push(pref);
continue;
}
// Crash reporter submit pref must be fetched from nsICrashReporter service.
case "datareporting.crashreporter.submitEnabled":
let crashReporterBuilt = "nsICrashReporter" in Ci && Services.appinfo instanceof Ci.nsICrashReporter;
if (crashReporterBuilt) {
pref.type = "bool";
--- a/toolkit/components/telemetry/Histograms.json
+++ b/toolkit/components/telemetry/Histograms.json
@@ -8467,16 +8467,24 @@
"kind": "boolean",
"description": "Whether or not a session has tracking protection enabled"
},
"TRACKING_PROTECTION_PBM_DISABLED": {
"expires_in_version": "60",
"kind": "boolean",
"description": "Is the tracking protection in private browsing mode disabled?"
},
+ "FENNEC_TRACKING_PROTECTION_STATE": {
+ "expires_in_version": "60",
+ "kind": "enumerated",
+ "n_values": 5,
+ "description": "The state of the user-visible tracking protection setting (0 = Disabled, 1 = Enabled in PB, 2 = Enabled)",
+ "alert_emails": ["mleibovic@mozilla.com"],
+ "bug_numbers": [1228090]
+ },
"TRACKING_PROTECTION_SHIELD": {
"expires_in_version": "never",
"kind": "enumerated",
"n_values": 4,
"description": "Tracking protection shield (0 = not shown, 1 = loaded, 2 = blocked)"
},
"TRACKING_PROTECTION_EVENTS": {
"expires_in_version": "never",