[tor-commits] [tor-browser] 22/311: Bug 1745026 - Part 3: Update telemetries for Firefox suggest onboarding dialog. r=adw, a=dsmith

gitolite role git at cupani.torproject.org
Tue Apr 26 15:27:02 UTC 2022


This is an automated email from the git hooks/post-receive script.

pierov pushed a commit to branch geckoview-99.0.1-11.0-1
in repository tor-browser.

commit c6faa95054a0f309f2b15fa3c1be2a9c203311a9
Author: Daisuke Akatsuka <daisuke at birchill.co.jp>
AuthorDate: Fri Jan 7 21:33:04 2022 +0000

    Bug 1745026 - Part 3: Update telemetries for Firefox suggest onboarding dialog. r=adw, a=dsmith
    
    Differential Revision: https://phabricator.services.mozilla.com/D134374
---
 browser/components/urlbar/UrlbarPrefs.jsm          |  2 +-
 browser/components/urlbar/UrlbarQuickSuggest.jsm   | 68 ++++++-------------
 .../urlbar/content/quicksuggestOnboarding.js       | 11 ++--
 .../urlbar/docs/firefox-suggest-telemetry.rst      | 77 +++++++++++++++++-----
 .../browser_quicksuggest_onboardingDialog.js       | 68 ++++++++++---------
 toolkit/components/telemetry/Events.yaml           | 22 +++----
 .../components/telemetry/docs/data/environment.rst |  2 +-
 7 files changed, 138 insertions(+), 112 deletions(-)

