Bug 1569614 - Add SUMO content links. r=ewright,fluent-reviewers,flod
authorMicah Tigley <mtigley@mozilla.com>
Fri, 09 Aug 2019 15:59:45 +0000
changeset 487201 d8a272a9f141ab68b68003b3aa635eb2253e8bdb
parent 487200 56140cb1ec04ae56e13293b210e589f01b730031
child 487202 4b02fef6b745a7c610758e165a39b0938323827c
push id36413
push usercsabou@mozilla.com
push dateFri, 09 Aug 2019 21:56:59 +0000
treeherdermozilla-central@2909b0a1eb06 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersewright, fluent-reviewers, flod
bugs1569614
milestone70.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1569614 - Add SUMO content links. r=ewright,fluent-reviewers,flod Differential Revision: https://phabricator.services.mozilla.com/D40902
browser/app/profile/firefox.js
browser/components/protections/content/lockwise-card.js
browser/components/protections/content/monitor-card.js
browser/components/protections/content/protections.css
browser/components/protections/content/protections.ftl
browser/components/protections/content/protections.html
browser/components/protections/content/protections.js
browser/components/protections/test/browser/browser_protections_telemetry.js
toolkit/components/remotepagemanager/MessagePort.jsm
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -1608,16 +1608,25 @@ pref("browser.contentblocking.reportBrea
 // Enable Protections report's Lockwise card by default.
 pref("browser.contentblocking.report.lockwise.enabled", true);
 
 // Enable Protections report's Monitor card by default.
 pref("browser.contentblocking.report.monitor.enabled", true);
 pref("browser.contentblocking.report.monitor.url", "https://monitor.firefox.com");
 pref("browser.contentblocking.report.lockwise.url", "https://lockwise.firefox.com/");
 
+// Protection Report's SUMO urls
+pref("browser.contentblocking.report.monitor.how_it_works.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/monitor-faq");
+pref("browser.contentblocking.report.lockwise.how_it_works.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/password-manager-report");
+pref("browser.contentblocking.report.social.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/social-media-tracking-report");
+pref("browser.contentblocking.report.cookie.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/cross-site-tracking-report");
+pref("browser.contentblocking.report.tracker.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/tracking-content-report");
+pref("browser.contentblocking.report.fingerprinter.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/fingerprinters-report");
+pref("browser.contentblocking.report.cryptominer.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/cryptominers-report");
+
 // Enables the new Protections Panel.
 #ifdef NIGHTLY_BUILD
 pref("browser.protections_panel.enabled", true);
 pref("browser.protections_panel.infoMessage.seen", false);
 #endif
 
 // Always enable newtab segregation using containers
 pref("privacy.usercontext.about_newtab_segregation.enabled", true);
--- a/browser/components/protections/content/lockwise-card.js
+++ b/browser/components/protections/content/lockwise-card.js
@@ -3,16 +3,19 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* eslint-env mozilla/frame-script */
 
 const LOCKWISE_URL = RPMGetStringPref(
   "browser.contentblocking.report.lockwise.url",
   ""
 );
+const HOW_IT_WORKS_URL_PREF = RPMGetFormatURLPref(
+  "browser.contentblocking.report.lockwise.how_it_works.url"
+);
 
 export default class LockwiseCard {
   constructor(document) {
     this.doc = document;
   }
 
   /**
    * Initializes message listeners/senders.
@@ -21,28 +24,35 @@ export default class LockwiseCard {
     const openAboutLoginsButton = this.doc.getElementById(
       "open-about-logins-button"
     );
     openAboutLoginsButton.addEventListener("click", () => {
       this.doc.sendTelemetryEvent("click", "lw_open_button");
       RPMSendAsyncMessage("OpenAboutLogins");
     });
 
-    const syncLink = this.doc.querySelector(".synced-devices-text a");
+    const syncLink = this.doc.getElementById("turn-on-sync");
     // Register a click handler for the anchor since it's not possible to navigate to about:preferences via href
-    syncLink.addEventListener("click", () => {
-      this.doc.sendTelemetryEvent("click", "lw_app_link");
-      RPMSendAsyncMessage("OpenSyncPreferences");
-    });
+    const eventHandler = evt => {
+      if (evt.keyCode == evt.DOM_VK_RETURN || evt.type == "click") {
+        this.doc.sendTelemetryEvent("click", "lw_app_link");
+        RPMSendAsyncMessage("OpenSyncPreferences");
+      }
+    };
+    syncLink.addEventListener("click", eventHandler);
+    syncLink.addEventListener("keydown", eventHandler);
 
+    // Attach link to Firefox Lockwise app page.
     const lockwiseAppLink = this.doc.getElementById("lockwise-inline-link");
     lockwiseAppLink.href = LOCKWISE_URL;
     lockwiseAppLink.addEventListener("click", () => {
       this.doc.sendTelemetryEvent("click", "lw_sync_link");
     });
+
+    // Attack link to Firefox Lockwise "How it works" page.
     const lockwiseReportLink = this.doc.getElementById("lockwise-how-it-works");
     lockwiseReportLink.addEventListener("click", () => {
       this.doc.sendTelemetryEvent("click", "lw_about_link");
     });
 
     RPMAddMessageListener("SendUserLoginsData", ({ data }) => {
       // Once data for the user is retrieved, display the lockwise card.
       this.buildContent(data);
@@ -110,16 +120,19 @@ export default class LockwiseCard {
       "data-l10n-args",
       JSON.stringify({ count: storedLogins })
     );
     lockwisePasswordsStored.setAttribute(
       "data-l10n-id",
       "lockwise-passwords-stored"
     );
 
+    const howItWorksLink = this.doc.getElementById("lockwise-how-it-works");
+    howItWorksLink.href = HOW_IT_WORKS_URL_PREF;
+
     // Set the text for the number of synced devices.
     const syncedDevicesBlock = container.querySelector(
       ".number-of-synced-devices.block"
     );
     syncedDevicesBlock.textContent = syncedDevices;
 
     const syncedDevicesText = container.querySelector(".synced-devices-text");
     const textEl = syncedDevicesText.querySelector("span");
@@ -129,13 +142,13 @@ export default class LockwiseCard {
         JSON.stringify({ count: syncedDevices })
       );
       textEl.setAttribute("data-l10n-id", "lockwise-sync-status");
     } else {
       textEl.setAttribute("data-l10n-id", "lockwise-sync-not-syncing");
     }
     // Display the link for enabling sync if no synced devices are detected.
     if (syncedDevices === 0) {
-      const syncLink = syncedDevicesText.querySelector("a");
+      const syncLink = this.doc.getElementById("turn-on-sync");
       syncLink.classList.remove("hidden");
     }
   }
 }
--- a/browser/components/protections/content/monitor-card.js
+++ b/browser/components/protections/content/monitor-card.js
@@ -3,23 +3,29 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* eslint-env mozilla/frame-script */
 
 const MONITOR_SIGN_IN_URL = RPMGetStringPref(
   "browser.contentblocking.report.monitor.url",
   ""
 );
+const HOW_IT_WORKS_URL_PREF = RPMGetFormatURLPref(
+  "browser.contentblocking.report.monitor.how_it_works.url"
+);
 
 export default class MonitorClass {
   constructor(document) {
     this.doc = document;
   }
 
   init() {
+    const monitorLinkTag = this.doc.getElementById("monitor-inline-link");
+    monitorLinkTag.href = MONITOR_SIGN_IN_URL;
+
     RPMAddMessageListener("SendUserLoginsData", ({ data }) => {
       // Wait for monitor data and display the card.
       this.getMonitorData(data);
       RPMSendAsyncMessage("FetchMonitorData");
     });
 
     let monitorReportLink = this.doc.getElementById("full-report-link");
     monitorReportLink.addEventListener("click", () => {
@@ -106,16 +112,19 @@ export default class MonitorClass {
   }
 
   renderContentForUserWithLogins(monitorData) {
     const monitorCardBody = this.doc.querySelector(
       ".card.monitor-card .card-body"
     );
     monitorCardBody.classList.remove("hidden");
 
+    const howItWorksLink = this.doc.getElementById("monitor-link");
+    howItWorksLink.href = HOW_IT_WORKS_URL_PREF;
+
     const storedEmail = this.doc.querySelector(
       "span[data-type='stored-emails']"
     );
     const knownBreaches = this.doc.querySelector(
       "span[data-type='known-breaches']"
     );
     const exposedPasswords = this.doc.querySelector(
       "span[data-type='exposed-passwords']"
--- a/browser/components/protections/content/protections.css
+++ b/browser/components/protections/content/protections.css
@@ -521,16 +521,17 @@ label[for="tab-cryptominer"]:hover ~ #hi
 .monitor-scanned-text {
   background-image: url("chrome://browser/skin/reload.svg");
   font-size: 0.85em;
 }
 
 .monitor-card #monitor-header-content > a {
   display: block;
   margin-block-start: 5px;
+  width: max-content;
 }
 
 .monitor-card.has-logins #monitor-body-content {
   display: grid;
   grid: 2fr 1fr auto / repeat(3, 160px);
   grid-column-gap: 12px;
   align-items: center;
 }
--- a/browser/components/protections/content/protections.ftl
+++ b/browser/components/protections/content/protections.ftl
@@ -36,29 +36,29 @@ protection-report-content-title = Privac
 etp-card-title = Enhanced Tracking Protection
 etp-card-content = Trackers follow you around online to collect information about your browsing habits and interests. { -brand-short-name } blocks many of these trackers and other malicious scripts.
 
 # This string is used to label the X axis of a graph. Other days of the week are generated via Intl.DateTimeFormat,
 # capitalization for this string should match the output for your locale.
 graph-today = Today
 
 social-tab-title = Social Media Trackers
-social-tab-contant = Social media like, post, and comment buttons on other websites can track you — even if you don’t use them. Logging in to sites using your Facebook or Twitter account is another way they can track what you do on those sites. We remove these trackers so Facebook and Twitter see less of what you do online.
+social-tab-contant = Social media like, post, and comment buttons on other websites can track you — even if you don’t use them. Logging in to sites using your Facebook or Twitter account is another way they can track what you do on those sites. We remove these trackers so Facebook and Twitter see less of what you do online. <a data-l10n-name="learn-more-link">Learn more</a>
 
 cookie-tab-title = Cross-Site Tracking Cookies
-cookie-tab-content = Cross-site tracking cookies follow you from site to site to collect data about your browsing habits. Advertisers and analytics companies gather this data to create a profile of your interests across many sites. Blocking them reduces the number of personalized ads that follow you around.
+cookie-tab-content = Cross-site tracking cookies follow you from site to site to collect data about your browsing habits. Advertisers and analytics companies gather this data to create a profile of your interests across many sites. Blocking them reduces the number of personalized ads that follow you around. <a data-l10n-name="learn-more-link">Learn more</a>
 
 tracker-tab-title = Tracking Content
-tracker-tab-content = Websites may load outside ads, videos, and other content that contain hidden trackers. Blocking tracking content can make websites load faster, but some buttons, forms, and login fields might not work.
+tracker-tab-content = Websites may load outside ads, videos, and other content that contain hidden trackers. Blocking tracking content can make websites load faster, but some buttons, forms, and login fields might not work. <a data-l10n-name="learn-more-link">Learn more</a>
 
 fingerprinter-tab-title = Fingerprinters
-fingerprinter-tab-content = Fingerprinting is a form of online tracking that’s different from your real fingerprints. Companies use it to create a unique profile of you using data about your browser, device, and other settings. We block ad trackers from fingerprinting your device.
+fingerprinter-tab-content = Fingerprinting is a form of online tracking that’s different from your real fingerprints. Companies use it to create a unique profile of you using data about your browser, device, and other settings. We block ad trackers from fingerprinting your device. <a data-l10n-name="learn-more-link">Learn more</a>
 
 cryptominer-tab-title = Cryptominers
-cryptominer-tab-content = Some websites host hidden malware that secretly uses your system’s computing power to mine cryptocurrency, or digital money. It drains your battery, slows down your computer, and increases your energy bill. We block known cryptominers from using your computing resources to make money.
+cryptominer-tab-content = Some websites host hidden malware that secretly uses your system’s computing power to mine cryptocurrency, or digital money. It drains your battery, slows down your computer, and increases your energy bill. We block known cryptominers from using your computing resources to make money. <a data-l10n-name="learn-more-link">Learn more</a>
 
 lockwise-title = Never forget a password again
 lockwise-title-logged-in = { -lockwise-brand-name }
 lockwise-header-content = { -lockwise-brand-name } securely stores your passwords in your browser.
 lockwise-header-content-logged-in = Securely store and sync your passwords to all your devices.
 open-about-logins-button = Open in { -brand-short-name }
 lockwise-no-logins-content = Get the <a data-l10n-name="lockwise-inline-link">{ -lockwise-brand-name }</a> app to take your passwords everywhere.
 
--- a/browser/components/protections/content/protections.html
+++ b/browser/components/protections/content/protections.html
@@ -52,33 +52,43 @@
                 <label for="tab-fingerprinter" data-type="fingerprinter"></label>
 
                 <input id="tab-cryptominer" data-type="cryptominer" type="radio" name="tabs">
                 <label for="tab-cryptominer" data-type="cryptominer"></label>
                 <div id=highlight></div>
                 <div id=highlight-hover></div>
                 <div id="social" class="tab-content">
                   <p class="content-title" data-l10n-id="social-tab-title"></p>
-                  <p data-l10n-id="social-tab-contant"></p>
+                  <p data-l10n-id="social-tab-contant">
+                    <a target="_blank" id="social-link" data-l10n-name="learn-more-link"></a>
+                  </p>
                 </div>
                 <div id="cookie" class="tab-content">
                   <p class="content-title" data-l10n-id="cookie-tab-title"></p>
-                  <p data-l10n-id="cookie-tab-content"></p>
+                  <p data-l10n-id="cookie-tab-content">
+                    <a target="_blank" id="cookie-link" data-l10n-name="learn-more-link"></a>
+                  </p>
                 </div>
                 <div id="tracker" class="tab-content">
                   <p class="content-title" data-l10n-id="tracker-tab-title"></p>
-                  <p data-l10n-id="tracker-tab-content"></p>
+                  <p data-l10n-id="tracker-tab-content">
+                    <a target="_blank" id="tracker-link" data-l10n-name="learn-more-link"></a>
+                  </p>
                 </div>
                 <div id="fingerprinter" class="tab-content">
                   <p class="content-title" data-l10n-id="fingerprinter-tab-title"></p>
-                  <p data-l10n-id="fingerprinter-tab-content"></p>
+                  <p data-l10n-id="fingerprinter-tab-content">
+                    <a target="_blank" id="fingerprinter-link" data-l10n-name="learn-more-link"></a>
+                  </p>
                 </div>
                 <div id="cryptominer" class="tab-content">
                   <p class="content-title" data-l10n-id="cryptominer-tab-title"></p>
-                  <p data-l10n-id="cryptominer-tab-content"></p>
+                  <p data-l10n-id="cryptominer-tab-content">
+                    <a target="_blank" id="cryptominer-link" data-l10n-name="learn-more-link"></a>
+                  </p>
                 </div>
               </div>
             </div>
             <div id="graph-total-summary"></div>
           </div>
         </div>
       </div>
      <!-- Markup for Monitor card. -->
@@ -86,17 +96,17 @@
           <div class="card-header">
             <div class="icon"></div>
             <div class="wrapper">
               <h2 id="monitor-title" class="card-title" data-l10n-id="monitor-title"></h2>
               <p id="monitor-header-content" class="content">
                 <span>
                   <!-- Insert Monitor header content here. -->
                 </span>
-                <a id="monitor-link" href="" data-l10n-id="monitor-link"></a>
+                <a target="_blank" href="" id="monitor-link" data-l10n-id="monitor-link"></a>
               </p>
               <span class="inline-text-icon monitor-scanned-text" data-l10n-id="auto-scan"></span>
             </div>
             <a target="_blank" id="sign-up-for-monitor-link">
               <!-- Insert Monitor link content here. -->
             </a>
           </div>
           <div class="card-body hidden">
@@ -125,24 +135,24 @@
                       <span class="monitor-icon"></span>
                       <span data-type="exposed-passwords">
                         <!-- Display number of exposed passwords here. -->
                       </span>
                   </span>
                   <span id="info-exposed-passwords" class="info-text"></span>
                 </div>
                 <div id="full-report-link" class="monitor-view-full-report" data-l10n-id="full-report-link">
-                    <a id="monitor-inline-link" data-l10n-name="monitor-inline-link" href=""></a>
+                  <a target="_blank" id="monitor-inline-link" data-l10n-name="monitor-inline-link" href=""></a>
                 </div>
                 <div class="monitor-breached-passwords hidden">
                   <span data-type="breached-lockwise-passwords" class="number-of-breaches block">
                     <!-- Display number of exposed stored passwords here. -->
                   </span>
                   <span id="password-warning">
-                    <a id="lockwise-link" href="" data-l10n-name="lockwise-link"></a>
+                    <a target="_blank" href="about:logins" id="lockwise-link" data-l10n-name="lockwise-link" data-l10n-title="go-to-saved-logins"></a>
                   </span>
                 </div>
               </div>
             </div>
           </div>
       </section>
       <!-- Markup for Lockwise card. -->
       <section class="card card-no-hover lockwise-card hidden">
@@ -158,35 +168,35 @@
           </div>
           <button id="open-about-logins-button" class="primary" data-l10n-id="open-about-logins-button" data-l10n-title="go-to-saved-logins"></button>
         </div>
         <div class="card-body hidden">
           <div id="lockwise-body-content" class="body-wrapper">
             <div class="no-logins hidden">
                 <div class="lockwise-mobile-app-icon"></div>
                 <span data-l10n-id="lockwise-no-logins-content">
-                  <a id="lockwise-inline-link" data-l10n-name="lockwise-inline-link" href=""></a>
+                  <a target="_blank" id="lockwise-inline-link" data-l10n-name="lockwise-inline-link" href=""></a>
                 </span>
             </div>
             <div class="has-logins hidden">
               <span class="number-of-logins block">
                 <!-- Display number of stored logins here. -->
               </span>
               <span id="lockwise-passwords-stored" class="inline-text-icon passwords-stored-text">
                  <!-- Display message for stored logins here. -->
-                <a id="lockwise-how-it-works" data-l10n-name="lockwise-how-it-works" href=""></a>
+                 <a target="_blank" id="lockwise-how-it-works" data-l10n-name="lockwise-how-it-works" href=""></a>
               </span>
               <span class="number-of-synced-devices block">
                 <!-- Display number of synced devices here. -->
               </span>
               <span class="inline-text-icon synced-devices-text">
                 <span>
                   <!-- Display message for status of synced devices here. -->
                 </span>
-                <a id="turn-on-sync" class="hidden" href="" data-l10n-id="turn-on-sync"></a>
+                <a id="turn-on-sync" tabindex="0" class="hidden" href="" data-l10n-id="turn-on-sync"></a>
               </span>
             </div>
           </div>
         </div>
       </section>
     </div>
   </body>
 </html>
--- a/browser/components/protections/content/protections.js
+++ b/browser/components/protections/content/protections.js
@@ -147,20 +147,25 @@ document.addEventListener("DOMContentLoa
       if (i == 6) {
         label.setAttribute("data-l10n-id", "graph-today");
       } else {
         label.textContent = data.weekdays[(i + 1 + new Date().getDay()) % 7];
       }
       graph.append(label);
       date.setDate(date.getDate() - 1);
     }
-    // Set the total number of each type of tracker on the tabs
+    // Set the total number of each type of tracker on the tabs as well as their
+    // "Learn More" links
     for (let type of dataTypes) {
       document.querySelector(`label[data-type=${type}]`).textContent =
         weekTypeCounts[type];
+      const learnMoreLink = document.getElementById(`${type}-link`);
+      learnMoreLink.href = RPMGetFormatURLPref(
+        `browser.contentblocking.report.${type}.url`
+      );
     }
 
     // Hide the trackers tab if the user is in standard and
     // has no recorded trackers blocked.
     if (weekTypeCounts.tracker == 0 && cbCategory == "standard") {
       legend.style.gridTemplateAreas =
         "'social cookie fingerprinter cryptominer'";
       let radio = document.getElementById("tab-tracker");
--- a/browser/components/protections/test/browser/browser_protections_telemetry.js
+++ b/browser/components/protections/test/browser/browser_protections_telemetry.js
@@ -132,16 +132,17 @@ add_task(async function checkTelemetryCl
   await ContentTask.spawn(tab.linkedBrowser, {}, async function() {
     // Show all elements, so we can click on them, even though our user is not logged in.
     let hidden_elements = content.document.querySelectorAll(".hidden");
     for (let el of hidden_elements) {
       el.style.display = "block ";
     }
 
     const syncLink = await ContentTaskUtils.waitForCondition(() => {
+      // Opens an extra tab
       return content.document.getElementById("turn-on-sync");
     }, "syncLink exists");
 
     syncLink.click();
   });
 
   let events = await waitForTelemetryEventCount(2);
   events = events.filter(
@@ -149,16 +150,17 @@ add_task(async function checkTelemetryCl
       e[1] == "security.ui.protections" &&
       e[2] == "click" &&
       e[3] == "lw_app_link"
   );
   is(events.length, 1, `recorded telemetry for lw_app_link`);
 
   await ContentTask.spawn(tab.linkedBrowser, {}, async function() {
     const openAboutLogins = await ContentTaskUtils.waitForCondition(() => {
+      // Opens an extra tab
       return content.document.getElementById("open-about-logins-button");
     }, "openAboutLogins exists");
 
     openAboutLogins.click();
   });
 
   events = await waitForTelemetryEventCount(3);
 
@@ -203,16 +205,17 @@ add_task(async function checkTelemetryCl
       e[1] == "security.ui.protections" &&
       e[2] == "click" &&
       e[3] == "lw_about_link"
   );
   is(events.length, 1, `recorded telemetry for lw_about_link`);
 
   await ContentTask.spawn(tab.linkedBrowser, {}, async function() {
     let openLockwise = await ContentTaskUtils.waitForCondition(() => {
+      // Opens an extra tab
       return content.document.getElementById("lockwise-link");
     }, "openLockwise exists");
 
     openLockwise.click();
   });
 
   events = await waitForTelemetryEventCount(6);
 
@@ -274,12 +277,16 @@ add_task(async function checkTelemetryCl
     e =>
       e[1] == "security.ui.protections" &&
       e[2] == "click" &&
       e[3] == "mtr_signup_button"
   );
   is(events.length, 1, `recorded telemetry for mtr_signup_button`);
 
   await BrowserTestUtils.removeTab(tab);
-  // We open two extra tabs with the click events.
+  // We open three extra tabs with the click events.
+  // 1. Monitor's "Viewed Saved Logins" link (goes to about:logins)
+  // 2. Lockwise's "Turn on sync..." link (goes to about:preferences#sync)
+  // 3. Lockwise's "Open Nightly" button (goes to about:logins)
+  await BrowserTestUtils.removeTab(gBrowser.selectedTab);
   await BrowserTestUtils.removeTab(gBrowser.selectedTab);
   await BrowserTestUtils.removeTab(gBrowser.selectedTab);
 });
--- a/toolkit/components/remotepagemanager/MessagePort.jsm
+++ b/toolkit/components/remotepagemanager/MessagePort.jsm
@@ -62,16 +62,25 @@ let RPMAccessManager = {
         "browser.contentblocking.report.lockwise.enabled",
         "browser.contentblocking.report.monitor.enabled",
       ],
       getStringPref: [
         "browser.contentblocking.category",
         "browser.contentblocking.report.lockwise.url",
         "browser.contentblocking.report.monitor.url",
       ],
+      getFormatURLPref: [
+        "browser.contentblocking.report.monitor.how_it_works.url",
+        "browser.contentblocking.report.lockwise.how_it_works.url",
+        "browser.contentblocking.report.social.url",
+        "browser.contentblocking.report.cookie.url",
+        "browser.contentblocking.report.tracker.url",
+        "browser.contentblocking.report.fingerprinter.url",
+        "browser.contentblocking.report.cryptominer.url",
+      ],
       recordTelemetryEvent: ["yes"],
     },
     "about:newinstall": {
       getUpdateChannel: ["yes"],
       getFxAccountsEndpoint: ["yes"],
     },
   },