From 185846064121b355c53d46a048f5bfc21ea07810 Mon Sep 17 00:00:00 2001 From: Nihanth Subramanya Date: Tue, 30 Jul 2019 19:58:40 +0000 Subject: [PATCH] Bug 1561012 - Don't register fxmonitor events if telemetry is disabled. r=johannh,robwu Differential Revision: https://phabricator.services.mozilla.com/D36812 --- .../extensions/fxmonitor/privileged/api.js | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/browser/extensions/fxmonitor/privileged/api.js b/browser/extensions/fxmonitor/privileged/api.js index 3ecbb5a33fc5..a23430c21554 100644 --- a/browser/extensions/fxmonitor/privileged/api.js +++ b/browser/extensions/fxmonitor/privileged/api.js @@ -73,8 +73,11 @@ this.FirefoxMonitor = { kEnabledPref: "extensions.fxmonitor.enabled", + // This is here for documentation, will be redefined to a pref getter + // using XPCOMUtils.defineLazyPreferenceGetter in delayedInit(). // Telemetry event recording is enabled by default. // If this pref exists and is true-y, it's disabled. + telemetryDisabled: null, kTelemetryDisabledPref: "extensions.fxmonitor.telemetryDisabled", kNotificationID: "fxmonitor", @@ -197,9 +200,6 @@ this.FirefoxMonitor = { }, }); - let telemetryEnabled = !Preferences.get(this.kTelemetryDisabledPref); - Services.telemetry.setEventRecordingEnabled("fxmonitor", telemetryEnabled); - XPCOMUtils.defineLazyPreferenceGetter( this, "FirefoxMonitorURL", @@ -214,6 +214,13 @@ this.FirefoxMonitor = { false ); + XPCOMUtils.defineLazyPreferenceGetter( + this, + "telemetryDisabled", + this.kTelemetryDisabledPref, + false + ); + await this.loadStrings(); await this.loadBreaches(); }, @@ -528,11 +535,7 @@ this.FirefoxMonitor = { browser ) ); - Services.telemetry.recordEvent( - "fxmonitor", - "interaction", - "doorhanger_removed" - ); + this.recordEvent("doorhanger_removed"); break; } }; @@ -552,14 +555,18 @@ this.FirefoxMonitor = { } ); - Services.telemetry.recordEvent( - "fxmonitor", - "interaction", - "doorhanger_shown" - ); + this.recordEvent("doorhanger_shown"); this.notificationsByWindow.get(win).add(n); }, + + recordEvent(aEventName) { + if (this.telemetryDisabled) { + return; + } + + Services.telemetry.recordEvent("fxmonitor", "interaction", aEventName); + }, }; function PanelUI(doc) { @@ -619,7 +626,7 @@ PanelUI.prototype = { {} ); - Services.telemetry.recordEvent("fxmonitor", "interaction", "check_btn"); + FirefoxMonitor.recordEvent("check_btn"); }, }); }, @@ -633,11 +640,7 @@ PanelUI.prototype = { label: this.getString("fxmonitor.dismissButton.label"), accessKey: this.getString("fxmonitor.dismissButton.accessKey"), callback: () => { - Services.telemetry.recordEvent( - "fxmonitor", - "interaction", - "dismiss_btn" - ); + FirefoxMonitor.recordEvent("dismiss_btn"); }, }, { @@ -647,11 +650,7 @@ PanelUI.prototype = { accessKey: this.getString("fxmonitor.neverShowButton.accessKey"), callback: () => { FirefoxMonitor.disable(); - Services.telemetry.recordEvent( - "fxmonitor", - "interaction", - "never_show_btn" - ); + FirefoxMonitor.recordEvent("never_show_btn"); }, }, ]);