diff --git a/browser/components/urlbar/UrlbarPrefs.jsm b/browser/components/urlbar/UrlbarPrefs.jsm
index 93fbb4f9cc297..130ebe267d975 100644
--- a/browser/components/urlbar/UrlbarPrefs.jsm
+++ b/browser/components/urlbar/UrlbarPrefs.jsm
@@ -248,7 +248,7 @@ const PREF_URLBAR_DEFAULTS = new Map([
   ["quicksuggest.dataCollection.enabled", false],
 
   // The version of dialog user saw.
-  ["quicksuggest.onboardingDialogVersion", 0],
+  ["quicksuggest.onboardingDialogVersion", ""],
 
   // Whether to show the quick suggest onboarding dialog.
   ["quicksuggest.shouldShowOnboardingDialog", true],
diff --git a/browser/components/urlbar/UrlbarQuickSuggest.jsm b/browser/components/urlbar/UrlbarQuickSuggest.jsm
index 0d448653563f7..c707262c73227 100644
--- a/browser/components/urlbar/UrlbarQuickSuggest.jsm
+++ b/browser/components/urlbar/UrlbarQuickSuggest.jsm
@@ -46,12 +46,13 @@ const DIALOG_VARIATION_PREF = "quickSuggestOnboardingDialogVariation";
 // Values returned by the onboarding dialog depending on the user's response.
 // These values are used in telemetry events, so be careful about changing them.
 const ONBOARDING_CHOICE = {
-  ACCEPT: "accept",
-  REJECT: "reject",
-  DISMISSED_ESCAPE_KEY: "dismissed_escape_key",
-  DISMISSED_OTHER: "dismissed_other",
-  LEARN_MORE: "learn_more",
-  NOT_NOW: "not_now_link",
+  ACCEPT_2: "accept_2",
+  CLOSE_1: "close_1",
+  DISMISS_1: "dismiss_1",
+  DISMISS_2: "dismiss_2",
+  LEARN_MORE_2: "learn_more_2",
+  NOT_NOW_2: "not_now_2",
+  REJECT_2: "reject_2",
 };
 
 const ONBOARDING_URI =
@@ -233,70 +234,43 @@ class Suggestions {
 
     let win = BrowserWindowTracker.getTopWindow();
 
-    // Set up a key listener so we can tell when the dialog is dismissed with
-    // the Escape key. There are a few reasons this is so complicated:
-    //
-    // (1) Key events are not dispatched to the dialog content when the focus is
-    //     not in the dialog. The focus is in the dialog initially, but all it
-    //     takes to move out of the dialog is for the user to click outside it,
-    //     as they might when they're trying to dismiss it. Therefore we add our
-    //     key listener here, to the browser window.
-    // (2) `keypress` is not dispatched to the browser window when the focus is
-    //     inside the dialog but `keydown` is, so we listen for `keydown`.
-    // (3) Our dialog will be queued and deferred if other dialogs are currently
-    //     shown, so don't assume the first Escape key is related to ours.
-    let escapeKeyPressed = false;
-    let keyListener = keyEvent => {
-      if (
-        keyEvent.keyCode == keyEvent.DOM_VK_ESCAPE &&
-        win.gDialogBox.dialog?.frameContentWindow?.document?.documentURI ==
-          ONBOARDING_URI
-      ) {
-        escapeKeyPressed = true;
-      }
-    };
-    win.addEventListener("keydown", keyListener, true);
-
     let variationType;
     try {
       // An error happens if the pref is not in user prefs.
       variationType = UrlbarPrefs.get(DIALOG_VARIATION_PREF).toLowerCase();
     } catch (e) {}
 
-    let params = { choice: undefined, variationType };
+    let params = { choice: undefined, variationType, visitedMain: false };
     await win.gDialogBox.open(ONBOARDING_URI, params);
 
-    win.removeEventListener("keydown", keyListener, true);
-
     UrlbarPrefs.set(SEEN_DIALOG_PREF, true);
-    UrlbarPrefs.set(DIALOG_VERSION_PREF, 1);
+    UrlbarPrefs.set(
+      DIALOG_VERSION_PREF,
+      JSON.stringify({ version: 1, variation: variationType })
+    );
 
     // Record the user's opt-in choice on the user branch. This pref is sticky,
     // so it will retain its user-branch value regardless of what the particular
     // default was at the time.
-    let optedIn = params.choice == ONBOARDING_CHOICE.ACCEPT;
+    let optedIn = params.choice == ONBOARDING_CHOICE.ACCEPT_2;
     UrlbarPrefs.set("quicksuggest.dataCollection.enabled", optedIn);
 
     switch (params.choice) {
-      case ONBOARDING_CHOICE.LEARN_MORE:
+      case ONBOARDING_CHOICE.LEARN_MORE_2:
         win.openTrustedLinkIn(UrlbarProviderQuickSuggest.helpUrl, "tab", {
           fromChrome: true,
         });
         break;
-      case ONBOARDING_CHOICE.ACCEPT:
-      case ONBOARDING_CHOICE.REJECT:
-      case ONBOARDING_CHOICE.NOT_NOW:
+      case ONBOARDING_CHOICE.ACCEPT_2:
+      case ONBOARDING_CHOICE.REJECT_2:
+      case ONBOARDING_CHOICE.NOT_NOW_2:
+      case ONBOARDING_CHOICE.CLOSE_1:
         // No other action required.
         break;
       default:
-        if (escapeKeyPressed) {
-          params.choice = ONBOARDING_CHOICE.DISMISSED_ESCAPE_KEY;
-          break;
-        }
-        // Catch-all for other cases. Typically this should not happen, but one
-        // case where it does is when the dialog is replaced by another higher
-        // priority dialog like the one that's shown when quitting the app.
-        params.choice = ONBOARDING_CHOICE.DISMISSED_OTHER;
+        params.choice = params.visitedMain
+          ? ONBOARDING_CHOICE.DISMISS_2
+          : ONBOARDING_CHOICE.DISMISS_1;
         break;
     }
 
diff --git a/browser/components/urlbar/content/quicksuggestOnboarding.js b/browser/components/urlbar/content/quicksuggestOnboarding.js
index 2e5d9973910f9..09bc1ef985fa9 100644
--- a/browser/components/urlbar/content/quicksuggestOnboarding.js
+++ b/browser/components/urlbar/content/quicksuggestOnboarding.js
@@ -147,13 +147,14 @@ document.addEventListener("DOMContentLoaded", async () => {
   addSubmitListener(document.getElementById("onboardingNext"), () => {
     document.getElementById("introduction-section").classList.add("inactive");
     document.getElementById("main-section").classList.add("active");
+    window.arguments[0].visitedMain = true;
   });
   addSubmitListener(document.getElementById("onboardingLearnMore"), () => {
-    window.arguments[0].choice = ONBOARDING_CHOICE.LEARN_MORE;
+    window.arguments[0].choice = ONBOARDING_CHOICE.LEARN_MORE_2;
     window.close();
   });
   addSubmitListener(document.getElementById("onboardingSkipLink"), () => {
-    window.arguments[0].choice = ONBOARDING_CHOICE.NOT_NOW;
+    window.arguments[0].choice = ONBOARDING_CHOICE.NOT_NOW_2;
     window.close();
   });
 
@@ -178,8 +179,8 @@ document.addEventListener("DOMContentLoaded", async () => {
     }
 
     window.arguments[0].choice = onboardingAccept.checked
-      ? ONBOARDING_CHOICE.ACCEPT
-      : ONBOARDING_CHOICE.REJECT;
+      ? ONBOARDING_CHOICE.ACCEPT_2
+      : ONBOARDING_CHOICE.REJECT_2;
     window.close();
   }
   addSubmitListener(onboardingSubmit, submitListener);
@@ -206,7 +207,7 @@ async function applyVariation(variation) {
     const onboardingClose = document.getElementById("onboardingClose");
     onboardingClose.classList.add("active");
     addSubmitListener(onboardingClose, () => {
-      window.arguments[0].choice = ONBOARDING_CHOICE.NOT_NOW;
+      window.arguments[0].choice = ONBOARDING_CHOICE.CLOSE_1;
       window.close();
     });
   }
diff --git a/browser/components/urlbar/docs/firefox-suggest-telemetry.rst b/browser/components/urlbar/docs/firefox-suggest-telemetry.rst
index 609bea662f866..356f60099bce2 100644
--- a/browser/components/urlbar/docs/firefox-suggest-telemetry.rst
+++ b/browser/components/urlbar/docs/firefox-suggest-telemetry.rst
@@ -210,26 +210,46 @@ This event is recorded when the user interacts with the online modal dialog.
 The event's objects are the following:
 
 :accept:
+  The user accepted the dialog and opted in. This object was removed in Firefox
+  96.0.1.
+:accept_2:
   The user accepted the dialog and opted in.
-:reject:
-  The user rejected the dialog and opted out.
+:close_1:
+  The user clicked close button or something similar link on introduction
+  section. The user remains opted out in this case.
+:dismiss_1:
+  The user dismissed the dialog by pressing the Escape key or some unknown way
+  on introduction section. The user remains opted out in this case.
+:dismiss_2:
+  The user dismissed the dialog by pressing the Escape key or some unknown way
+  on main section. The user remains opted out in this case.
 :dismissed_escape_key:
   The user dismissed the dialog by pressing the Escape key. The user remains
-  opted out in this case.
+  opted out in this case. This object was removed in Firefox 96.0.1.
 :dismissed_other:
   The dialog was dismissed in some unknown way. One case where this can happen
   is when the dialog is replaced with another higher priority dialog like the
   one shown when quitting the app. The user remains opted out in this case.
+  This object was removed in Firefox 96.0.1.
 :learn_more:
+  The user clicked "Learn more". The user remains opted out in this case. This
+  object was removed in Firefox 96.0.1.
+:learn_more_2:
   The user clicked "Learn more". The user remains opted out in this case.
-:not_now_link:
-  The user clicked "Not now". The user remains opted out in this case.
 :not_now:
   The dialog was dismissed in some way without opting in. This object was
   removed in Firefox 94.0.
+:not_now_2:
+  The user clicked "Not now" link on main section. The user remains opted out in
+  this case.
+:not_now_link:
+  The user clicked "Not now". The user remains opted out in this case. This
+  object was removed in Firefox 96.0.1.
+:reject_2:
+  The user rejected the dialog and opted out.
 :settings:
   The user clicked the "Customize" button. The user remains opted out in this
-  case. This object was removed in Firefox 96.0.
+  case. This object was removed in Firefox 96.0.1.
 
 Changelog
   Firefox 92.0.1
@@ -242,9 +262,9 @@ Changelog
     ``dismissed_other``, ``learn_more``, ``not_now_link``, and ``settings``.
     [Bug 1733687_]
 
-  Firefox 96.0
-    Objects changed to: ``accept``, ``reject``, ``dismissed_escape_key``,
-    ``dismissed_other``, ``learn_more`` and ``not_now_link``.
+  Firefox 96.0.1
+    Objects changed to: ``accept_2``, ``reject_2``, ``learn_more_2``,
+    ``close_1``, ``not_now_2``, ``dismiss_1`` and ``dismiss_2``.
     [Bug 1745026_]
 
 .. _1723860: https://bugzilla.mozilla.org/show_bug.cgi?id=1723860
@@ -297,30 +317,53 @@ string-valued pref with the following possible values:
 :<empty string>:
   The user has not made a choice (e.g., because the dialog hasn't been shown).
 :accept:
+  The user accepted the dialog and opted in. This object was removed in Firefox
+  96.0.1.
+:accept_2:
   The user accepted the dialog and opted in.
-:reject:
-  The user rejected the dialog and opted out.
+:close_1:
+  The user clicked close button or something similar link on introduction
+  section. The user remains opted out in this case.
+:dismiss_1:
+  The user dismissed the dialog by pressing the Escape key or some unknown way
+  on introduction section. The user remains opted out in this case.
+:dismiss_2:
+  The user dismissed the dialog by pressing the Escape key or some unknown way
+  on main section. The user remains opted out in this case.
 :dismissed_escape_key:
   The user dismissed the dialog by pressing the Escape key. The user remains
-  opted out in this case.
+  opted out in this case. This object was removed in Firefox 96.0.1.
 :dismissed_other:
   The dialog was dismissed in some unknown way. One case where this can happen
   is when the dialog is replaced with another higher priority dialog like the
-  one shown when quitting the app. The user remains opted out in this case.
+  one shown when quitting the app. The user remains opted out in this case. This
+  object was removed in Firefox 96.0.1.
 :learn_more:
+  The user clicked "Learn more". The user remains opted out in this case. This
+  object was removed in Firefox 96.0.1.
+:learn_more_2:
   The user clicked "Learn more". The user remains opted out in this case.
+:not_now_2:
+  The user clicked "Not now" link on main section. The user remains opted out in
+  this case.
 :not_now_link:
-  The user clicked "Not now". The user remains opted out in this case.
+  The user clicked "Not now". The user remains opted out in this case. This
+  object was removed in Firefox 96.0.1.
+:reject_2:
+  The user rejected the dialog and opted out.
 :settings:
   The user clicked the "Customize" button. The user remains opted out in this
-  case. This object was removed in Firefox 96.0.
+  case. This object was removed in Firefox 96.0.1.
 
 Changelog
   Firefox 94.0
     Introduced. [Bug 1734447_]
 
-  Firefox 96.0
-    Added ``reject`` and removed ``settings``. [Bug 1745026_]
+  Firefox 96.0.1
+    Added ``accept_2``, ``reject_2``, ``learn_more_2``, ``close_1``,
+    ``not_now_2``, ``dismiss_1``, ``dismiss_2`` and removed ``accept``,
+    ``dismissed_escape_key``, ``dismissed_other``, ``learn_more``,
+    ``not_now_link``, ``settings``. [Bug 1745026_]
 
 .. _1734447: https://bugzilla.mozilla.org/show_bug.cgi?id=1734447
 .. _1745026: https://bugzilla.mozilla.org/show_bug.cgi?id=1745026
diff --git a/browser/components/urlbar/tests/quicksuggest/browser/browser_quicksuggest_onboardingDialog.js b/browser/components/urlbar/tests/quicksuggest/browser/browser_quicksuggest_onboardingDialog.js
index 7f6ef584bebe5..0598a192b4f1d 100644
--- a/browser/components/urlbar/tests/quicksuggest/browser/browser_quicksuggest_onboardingDialog.js
+++ b/browser/components/urlbar/tests/quicksuggest/browser/browser_quicksuggest_onboardingDialog.js
@@ -103,8 +103,9 @@ add_task(async function accept() {
       );
       Assert.equal(gBrowser.tabs.length, tabCount, "No news tabs were opened");
     },
-    onboardingDialogChoice: "accept",
+    onboardingDialogChoice: "accept_2",
     expectedUserBranchPrefs: {
+      "quicksuggest.onboardingDialogVersion": JSON.stringify({ version: 1 }),
       "quicksuggest.dataCollection.enabled": true,
     },
     telemetryEvents: [
@@ -116,7 +117,7 @@ add_task(async function accept() {
       {
         category: QuickSuggestTestUtils.TELEMETRY_EVENT_CATEGORY,
         method: "opt_in_dialog",
-        object: "accept",
+        object: "accept_2",
       },
     ],
   });
@@ -149,7 +150,7 @@ add_task(async function reject() {
       );
       Assert.equal(gBrowser.tabs.length, tabCount, "No news tabs were opened");
     },
-    onboardingDialogChoice: "reject",
+    onboardingDialogChoice: "reject_2",
     expectedUserBranchPrefs: {
       "quicksuggest.dataCollection.enabled": false,
     },
@@ -162,7 +163,7 @@ add_task(async function reject() {
       {
         category: QuickSuggestTestUtils.TELEMETRY_EVENT_CATEGORY,
         method: "opt_in_dialog",
-        object: "reject",
+        object: "reject_2",
       },
     ],
   });
@@ -192,7 +193,7 @@ add_task(async function skip() {
       );
       Assert.equal(gBrowser.tabs.length, tabCount, "No news tabs were opened");
     },
-    onboardingDialogChoice: "not_now_link",
+    onboardingDialogChoice: "not_now_2",
     expectedUserBranchPrefs: {
       "quicksuggest.dataCollection.enabled": false,
     },
@@ -205,7 +206,7 @@ add_task(async function skip() {
       {
         category: QuickSuggestTestUtils.TELEMETRY_EVENT_CATEGORY,
         method: "opt_in_dialog",
-        object: "not_now_link",
+        object: "not_now_2",
       },
     ],
   });
@@ -246,7 +247,7 @@ add_task(async function learnMore() {
       );
       BrowserTestUtils.removeTab(tab);
     },
-    onboardingDialogChoice: "learn_more",
+    onboardingDialogChoice: "learn_more_2",
     expectedUserBranchPrefs: {
       "quicksuggest.dataCollection.enabled": false,
     },
@@ -259,7 +260,7 @@ add_task(async function learnMore() {
       {
         category: QuickSuggestTestUtils.TELEMETRY_EVENT_CATEGORY,
         method: "opt_in_dialog",
-        object: "learn_more",
+        object: "learn_more_2",
       },
     ],
   });
@@ -277,6 +278,7 @@ add_task(async function escKey_focusInsideDialog() {
         document.activeElement.classList.contains("dialogFrame"),
         "dialogFrame is focused in the browser window"
       );
+
       EventUtils.synthesizeKey("KEY_Escape");
       Assert.equal(
         gBrowser.currentURI.spec,
@@ -285,7 +287,7 @@ add_task(async function escKey_focusInsideDialog() {
       );
       Assert.equal(gBrowser.tabs.length, tabCount, "No news tabs were opened");
     },
-    onboardingDialogChoice: "dismissed_escape_key",
+    onboardingDialogChoice: "dismiss_2",
     expectedUserBranchPrefs: {
       "quicksuggest.dataCollection.enabled": false,
     },
@@ -298,7 +300,7 @@ add_task(async function escKey_focusInsideDialog() {
       {
         category: QuickSuggestTestUtils.TELEMETRY_EVENT_CATEGORY,
         method: "opt_in_dialog",
-        object: "dismissed_escape_key",
+        object: "dismiss_2",
       },
     ],
   });
@@ -318,7 +320,7 @@ add_task(async function escKey_focusOutsideDialog() {
       );
       EventUtils.synthesizeKey("KEY_Escape");
     },
-    onboardingDialogChoice: "dismissed_escape_key",
+    onboardingDialogChoice: "dismiss_2",
     expectedUserBranchPrefs: {
       "quicksuggest.dataCollection.enabled": false,
     },
@@ -331,7 +333,7 @@ add_task(async function escKey_focusOutsideDialog() {
       {
         category: QuickSuggestTestUtils.TELEMETRY_EVENT_CATEGORY,
         method: "opt_in_dialog",
-        object: "dismissed_escape_key",
+        object: "dismiss_2",
       },
     ],
   });
@@ -385,7 +387,7 @@ async function doQueuedEscKeyTest(otherDialogKey) {
       EventUtils.synthesizeKey("KEY_Escape");
       await onboardingClosedPromise;
     },
-    onboardingDialogChoice: "dismissed_escape_key",
+    onboardingDialogChoice: "dismiss_1",
     expectedUserBranchPrefs: {
       "quicksuggest.dataCollection.enabled": false,
     },
@@ -398,7 +400,7 @@ async function doQueuedEscKeyTest(otherDialogKey) {
       {
         category: QuickSuggestTestUtils.TELEMETRY_EVENT_CATEGORY,
         method: "opt_in_dialog",
-        object: "dismissed_escape_key",
+        object: "dismiss_1",
       },
     ],
   });
@@ -424,7 +426,7 @@ add_task(async function dismissed_other_on_introduction() {
       gDialogBox._dialog.close();
       await maybeShowPromise;
     },
-    onboardingDialogChoice: "dismissed_other",
+    onboardingDialogChoice: "dismiss_1",
     expectedUserBranchPrefs: {
       "quicksuggest.dataCollection.enabled": false,
     },
@@ -437,7 +439,7 @@ add_task(async function dismissed_other_on_introduction() {
       {
         category: QuickSuggestTestUtils.TELEMETRY_EVENT_CATEGORY,
         method: "opt_in_dialog",
-        object: "dismissed_other",
+        object: "dismiss_1",
       },
     ],
   });
@@ -564,7 +566,7 @@ add_task(async function focus_accept() {
       info("Enter to submit");
       EventUtils.synthesizeKey("KEY_Enter");
     },
-    onboardingDialogChoice: "accept",
+    onboardingDialogChoice: "accept_2",
     expectedUserBranchPrefs: {
       "quicksuggest.dataCollection.enabled": true,
     },
@@ -577,7 +579,7 @@ add_task(async function focus_accept() {
       {
         category: QuickSuggestTestUtils.TELEMETRY_EVENT_CATEGORY,
         method: "opt_in_dialog",
-        object: "accept",
+        object: "accept_2",
       },
     ],
   });
@@ -612,7 +614,7 @@ add_task(async function focus_learnMore() {
       );
       BrowserTestUtils.removeTab(tab);
     },
-    onboardingDialogChoice: "learn_more",
+    onboardingDialogChoice: "learn_more_2",
     expectedUserBranchPrefs: {
       "quicksuggest.dataCollection.enabled": false,
     },
@@ -625,7 +627,7 @@ add_task(async function focus_learnMore() {
       {
         category: QuickSuggestTestUtils.TELEMETRY_EVENT_CATEGORY,
         method: "opt_in_dialog",
-        object: "learn_more",
+        object: "learn_more_2",
       },
     ],
   });
@@ -645,7 +647,7 @@ add_task(async function focus_reject() {
       info("Enter to submit");
       EventUtils.synthesizeKey("KEY_Enter");
     },
-    onboardingDialogChoice: "reject",
+    onboardingDialogChoice: "reject_2",
     expectedUserBranchPrefs: {
       "quicksuggest.dataCollection.enabled": false,
     },
@@ -658,7 +660,7 @@ add_task(async function focus_reject() {
       {
         category: QuickSuggestTestUtils.TELEMETRY_EVENT_CATEGORY,
         method: "opt_in_dialog",
-        object: "reject",
+        object: "reject_2",
       },
     ],
   });
@@ -681,7 +683,7 @@ add_task(async function focus_skip() {
       );
       Assert.equal(gBrowser.tabs.length, tabCount, "No news tabs were opened");
     },
-    onboardingDialogChoice: "not_now_link",
+    onboardingDialogChoice: "not_now_2",
     expectedUserBranchPrefs: {
       "quicksuggest.dataCollection.enabled": false,
     },
@@ -694,7 +696,7 @@ add_task(async function focus_skip() {
       {
         category: QuickSuggestTestUtils.TELEMETRY_EVENT_CATEGORY,
         method: "opt_in_dialog",
-        object: "not_now_link",
+        object: "not_now_2",
       },
     ],
   });
@@ -711,7 +713,7 @@ add_task(async function focus_accept_wraparound() {
       EventUtils.synthesizeKey(" ");
       EventUtils.synthesizeKey("KEY_Enter");
     },
-    onboardingDialogChoice: "accept",
+    onboardingDialogChoice: "accept_2",
     expectedUserBranchPrefs: {
       "quicksuggest.dataCollection.enabled": true,
     },
@@ -724,7 +726,7 @@ add_task(async function focus_accept_wraparound() {
       {
         category: QuickSuggestTestUtils.TELEMETRY_EVENT_CATEGORY,
         method: "opt_in_dialog",
-        object: "accept",
+        object: "accept_2",
       },
     ],
   });
@@ -826,7 +828,7 @@ add_task(async function close_button_on_introduction_pane() {
           info("Waiting for maybeShowOnboardingDialog to finish");
           await maybeShowPromise;
         },
-        onboardingDialogChoice: "not_now_link",
+        onboardingDialogChoice: "close_1",
         expectedUserBranchPrefs: {
           "quicksuggest.dataCollection.enabled": false,
         },
@@ -839,7 +841,7 @@ add_task(async function close_button_on_introduction_pane() {
           {
             category: QuickSuggestTestUtils.TELEMETRY_EVENT_CATEGORY,
             method: "opt_in_dialog",
-            object: "not_now_link",
+            object: "close_1",
           },
         ],
       });
@@ -1261,6 +1263,12 @@ async function doVariationTest({
 
       EventUtils.synthesizeKey("KEY_Escape");
       await maybeShowPromise;
+
+      info("Check the version and variation pref");
+      Assert.equal(
+        UrlbarPrefs.get("quicksuggest.onboardingDialogVersion"),
+        JSON.stringify({ version: 1, variation: variation.toLowerCase() })
+      );
     },
   });
 }
@@ -1363,7 +1371,7 @@ async function canTabMoveFocus() {
       EventUtils.synthesizeKey("KEY_Escape");
       await maybeShowPromise;
     },
-    onboardingDialogChoice: "dismissed_escape_key",
+    onboardingDialogChoice: "dismiss_2",
     expectedUserBranchPrefs: {
       "quicksuggest.dataCollection.enabled": false,
     },
@@ -1376,7 +1384,7 @@ async function canTabMoveFocus() {
       {
         category: QuickSuggestTestUtils.TELEMETRY_EVENT_CATEGORY,
         method: "opt_in_dialog",
-        object: "dismissed_escape_key",
+        object: "dismiss_2",
       },
     ],
   });
diff --git a/toolkit/components/telemetry/Events.yaml b/toolkit/components/telemetry/Events.yaml
index fc41f653b08e0..b492b5f18d4e0 100644
--- a/toolkit/components/telemetry/Events.yaml
+++ b/toolkit/components/telemetry/Events.yaml
@@ -3001,23 +3001,23 @@ contextservices.quicksuggest:
       - adw at mozilla.com
     expiry_version: never
   opt_in_dialog:
-    objects: ["accept", "reject", "dismissed_escape_key", "dismissed_other", "learn_more", "not_now_link"]
+    objects: ["accept_2", "reject_2", "learn_more_2", "close_1", "not_now_2", "dismiss_1", "dismiss_2"]
     release_channel_collection: opt-out
     products:
       - "firefox"
     record_in_processes: ["main"]
     description: >
       This is recorded when the user responds to the Firefox Suggest opt-in
-      onboarding dialog. 'accept' is recorded when the user accepts the dialog
-      and opts in, 'settings' is recorded when the user rejects the dialog and
-      opts out, 'learn_more' is recorded when the user clicks "Learn more" (the
-      user remains opted out), 'not_now_link' is recorded when the user clicks
-      "Not now" (the user remains opted out), 'dismissed_escape_key' is recorded
-      when the user dismisses the dialog by pressing the Escape key (the user
-      remains opted out), 'dismissed_other' is recorded when the dialog is
-      dismissed in some other unknown way, for example when the dialog is
-      replaced with another higher priority dialog like the one shown when
-      quitting the app (the user remains opted out)
+      onboarding dialog. 'accept_2' is recorded when the user accepts the dialog
+      and opts in, 'reject_2' is recorded when the user rejects the dialog and
+      opts out, 'learn_more_2' is recorded when the user clicks "Learn more"
+      (the user remains opted out), 'close_1' is recorded when the user clicks
+      close button on introduction section (the user remains opted out),
+      'not_now_2' is recorded when the user clicks "Not now" link on main section
+      (the user remains opted out), 'dismiss_1' recorded when the user dismisses
+      the dialog on introduction section (the user remains opted out),
+      'dismiss_2' recorded when the user dismisses the dialog on main (the user
+      remains opted out),
     bug_numbers: [1723860, 1745026]
     notification_emails:
       - fx-search at mozilla.com
diff --git a/toolkit/components/telemetry/docs/data/environment.rst b/toolkit/components/telemetry/docs/data/environment.rst
index 40e2da2eabf75..33b0837e192c3 100644
--- a/toolkit/components/telemetry/docs/data/environment.rst
+++ b/toolkit/components/telemetry/docs/data/environment.rst
@@ -380,7 +380,7 @@ The following is a partial list of `collected preferences <https://searchfox.org
 
 - ``browser.search.suggest.enabled``: The "master switch" for search suggestions everywhere in Firefox (search bar, urlbar, etc.). Defaults to true.
 
-- ``browser.urlbar.quicksuggest.onboardingDialogChoice``: The user's choice in the Firefox Suggest onboarding dialog. If the dialog was shown multiple times, this records the user's most recent choice. Values are the following. Empty string: The user has not made a choice (e.g., because the dialog hasn't been shown). ``accept``: The user accepted the dialog and opted in. ``settings``: The user clicked in the "Customize" button (the user remains opted out in this case). ``learn_more``: Th [...]
+- ``browser.urlbar.quicksuggest.onboardingDialogChoice``: The user's choice in the Firefox Suggest onboarding dialog. If the dialog was shown multiple times, this records the user's most recent choice. Values are the following. Empty string: The user has not made a choice (e.g., because the dialog hasn't been shown). ``accept_2`` is recorded when the user accepts the dialog and opts in, ``reject_2`` is recorded when the user rejects the dialog and opts out, ``learn_more_2`` is recorded w [...]
 
 - ``browser.urlbar.quicksuggest.dataCollection.enabled``: Whether the user has opted in to data collection for Firefox Suggest. This pref is set to true when the user opts in to the Firefox Suggest onboarding dialog modal. The user can also toggle the pref using a toggle switch in the Firefox Suggest preferences UI.
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the tor-commits mailing list