Backed out changeset eb21007e7da0 (bug 1501991) for geckoview failures on several tests.
authorCosmin Sabou <csabou@mozilla.com>
Sat, 17 Nov 2018 02:18:03 +0200
changeset 446876 2b51cc7acba5fdac3642d3972e489d297bc608c2
parent 446875 cd0bb0a35c3d4d8de65e504e11095b3f306b6815
child 446877 d8230f3fdd2c3ecea4771ebe98c83be6e3ebcbfc
push id35052
push userapavel@mozilla.com
push dateSat, 17 Nov 2018 11:25:40 +0000
treeherdermozilla-central@efc1da42132b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1501991
milestone65.0a1
backs outeb21007e7da0cc392906a517602935cb77a6c37e
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
Backed out changeset eb21007e7da0 (bug 1501991) for geckoview failures on several tests.
browser/base/content/browser-contentblocking.js
browser/base/content/browser.js
browser/base/content/test/trackingUI/browser.ini
browser/base/content/test/trackingUI/browser_trackingUI_pbmode_exceptions.js
browser/base/content/test/trackingUI/browser_trackingUI_state.js
browser/base/content/test/trackingUI/browser_trackingUI_trackers_subview.js
browser/base/content/test/trackingUI/trackingAPI.js
browser/components/controlcenter/content/panel.inc.xul
browser/locales/en-US/chrome/browser/browser.dtd
browser/themes/shared/controlcenter/info.svg
browser/themes/shared/controlcenter/panel.inc.css
browser/themes/shared/jar.inc.mn
build/pgo/certs/cert9.db
build/pgo/certs/key4.db
build/pgo/certs/mochitest.client
build/pgo/server-locations.txt
--- a/browser/base/content/browser-contentblocking.js
+++ b/browser/base/content/browser-contentblocking.js
@@ -3,46 +3,32 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 var TrackingProtection = {
   reportBreakageLabel: "trackingprotection",
   telemetryIdentifier: "tp",
   PREF_ENABLED_GLOBALLY: "privacy.trackingprotection.enabled",
   PREF_ENABLED_IN_PRIVATE_WINDOWS: "privacy.trackingprotection.pbmode.enabled",
   PREF_UI_ENABLED: "browser.contentblocking.trackingprotection.control-center.ui.enabled",
-  PREF_TRACKING_TABLE: "urlclassifier.trackingTable",
-  PREF_TRACKING_ANNOTATION_TABLE: "urlclassifier.trackingAnnotationTable",
   enabledGlobally: false,
   enabledInPrivateWindows: false,
 
   get categoryItem() {
     delete this.categoryItem;
     return this.categoryItem =
       document.getElementById("identity-popup-content-blocking-category-tracking-protection");
   },
 
-  get subViewList() {
-    delete this.subViewList;
-    return this.subViewList = document.getElementById("identity-popup-trackersView-list");
-  },
-
-  get strictInfo() {
-    delete this.strictInfo;
-    return this.strictInfo = document.getElementById("identity-popup-trackersView-strict-info");
-  },
-
   init() {
     this.updateEnabled();
 
     Services.prefs.addObserver(this.PREF_ENABLED_GLOBALLY, this);
     Services.prefs.addObserver(this.PREF_ENABLED_IN_PRIVATE_WINDOWS, this);
 
     XPCOMUtils.defineLazyPreferenceGetter(this, "visible", this.PREF_UI_ENABLED, false);
-    XPCOMUtils.defineLazyPreferenceGetter(this, "trackingTable", this.PREF_TRACKING_TABLE, false);
-    XPCOMUtils.defineLazyPreferenceGetter(this, "trackingAnnotationTable", this.PREF_TRACKING_ANNOTATION_TABLE, false);
   },
 
   uninit() {
     Services.prefs.removeObserver(this.PREF_ENABLED_GLOBALLY, this);
     Services.prefs.removeObserver(this.PREF_ENABLED_IN_PRIVATE_WINDOWS, this);
   },
 
   observe() {
@@ -60,96 +46,16 @@ var TrackingProtection = {
       Services.prefs.getBoolPref(this.PREF_ENABLED_GLOBALLY);
     this.enabledInPrivateWindows =
       Services.prefs.getBoolPref(this.PREF_ENABLED_IN_PRIVATE_WINDOWS);
   },
 
   isBlockerActivated(state) {
     return state & Ci.nsIWebProgressListener.STATE_BLOCKED_TRACKING_CONTENT;
   },
-
-  isAllowing(state) {
-    return state & Ci.nsIWebProgressListener.STATE_LOADED_TRACKING_CONTENT;
-  },
-
-  async updateSubView() {
-    let previousURI = gBrowser.currentURI.spec;
-    let previousWindow = gBrowser.selectedBrowser.innerWindowID;
-
-    let contentBlockingLogJSON = await gBrowser.selectedBrowser.getContentBlockingLog();
-    let contentBlockingLog = JSON.parse(contentBlockingLogJSON);
-
-    // Don't tell the user to turn on TP if they are already blocking trackers.
-    this.strictInfo.hidden = this.enabled;
-
-    let fragment = document.createDocumentFragment();
-    for (let [origin, actions] of Object.entries(contentBlockingLog)) {
-      let listItem = await this._createListItem(origin, actions);
-      if (listItem) {
-        fragment.appendChild(listItem);
-      }
-    }
-
-    // This might have taken a while. Only update the list if we're still on the same page.
-    if (previousURI == gBrowser.currentURI.spec &&
-        previousWindow == gBrowser.selectedBrowser.innerWindowID) {
-      this.subViewList.textContent = "";
-      this.subViewList.append(fragment);
-    }
-  },
-
-  // Given a URI from a source that was tracking-annotated, figure out
-  // if it's really on the tracking table or just on the annotation table.
-  _isOnTrackingTable(uri) {
-    if (this.trackingTable == this.trackingAnnotationTable) {
-      return true;
-    }
-    return new Promise(resolve => {
-      classifierService.asyncClassifyLocalWithTables(uri, this.trackingTable, [], [],
-        (code, list) => resolve(!!list));
-    });
-  },
-
-  async _createListItem(origin, actions) {
-    // Figure out if this list entry was actually detected by TP or something else.
-    let isDetected = false;
-    let isAllowed = false;
-    for (let [state] of actions) {
-      isAllowed = isAllowed || this.isAllowing(state);
-      isDetected = isDetected || isAllowed || this.isBlockerActivated(state);
-    }
-
-    if (!isDetected) {
-      return null;
-    }
-
-    let uri = Services.io.newURI(origin);
-
-    // Because we might use different lists for annotation vs. blocking, we
-    // need to make sure that this is a tracker that we would actually have blocked
-    // before showing it to the user.
-    let isTracker = await this._isOnTrackingTable(uri);
-    if (!isTracker) {
-      return null;
-    }
-
-    let listItem = document.createXULElement("hbox");
-    listItem.className = "identity-popup-trackersView-list-item";
-    listItem.classList.toggle("allowed", isAllowed);
-
-    let image = document.createXULElement("image");
-    listItem.append(image);
-
-    let label = document.createXULElement("label");
-    label.value = uri.host;
-    label.setAttribute("crop", "end");
-    listItem.append(label);
-
-    return listItem;
-  },
 };
 
 var ThirdPartyCookies = {
   telemetryIdentifier: "cr",
   PREF_ENABLED: "network.cookie.cookieBehavior",
   PREF_REPORT_BREAKAGE_ENABLED: "browser.contentblocking.rejecttrackers.reportBreakage.enabled",
   PREF_ENABLED_VALUES: [
     // These values match the ones exposed under the Content Blocking section
@@ -236,21 +142,16 @@ var ContentBlocking = {
     return this.PREF_INTRO_COUNT_CB;
   },
 
   get appMenuLabel() {
     delete this.appMenuLabel;
     return this.appMenuLabel = document.getElementById("appMenu-tp-label");
   },
 
-  get identityPopup() {
-    delete this.identityPopup;
-    return this.identityPopup = document.getElementById("identity-popup");
-  },
-
   strings: {
     get appMenuTitle() {
       delete this.appMenuTitle;
       return this.appMenuTitle =
         gNavigatorBundle.getString("contentBlocking.title");
     },
 
     get appMenuTooltip() {
@@ -332,30 +233,30 @@ var ContentBlocking = {
         blocker.uninit();
       }
     }
 
     Services.prefs.removeObserver(this.PREF_ANIMATIONS_ENABLED, this.updateAnimationsEnabled);
   },
 
   hideIdentityPopupAndReload() {
-    this.identityPopup.hidePopup();
+    document.getElementById("identity-popup").hidePopup();
     BrowserReload();
   },
 
   openPreferences(origin) {
     openPreferences("privacy-trackingprotection", { origin });
   },
 
   backToMainView() {
     this.identityPopupMultiView.goBack();
   },
 
   submitBreakageReport() {
-    this.identityPopup.hidePopup();
+    document.getElementById("identity-popup").hidePopup();
 
     let reportEndpoint = Services.prefs.getStringPref(this.PREF_REPORT_BREAKAGE_URL);
     if (!reportEndpoint) {
       return;
     }
 
     let formData = new FormData();
     formData.set("title", this.reportURI.host);
@@ -408,21 +309,16 @@ var ContentBlocking = {
     // Save this URI to make sure that the user really only submits the location
     // they see in the report breakage dialog.
     this.reportURI = gBrowser.currentURI;
     let urlWithoutQuery = this.reportURI.asciiSpec.replace("?" + this.reportURI.query, "");
     this.reportBreakageURL.textContent = urlWithoutQuery;
     this.identityPopupMultiView.showSubView("identity-popup-breakageReportView");
   },
 
-  async showTrackersSubview() {
-    await TrackingProtection.updateSubView();
-    this.identityPopupMultiView.showSubView("identity-popup-trackersView");
-  },
-
   shieldHistogramAdd(value) {
     if (PrivateBrowsingUtils.isWindowPrivate(window)) {
       return;
     }
     Services.telemetry.getHistogramById("TRACKING_PROTECTION_SHIELD").add(value);
   },
 
   onSecurityChange(oldState, state, webProgress, isSimulated,
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -138,17 +138,16 @@ XPCOMUtils.defineLazyScriptGetter(this, 
 if (AppConstants.NIGHTLY_BUILD) {
   XPCOMUtils.defineLazyScriptGetter(this, "gWebRender",
                                     "chrome://browser/content/browser-webrender.js");
 }
 
 // lazy service getters
 
 XPCOMUtils.defineLazyServiceGetters(this, {
-  classifierService: ["@mozilla.org/url-classifier/dbservice;1", "nsIURIClassifier"],
   Favicons: ["@mozilla.org/browser/favicon-service;1", "nsIFaviconService"],
   gAboutNewTabService: ["@mozilla.org/browser/aboutnewtab-service;1", "nsIAboutNewTabService"],
   gDNSService: ["@mozilla.org/network/dns-service;1", "nsIDNSService"],
   gSerializationHelper: ["@mozilla.org/network/serialization-helper;1", "nsISerializationHelper"],
   Marionette: ["@mozilla.org/remote/marionette;1", "nsIMarionette"],
   WindowsUIUtils: ["@mozilla.org/windows-ui-utils;1", "nsIWindowsUIUtils"],
 });
 
--- a/browser/base/content/test/trackingUI/browser.ini
+++ b/browser/base/content/test/trackingUI/browser.ini
@@ -18,9 +18,8 @@ support-files =
   file_trackingUI_fetch.js
   file_trackingUI_fetch.js^headers^
 [browser_trackingUI_open_preferences.js]
 [browser_trackingUI_pbmode_exceptions.js]
 [browser_trackingUI_report_breakage.js]
 [browser_trackingUI_state.js]
 [browser_trackingUI_state_all_disabled.js]
 [browser_trackingUI_telemetry.js]
-[browser_trackingUI_trackers_subview.js]
--- a/browser/base/content/test/trackingUI/browser_trackingUI_pbmode_exceptions.js
+++ b/browser/base/content/test/trackingUI/browser_trackingUI_pbmode_exceptions.js
@@ -54,19 +54,19 @@ function testTrackingPage(window) {
     ok(!hidden("#tracking-action-unblock"), "unblockButton is visible");
     ok(hidden("#tracking-action-unblock-private"), "unblockButtonPrivate is hidden");
   }
 
   ok(hidden("#identity-popup-content-blocking-not-detected"), "blocking not detected label is hidden");
   ok(!hidden("#identity-popup-content-blocking-detected"), "blocking detected label is visible");
 
   ok(!hidden("#identity-popup-content-blocking-category-list"), "category list is visible");
-  ok(hidden("#identity-popup-content-blocking-category-tracking-protection > #identity-popup-content-blocking-tracking-protection-label-allowed"),
-    "TP category item is not showing the allowed label");
-  ok(!hidden("#identity-popup-content-blocking-category-tracking-protection > #identity-popup-content-blocking-tracking-protection-label-blocked"),
+  ok(hidden("#identity-popup-content-blocking-category-tracking-protection > .identity-popup-content-blocking-category-add-blocking"),
+    "TP category item is not showing add blocking");
+  ok(!hidden("#identity-popup-content-blocking-category-tracking-protection > .identity-popup-content-blocking-category-state-label"),
     "TP category item is set to blocked");
 }
 
 function testTrackingPageUnblocked() {
   info("Tracking content must be white-listed and not blocked");
   ok(ContentBlocking.content.hasAttribute("detected"), "trackers are detected");
   ok(ContentBlocking.content.hasAttribute("hasException"), "content shows exception");
 
@@ -79,19 +79,19 @@ function testTrackingPageUnblocked() {
   ok(!hidden("#tracking-action-block"), "blockButton is visible");
   ok(hidden("#tracking-action-unblock"), "unblockButton is hidden");
   ok(!hidden("#identity-popup-content-blocking-disabled-label"), "disabled label is visible");
 
   ok(hidden("#identity-popup-content-blocking-not-detected"), "blocking not detected label is hidden");
   ok(!hidden("#identity-popup-content-blocking-detected"), "blocking detected label is visible");
 
   ok(!hidden("#identity-popup-content-blocking-category-list"), "category list is visible");
-  ok(!hidden("#identity-popup-content-blocking-category-tracking-protection > #identity-popup-content-blocking-tracking-protection-label-allowed"),
-    "TP category item is showing the allowed label");
-  ok(hidden("#identity-popup-content-blocking-category-tracking-protection > #identity-popup-content-blocking-tracking-protection-label-blocked"),
+  ok(hidden("#identity-popup-content-blocking-category-tracking-protection > .identity-popup-content-blocking-category-add-blocking"),
+    "TP category item is not showing add blocking");
+  ok(hidden("#identity-popup-content-blocking-category-tracking-protection > .identity-popup-content-blocking-category-state-label"),
     "TP category item is not set to blocked");
 }
 
 add_task(async function testExceptionAddition() {
   await UrlClassifierTestUtils.addTestTrackers();
   let privateWin = await BrowserTestUtils.openNewBrowserWindow({private: true});
   browser = privateWin.gBrowser;
   let tab = await BrowserTestUtils.openNewForegroundTab({ gBrowser: browser, waitForLoad: true, waitForStateStop: true });
--- a/browser/base/content/test/trackingUI/browser_trackingUI_state.js
+++ b/browser/base/content/test/trackingUI/browser_trackingUI_state.js
@@ -129,36 +129,30 @@ function testTrackingPage(window) {
     is(!hidden("#tracking-action-unblock"), blockedByTP,
        "unblockButton is" + (blockedByTP ? "" : " not") + " visible");
   }
 
   ok(hidden("#identity-popup-content-blocking-not-detected"), "blocking not detected label is hidden");
   ok(!hidden("#identity-popup-content-blocking-detected"), "blocking detected label is visible");
 
   ok(!hidden("#identity-popup-content-blocking-category-list"), "category list is visible");
+  let category = Services.prefs.getIntPref(TPC_PREF) == Ci.nsICookieService.BEHAVIOR_REJECT_TRACKER ?
+               "#identity-popup-content-blocking-category-3rdpartycookies" :
+               "#identity-popup-content-blocking-category-tracking-protection";
+  is(hidden(category + " > .identity-popup-content-blocking-category-add-blocking"), blockedByTP,
+    "Category item is" + (blockedByTP ? " not" : "") + " showing add blocking");
+  is(hidden(category + " > .identity-popup-content-blocking-category-state-label"), !blockedByTP,
+    "Category item is" + (blockedByTP ? "" : " not") + " set to blocked");
 
-  let cookiesBlocked = Services.prefs.getIntPref(TPC_PREF) == Ci.nsICookieService.BEHAVIOR_REJECT_TRACKER;
-  if (cookiesBlocked) {
-    let category = "#identity-popup-content-blocking-category-3rdpartycookies";
-    is(hidden(category + " > .identity-popup-content-blocking-category-add-blocking"), blockedByTP,
-      "Category item is" + (blockedByTP ? " not" : "") + " showing add blocking");
-    is(hidden(category + " > .identity-popup-content-blocking-category-state-label"), !blockedByTP,
-      "Category item is" + (blockedByTP ? "" : " not") + " set to blocked");
-
+  if (Services.prefs.getIntPref(TPC_PREF) == Ci.nsICookieService.BEHAVIOR_REJECT_TRACKER) {
     ok(hidden("#identity-popup-content-blocking-category-label-default"),
       "Not showing default cookie restrictions label.");
     ok(!hidden("#identity-popup-content-blocking-category-label-trackers"),
       "Showing trackers cookie restrictions label.");
   } else {
-    let category = "#identity-popup-content-blocking-category-tracking-protection";
-    is(hidden(category + " > #identity-popup-content-blocking-tracking-protection-label-allowed"), blockedByTP,
-      "Category item is" + (blockedByTP ? " not" : "") + " showing the allowed label");
-    is(!hidden(category + " > #identity-popup-content-blocking-tracking-protection-label-blocked"), blockedByTP,
-      "Category item is" + (blockedByTP ? "" : " not") + " set to blocked");
-
     ok(hidden("#identity-popup-content-blocking-category-label-trackers"),
       "Not showing trackers cookie restrictions label.");
     ok(!hidden("#identity-popup-content-blocking-category-label-default"),
       "Showing default cookie restrictions label.");
   }
 }
 
 function testTrackingPageUnblocked(blockedByTP, window) {
@@ -176,32 +170,24 @@ function testTrackingPageUnblocked(block
   ok(!hidden("#tracking-action-block"), "blockButton is visible");
   ok(hidden("#tracking-action-unblock"), "unblockButton is hidden");
   ok(!hidden("#identity-popup-content-blocking-disabled-label"), "disabled label is visible");
 
   ok(hidden("#identity-popup-content-blocking-not-detected"), "blocking not detected label is hidden");
   ok(!hidden("#identity-popup-content-blocking-detected"), "blocking detected label is visible");
 
   ok(!hidden("#identity-popup-content-blocking-category-list"), "category list is visible");
-
-  let cookiesBlocked = Services.prefs.getIntPref(TPC_PREF) == Ci.nsICookieService.BEHAVIOR_REJECT_TRACKER;
-  if (cookiesBlocked) {
-    let category = "#identity-popup-content-blocking-category-3rdpartycookies";
-    is(hidden(category + " > .identity-popup-content-blocking-category-add-blocking"), blockedByTP,
-      "Category item is" + (blockedByTP ? " not" : "") + " showing add blocking");
-    ok(!hidden("#identity-popup-content-blocking-category-tracking-protection > #identity-popup-content-blocking-tracking-protection-label-allowed"),
-      "TP category item is showing the allowed label");
-  } else {
-    let category = "#identity-popup-content-blocking-category-tracking-protection";
-    // If there's an exception we always show the "Allowed" label.
-    ok(!hidden(category + " > #identity-popup-content-blocking-tracking-protection-label-allowed"),
-      "Category item is showing the allowed label");
-    ok(hidden(category + " > #identity-popup-content-blocking-tracking-protection-label-blocked"),
-      "Category item is not set to blocked");
-  }
+  let category = Services.prefs.getIntPref(TPC_PREF) == Ci.nsICookieService.BEHAVIOR_REJECT_TRACKER ?
+               "#identity-popup-content-blocking-category-3rdpartycookies" :
+               "#identity-popup-content-blocking-category-tracking-protection";
+  is(hidden(category + " > .identity-popup-content-blocking-category-add-blocking"), blockedByTP,
+    "Category item is" + (blockedByTP ? " not" : "") + " showing add blocking");
+  // Always hidden no matter if blockedByTP or not, since we have an exception.
+  ok(hidden("#identity-popup-content-blocking-category-tracking-protection > .identity-popup-content-blocking-category-state-label"),
+    "TP category item is not set to blocked");
 }
 
 async function testContentBlocking(tab) {
   info("Testing with Tracking Protection ENABLED.");
 
   info("Load a test page not containing tracking elements");
   await promiseTabLoadEvent(tab, BENIGN_PAGE);
   testBenignPage();
deleted file mode 100644
--- a/browser/base/content/test/trackingUI/browser_trackingUI_trackers_subview.js
+++ /dev/null
@@ -1,118 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-"use strict";
-
-const TRACKING_PAGE = "http://tracking.example.org/browser/browser/base/content/test/trackingUI/trackingPage.html";
-
-const TP_PREF = "privacy.trackingprotection.enabled";
-
-add_task(async function setup() {
-  await UrlClassifierTestUtils.addTestTrackers();
-});
-
-function openIdentityPopup() {
-  let mainView = document.getElementById("identity-popup-mainView");
-  let viewShown = BrowserTestUtils.waitForEvent(mainView, "ViewShown");
-  gIdentityHandler._identityBox.click();
-  return viewShown;
-}
-
-function waitForSecurityChange(blocked) {
-  return new Promise(resolve => {
-    let webProgressListener = {
-      onStateChange: () => {},
-      onStatusChange: () => {},
-      onLocationChange: () => {},
-      onSecurityChange: (webProgress, request, oldState, state) => {
-        if ((!blocked && state & Ci.nsIWebProgressListener.STATE_LOADED_TRACKING_CONTENT) ||
-            (blocked && state & Ci.nsIWebProgressListener.STATE_BLOCKED_TRACKING_CONTENT)) {
-          gBrowser.removeProgressListener(webProgressListener);
-          resolve();
-        }
-      },
-      onProgressChange: () => {},
-      QueryInterface: ChromeUtils.generateQI([Ci.nsIWebProgressListener]),
-    };
-
-    gBrowser.addProgressListener(webProgressListener);
-  });
-}
-
-async function assertSitesListed(blocked) {
-  await BrowserTestUtils.withNewTab(TRACKING_PAGE, async function(browser) {
-    await openIdentityPopup();
-
-    let categoryItem =
-      document.getElementById("identity-popup-content-blocking-category-tracking-protection");
-    ok(BrowserTestUtils.is_visible(categoryItem), "TP category item is visible");
-    let trackersView = document.getElementById("identity-popup-trackersView");
-    let viewShown = BrowserTestUtils.waitForEvent(trackersView, "ViewShown");
-    categoryItem.click();
-    await viewShown;
-
-    ok(true, "Trackers view was shown");
-
-    let listItems = document.querySelectorAll(".identity-popup-trackersView-list-item");
-    is(listItems.length, 1, "We have 1 tracker in the list");
-
-    let strictInfo = document.getElementById("identity-popup-trackersView-strict-info");
-    is(BrowserTestUtils.is_hidden(strictInfo), Services.prefs.getBoolPref(TP_PREF),
-      "Strict info is hidden if TP is enabled.");
-
-    let mainView = document.getElementById("identity-popup-mainView");
-    viewShown = BrowserTestUtils.waitForEvent(mainView, "ViewShown");
-    let backButton = trackersView.querySelector(".subviewbutton-back");
-    backButton.click();
-    await viewShown;
-
-    ok(true, "Main view was shown");
-
-    let change = waitForSecurityChange(blocked);
-
-    await ContentTask.spawn(browser, {}, function() {
-      content.postMessage("more-tracking", "*");
-    });
-
-    await change;
-
-    viewShown = BrowserTestUtils.waitForEvent(trackersView, "ViewShown");
-    categoryItem.click();
-    await viewShown;
-
-    ok(true, "Trackers view was shown");
-
-    listItems = Array.from(document.querySelectorAll(".identity-popup-trackersView-list-item"));
-    is(listItems.length, 2, "We have 2 trackers in the list");
-
-    let listItem = listItems.find(item => item.querySelector("label").value == "trackertest.org");
-    ok(listItem, "Has an item for trackertest.org");
-    ok(BrowserTestUtils.is_visible(listItem), "List item is visible");
-    is(listItem.classList.contains("allowed"), !blocked,
-      "Indicates whether the tracker was blocked or allowed");
-
-    listItem = listItems.find(item => item.querySelector("label").value == "itisatracker.org");
-    ok(listItem, "Has an item for itisatracker.org");
-    ok(BrowserTestUtils.is_visible(listItem), "List item is visible");
-    is(listItem.classList.contains("allowed"), !blocked,
-      "Indicates whether the tracker was blocked or allowed");
-  });
-}
-
-add_task(async function testTrackersSubView() {
-  Services.prefs.setBoolPref(TP_PREF, false);
-  await assertSitesListed(false);
-  Services.prefs.setBoolPref(TP_PREF, true);
-  await assertSitesListed(true);
-  let uri = Services.io.newURI("https://tracking.example.org");
-  Services.perms.add(uri, "trackingprotection", Services.perms.ALLOW_ACTION);
-  await assertSitesListed(false);
-  Services.perms.remove(uri, "trackingprotection");
-  await assertSitesListed(true);
-  Services.prefs.clearUserPref(TP_PREF);
-});
-
-add_task(function cleanup() {
-  Services.prefs.clearUserPref(TP_PREF);
-  UrlClassifierTestUtils.cleanupTestTrackers();
-});
--- a/browser/base/content/test/trackingUI/trackingAPI.js
+++ b/browser/base/content/test/trackingUI/trackingAPI.js
@@ -1,22 +1,16 @@
 onmessage = event => {
   switch (event.data) {
   case "tracking": {
       let ifr = document.createElement("iframe");
       ifr.src = "https://trackertest.org/";
       document.body.appendChild(ifr);
     }
     break;
-  case "more-tracking": {
-      let ifr = document.createElement("iframe");
-      ifr.src = "https://itisatracker.org/";
-      document.body.appendChild(ifr);
-    }
-    break;
   case "cookie": {
       let ifr = document.createElement("iframe");
       ifr.src = "https://trackertest.org/browser/browser/base/content/test/trackingUI/cookieServer.sjs";
       document.body.appendChild(ifr);
     }
     break;
   }
 };
--- a/browser/components/controlcenter/content/panel.inc.xul
+++ b/browser/components/controlcenter/content/panel.inc.xul
@@ -77,26 +77,25 @@
           </hbox>
 
           <description id="identity-popup-content-blocking-detected"
                        crop="end">&contentBlocking.detected;</description>
           <description id="identity-popup-content-blocking-not-detected"
                        crop="end">&contentBlocking.notDetected;</description>
 
           <vbox id="identity-popup-content-blocking-category-list">
-            <toolbarbutton id="identity-popup-content-blocking-category-tracking-protection"
-                  onclick="ContentBlocking.showTrackersSubview()"
-                  class="identity-popup-content-blocking-category" align="center">
+            <hbox id="identity-popup-content-blocking-category-tracking-protection"
+                  class="identity-popup-content-blocking-category" align="center" role="group">
               <image class="identity-popup-content-blocking-category-icon tracking-protection-icon"/>
               <label flex="1" class="identity-popup-content-blocking-category-label">&contentBlocking.trackingProtection3.label;</label>
-              <label flex="1" id="identity-popup-content-blocking-tracking-protection-label-allowed"
-                     class="identity-popup-content-blocking-category-state-label">&contentBlocking.trackingProtection.allowed.label;</label>
-              <label flex="1" id="identity-popup-content-blocking-tracking-protection-label-blocked"
-                     class="identity-popup-content-blocking-category-state-label">&contentBlocking.trackingProtection.blocked.label;</label>
-            </toolbarbutton>
+              <label flex="1" class="identity-popup-content-blocking-category-state-label">&contentBlocking.trackingProtection.blocking.label;</label>
+              <label flex="1" class="identity-popup-content-blocking-category-add-blocking text-link"
+                     id="identity-popup-tracking-protection-add-blocking"
+                     onclick="ContentBlocking.openPreferences('identityPopup-CB-tracking-protection'); gIdentityHandler.recordClick('tp_add_blocking');">&contentBlocking.trackingProtection.add.label;</label>
+            </hbox>
             <hbox id="identity-popup-content-blocking-category-3rdpartycookies"
                   class="identity-popup-content-blocking-category" align="center" role="group">
               <image class="identity-popup-content-blocking-category-icon thirdpartycookies-icon"/>
               <label flex="1" id="identity-popup-content-blocking-category-label-default"
                      class="identity-popup-content-blocking-category-label">&contentBlocking.3rdPartyCookies.label;</label>
               <label flex="1" id="identity-popup-content-blocking-category-label-trackers"
                      hidden="true" class="identity-popup-content-blocking-category-label">&contentBlocking.3rdPartyCookies.trackers.label;</label>
               <label flex="1" class="identity-popup-content-blocking-category-state-label">&contentBlocking.3rdPartyCookies.blocking.label;</label>
@@ -245,35 +244,16 @@
         <!-- More Security Information -->
         <button id="identity-popup-more-info"
                 label="&identity.moreInfoLinkText2;"
                 oncommand="gIdentityHandler.handleMoreInfoClick(event);"/>
       </vbox>
 
     </panelview>
 
-    <!-- Trackers SubView -->
-    <panelview id="identity-popup-trackersView"
-               role="document"
-               title="&contentBlocking.trackersView.label;"
-               descriptionheightworkaround="true">
-        <vbox id="identity-popup-trackersView-list">
-        </vbox>
-        <hbox id="identity-popup-trackersView-strict-info">
-          <image/>
-          <label>&contentBlocking.trackersView.strictInfo.label;</label>
-        </hbox>
-        <vbox class="identity-popup-footer">
-          <button id="identity-popup-trackersView-settings-button"
-                  label="&contentBlocking.manageSettings.label;"
-                  accesskey="&contentBlocking.manageSettings.accesskey;"
-                  oncommand="ContentBlocking.openPreferences();"/>
-        </vbox>
-    </panelview>
-
     <!-- Report Breakage SubView -->
     <panelview id="identity-popup-breakageReportView"
                title="&contentBlocking.breakageReportView.label;"
                descriptionheightworkaround="true">
         <vbox id="identity-popup-breakageReportView-heading">
           <description>&contentBlocking.breakageReportView2.description;</description>
           <label id="identity-popup-breakageReportView-learn-more"
                  class="text-link">&contentBlocking.breakageReportView.learnMore;</label>
--- a/browser/locales/en-US/chrome/browser/browser.dtd
+++ b/browser/locales/en-US/chrome/browser/browser.dtd
@@ -965,29 +965,34 @@ you can use these alternative items. Oth
 
 <!ENTITY contentBlocking.title "Content Blocking">
 <!ENTITY contentBlocking.detected "Blockable content detected on this site.">
 <!ENTITY contentBlocking.notDetected "No blockable content detected on this page.">
 <!ENTITY contentBlocking.disabled.label "Disabled">
 <!ENTITY contentBlocking.disabled.tooltip "You have disabled Content Blocking.">
 <!ENTITY contentBlocking.exception.tooltip "You have disabled Content Blocking for this site.">
 
+<!ENTITY contentBlocking.trackingProtection2.label "All Detected Trackers">
 <!ENTITY contentBlocking.trackingProtection3.label "Trackers">
-<!-- LOCALIZATION NOTE (contentBlocking.trackingProtection.allowed.label):
-     This label signals that this type of content blocking is turned
-     OFF and is not blocking tracker content, so this is not
-     a positive thing. It forms the end of the (imaginary) sentence
-     "Trackers [are] Allowed"-->
-<!ENTITY contentBlocking.trackingProtection.allowed.label "Allowed">
 <!-- LOCALIZATION NOTE (contentBlocking.trackingProtection.blocked.label):
      This label signals that this type of content blocking is turned
      ON and is successfully blocking tracker content, so this is
      a positive thing. It forms the end of the (imaginary) sentence
      "Trackers [are] Blocked"-->
 <!ENTITY contentBlocking.trackingProtection.blocked.label "Blocked">
+<!-- LOCALIZATION NOTE (contentBlocking.tranckingProtection.blocking.label):
+     This label signals that this type of content blocking is turned
+     ON, so this is a positive thing. It forms the verb in the (imaginary) sentence
+     "Firefox is blocking Trackers"-->
+<!ENTITY contentBlocking.trackingProtection.blocking.label "Blocking">
+<!-- LOCALIZATION NOTE (contentBlocking.trackingProtection.add.label):
+     This is displayed as a link to preferences, where the user can add
+     this specific type of content blocking. When this text is shown
+     the type of content blocking is currently not enabled. -->
+<!ENTITY contentBlocking.trackingProtection.add.label "Add Blocking…">
 
 <!ENTITY contentBlocking.3rdPartyCookies.label "Third-Party Cookies">
 <!ENTITY contentBlocking.3rdPartyCookies.trackers.label "Tracking Cookies">
 <!-- LOCALIZATION NOTE (contentBlocking.3rdPartyCookies.blocked.label):
      This label signals that this type of content blocking is turned
      ON and is successfully blocking third-party cookies, so this is
      a positive thing. It forms the end of the (imaginary) sentence
      "Third-Party Cookies [are] Blocked"-->
@@ -998,22 +1003,16 @@ you can use these alternative items. Oth
      "Firefox is blocking Third-Party Cookies"-->
 <!ENTITY contentBlocking.3rdPartyCookies.blocking.label "Blocking">
 <!-- LOCALIZATION NOTE (contentBlocking.3rdPartyCookies.add.label):
      This is displayed as a link to preferences, where the user can add
      this specific type of content blocking. When this text is shown
      the type of content blocking is currently not enabled. -->
 <!ENTITY contentBlocking.3rdPartyCookies.add.label "Add Blocking…">
 
-<!ENTITY contentBlocking.manageSettings.label "Manage Content Blocking">
-<!ENTITY contentBlocking.manageSettings.accesskey "M">
-
-<!ENTITY contentBlocking.trackersView.label "Trackers">
-<!ENTITY contentBlocking.trackersView.strictInfo.label "To block all trackers, set content blocking to “Strict”.">
-
 <!ENTITY contentBlocking.openBreakageReportView2.label "Report a problem">
 <!ENTITY contentBlocking.breakageReportView.label "Report Problems">
 <!ENTITY contentBlocking.breakageReportView2.description "Content blocking can cause problems with some websites. When you report problems, you’ll help make &brandShortName; better for everyone. (This will send a URL as well as information about your browser settings to Mozilla.)">
 <!ENTITY contentBlocking.breakageReportView.learnMore "Learn More">
 <!ENTITY contentBlocking.breakageReportView.collection.url.label "URL">
 <!ENTITY contentBlocking.breakageReportView.collection.comments.label "What problems did you have? (Optional)">
 <!ENTITY contentBlocking.breakageReportView.sendReport.label "Send Report">
 <!ENTITY contentBlocking.breakageReportView.cancel.label "Cancel">
deleted file mode 100644
--- a/browser/themes/shared/controlcenter/info.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<!-- This Source Code Form is subject to the terms of the Mozilla Public
-   - License, v. 2.0. If a copy of the MPL was not distributed with this
-   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill="context-fill" fill-rule="evenodd" d="M8 1a7 7 0 1 1-7 7 7 7 0 0 1 7-7zm0 3a1 1 0 1 1-1 1 1 1 0 0 1 1-1zm0 3a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0V8a1 1 0 0 1 1-1z"></path></svg>
--- a/browser/themes/shared/controlcenter/panel.inc.css
+++ b/browser/themes/shared/controlcenter/panel.inc.css
@@ -4,20 +4,16 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 %endif
 
 /* Hide all conditional elements by default. */
 :-moz-any([when-connection],[when-mixedcontent],[when-ciphers],[when-loginforms]) {
   display: none;
 }
 
-#identity-popup {
-  --identity-popup-width: 33rem;
-}
-
 /* This is used by screenshots tests to hide intermittently different
  * identity popup shadows (see bug 1425253). */
 #identity-popup.no-shadow {
   -moz-window-shadow: none;
 }
 
 /* Show the right elements for the right connection states. */
 #identity-popup[connection=not-secure] [when-connection~=not-secure],
@@ -67,18 +63,18 @@
   padding: 0;
   /* Set default fill for icons in the identity popup.
      Individual icons can override this. */
   fill: currentColor;
   fill-opacity: .6;
 }
 
 #identity-popup-mainView {
-  min-width: var(--identity-popup-width);
-  max-width: var(--identity-popup-width);
+  min-width: 33em;
+  max-width: 33em;
 }
 
 .identity-popup-section {
   border-top: 1px solid var(--panel-separator-color);
 }
 
 .identity-popup-security-content,
 #identity-popup-permissions-content,
@@ -144,22 +140,17 @@
 }
 
 .identity-popup-preferences-button > .toolbarbutton-text {
   display: none;
 }
 
 /* CONTENT */
 
-.identity-popup-footer,
-.tracking-protection-button,
-#identity-popup-trackersView-strict-info > label,
-.identity-popup-trackersView-list-item > label,
 #identity-popup-mainView-panel-header > label,
-#identity-popup-trackersView > .panel-header,
 #identity-popup-securityView > .panel-header,
 #identity-popup-breakageReportView > .panel-header,
 #identity-popup-content-blocking-report-breakage,
 #identity-popup-content-blocking-disabled-label,
 .identity-popup-content-blocking-category-label,
 .identity-popup-content-blocking-category-state-label,
 .identity-popup-content-blocking-category-add-blocking,
 .identity-popup-permission-label,
@@ -182,17 +173,17 @@
 
 #identity-popup-mainView-panel-header-span {
   display: inline-block;
   font-weight: 600;
   text-align: center;
   overflow-wrap: break-word;
   /* This is needed for the overflow-wrap to work correctly.
    * 33em is the panel width, panel-header has 1em padding on each side. */
-  max-width: calc(var(--identity-popup-width) - 2em);
+  max-width: calc(33rem - 2em);
 }
 
 #identity-popup-permissions-content > description,
 #identity-popup-content-blocking-content > description {
   color: var(--panel-disabled-color);
 }
 
 /* This element needs the pre-wrap because we add newlines to it in the code. */
@@ -205,17 +196,17 @@
   font-size: 150%;
 }
 
 #identity-popup-host {
   overflow-wrap: break-word;
   /* This is needed for the overflow-wrap to work correctly.
    * 1em + 2em + 24px is .identity-popup-security-content padding
    * 33em is the panel width */
-  max-width: calc(var(--identity-popup-width) - 3rem - 24px);
+  max-width: calc(33rem - 3rem - 24px);
 }
 
 .identity-popup-warning-gray {
   padding-inline-start: 24px;
   background: url(chrome://browser/skin/controlcenter/warning.svg) no-repeat 0 50%;
   fill: #808080;
   stroke: #fff;
   -moz-context-properties: fill, stroke;
@@ -386,103 +377,16 @@ description#identity-popup-content-verif
 #identity-popup-breakageReportView-collection-comments {
   height: 120px;
 }
 
 #identity-popup-content-blocking-content {
   background-image: url("chrome://browser/skin/controlcenter/tracking-protection.svg");
 }
 
-#identity-popup-content-blocking-category-tracking-protection {
-  /* Overwrite toolbarbutton styles */
-  margin: 0;
-  padding-inline-start: 0;
-}
-
-#identity-popup-content-blocking-category-tracking-protection:-moz-focusring,
-#identity-popup-content-blocking-category-tracking-protection:hover {
-  border-radius: 2px;
-  background-color: var(--arrowpanel-dimmed-further);
-}
-
-#identity-popup-content-blocking-category-tracking-protection:hover:active {
-  background-color: var(--arrowpanel-dimmed-even-further);
-}
-
-#identity-popup-content-blocking-category-tracking-protection::after {
-  content: url(chrome://browser/skin/back-12.svg);
-  -moz-context-properties: fill, fill-opacity;
-  transform: scaleX(-1) translateY(1px);
-  float: right;
-}
-
-#identity-popup-content-blocking-category-tracking-protection:-moz-locale-dir(rtl)::after {
-  transform: scaleX(1) translateY(1px);
-}
-
-/* This subview could get filled with a lot of trackers, set a maximum size
- * and allow it to scroll vertically.*/
-#identity-popup-trackersView {
-  max-height: 600px;
-}
-
-#identity-popup-trackersView-list {
-  padding: 5px 20px;
-  -moz-box-flex: 1;
-  overflow: scroll;
-}
-
-.identity-popup-trackersView-list-item {
-  margin: 5px 0;
-  overflow: hidden;
-}
-
-.identity-popup-trackersView-list-item > label {
-  /* Limit to full width - container padding - icon width - icon margin */
-  max-width: calc(var(--identity-popup-width) - 40px - 16px - 10px);
-}
-
-.identity-popup-trackersView-list-item > image {
-  list-style-image: url(chrome://browser/skin/controlcenter/trackers-disabled.svg);
-  margin-inline-end: 10px;
-  -moz-context-properties: fill, fill-opacity;
-}
-
-.identity-popup-trackersView-list-item.allowed > image {
-  list-style-image: url(chrome://browser/skin/controlcenter/trackers.svg);
-}
-
-#identity-popup-trackersView-strict-info {
-  min-height: 40px;
-  /* Limit to full width - margin */
-  max-width: calc(var(--identity-popup-width) - 12px);
-  min-width: calc(var(--identity-popup-width) - 12px);
-  background-color: #45a1ff80;
-  margin: 6px;
-  text-align: center;
-  -moz-box-align: center;
-  -moz-box-pack: center;
-  padding: 5px 15px;
-  border-radius: 3px;
-  color: #002275;
-}
-
-#identity-popup-trackersView-strict-info > image {
-  list-style-image: url(chrome://browser/skin/controlcenter/info.svg);
-  -moz-context-properties: fill;
-  fill: currentColor;
-  margin-inline-end: 10px;
-}
-
-#identity-popup-trackersView-strict-info > label {
-  overflow-wrap: break-word;
-  /* Limit to full width - container margin - container padding - icon width - icon margin */
-  max-width: calc(var(--identity-popup-width) - 12px - 20px - 16px - 10px);
-}
-
 /* Disabled label */
 
 #identity-popup-content-blocking-disabled-label {
   padding: 2px 5px;
   border-radius: 3px;
   margin: 5px;
   display: none;
   color: #fff;
@@ -524,30 +428,21 @@ description#identity-popup-content-verif
 }
 
 /* Show the "detected"/"not detected" message depending on the content state. */
 #identity-popup-content-blocking-content:not([detected]) > #identity-popup-content-blocking-detected,
 #identity-popup-content-blocking-content[detected] > #identity-popup-content-blocking-not-detected {
   display: none;
 }
 
-.identity-popup-content-blocking-category-state-label {
+#identity-popup-content-blocking-content[hasException] .identity-popup-content-blocking-category-state-label,
+.identity-popup-content-blocking-category:not(.blocked) .identity-popup-content-blocking-category-state-label {
   display: none;
 }
 
-/* TODO: This will be cleaned up by bug 1501992 */
-/* Hide the state label unless we blocked something only for third party cookies */
-#identity-popup-content-blocking-content:not([hasException]) #identity-popup-content-blocking-category-3rdpartycookies.blocked .identity-popup-content-blocking-category-state-label,
-/* For trackers, either show a "blocked" or "allowed" label depending on the state. */
-#identity-popup-content-blocking-content:not([hasException]) #identity-popup-content-blocking-category-tracking-protection.blocked > #identity-popup-content-blocking-tracking-protection-label-blocked,
-#identity-popup-content-blocking-category-tracking-protection:not(.blocked) > #identity-popup-content-blocking-tracking-protection-label-allowed,
-#identity-popup-content-blocking-content[hasException] #identity-popup-content-blocking-tracking-protection-label-allowed {
-  display: -moz-box;
-}
-
 .identity-popup-content-blocking-category.blocked .identity-popup-content-blocking-category-add-blocking {
   display: none;
 }
 
 .tracking-protection-icon {
   list-style-image: url(chrome://browser/skin/controlcenter/trackers.svg);
 }
 
@@ -568,17 +463,16 @@ description#identity-popup-content-verif
 .tracking-protection-button {
   list-style-image: url(chrome://browser/skin/tracking-protection.svg);
   -moz-appearance: none;
   margin: 1em 0 0;
   display: none;
   height: 32px;
   background-color: var(--arrowpanel-dimmed);
   color: inherit;
-  margin-inline-end: 8px;
 }
 
 .tracking-protection-button:hover {
   background-color: var(--arrowpanel-dimmed-further);
 }
 
 .tracking-protection-button:hover:active {
   background-color: var(--arrowpanel-dimmed-even-further);
@@ -652,41 +546,32 @@ description#identity-popup-content-verif
   min-height: 24px;
 }
 
 #identity-popup-content-blocking-category-list,
 #identity-popup-permission-list {
   /* Offset the padding set on #identity-popup-permissions-content so that it
      shows up just below the section. The permission icons are 16px wide and
      should be right aligned with the section icon. */
-  margin-inline-start: calc(-1em - 24px);
+  margin-inline-start: calc(-1em - 16px);
 }
 
 .identity-popup-content-blocking-category,
 .identity-popup-permission-item {
   min-height: 24px;
 }
 
-.identity-popup-content-blocking-category {
-  padding-inline-end: 12px;
-}
-
-.identity-popup-permission-item {
-  padding-inline-end: 8px;
-}
-
 #identity-popup-permission-list:not(:empty) {
   margin-top: 5px;
 }
 
 .identity-popup-content-blocking-category-icon,
 .identity-popup-permission-icon {
   width: 16px;
   height: 16px;
-  margin-inline-start: 12px;
 }
 
 .identity-popup-permission-icon.in-use {
   -moz-context-properties: fill;
   fill: rgb(224, 41, 29);
   animation: 1.5s ease in-use-blink infinite;
 }
 
--- a/browser/themes/shared/jar.inc.mn
+++ b/browser/themes/shared/jar.inc.mn
@@ -23,17 +23,16 @@
   skin/classic/browser/addons/addon-install-installed.svg      (../shared/addons/addon-install-installed.svg)
   skin/classic/browser/addons/addon-install-warning.svg        (../shared/addons/addon-install-warning.svg)
   skin/classic/browser/controlcenter/3rdpartycookies.svg       (../shared/controlcenter/3rdpartycookies.svg)
   skin/classic/browser/controlcenter/3rdpartycookies-disabled.svg (../shared/controlcenter/3rdpartycookies-disabled.svg)
   skin/classic/browser/controlcenter/conn-not-secure.svg       (../shared/controlcenter/conn-not-secure.svg)
   skin/classic/browser/controlcenter/connection.svg            (../shared/controlcenter/connection.svg)
   skin/classic/browser/controlcenter/mcb-disabled.svg          (../shared/controlcenter/mcb-disabled.svg)
   skin/classic/browser/controlcenter/extension.svg             (../shared/controlcenter/extension.svg)
-  skin/classic/browser/controlcenter/info.svg                  (../shared/controlcenter/info.svg)
   skin/classic/browser/controlcenter/permissions.svg           (../shared/controlcenter/permissions.svg)
   skin/classic/browser/controlcenter/trackers.svg              (../shared/controlcenter/trackers.svg)
   skin/classic/browser/controlcenter/trackers-disabled.svg     (../shared/controlcenter/trackers-disabled.svg)
   skin/classic/browser/controlcenter/tracking-protection.svg   (../shared/controlcenter/tracking-protection.svg)
   skin/classic/browser/controlcenter/warning.svg               (../shared/controlcenter/warning.svg)
   skin/classic/browser/customizableui/empty-overflow-panel.png     (../shared/customizableui/empty-overflow-panel.png)
   skin/classic/browser/customizableui/empty-overflow-panel@2x.png  (../shared/customizableui/empty-overflow-panel@2x.png)
   skin/classic/browser/customizableui/density-compact.svg      (../shared/customizableui/density-compact.svg)
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..4c453a7a9c928a97ab4ee4350298d709927494ce
GIT binary patch
literal 229376
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
z-ccNrxY;n;|Hogt`0GCH<XjPXVefu_pBGcMX!S+>Uu;_YFyQ>K`ptw77V2)Znxj58
zzOZDHQa)pz2D-M&$&}rZugzIX9BOlEQeD-PXN}ViovtX@ZP7G(RJdzuafGwHPw&CG
zY6H0*kL?>Zme%*4cuzW*N$Wd#S-r;M{Wor>hP_&yb8p!eU#|Dc*B0-q7OtaABb{0m
zQeR7c*Fs!h81nGw{OL90)DP~I?8y!CjrFgZb?06+{?5W`dfItkitkBh{m<Dl^>c48
z2;03jCfRGAzS|1y+~+}2%g=9$`E+W8oeUweu4j+J6%of(r{q>N*m<m&NSl)pw=PS5
z{RWLlnM*UDlll>J)(lCC{zN8O$Y&f_&p?m1?vGGEe_V7L>E#8Du;#77@Za*E@$d6*
z@GtOB@DK8L^SAKp`L+B7{8{`;ehHt?&)}!=Dg0slLHrQDFW-aj#JA)d@-_JKd@Sz`
z?+Nb??+WiU?=Y{Cw?$AL000000000000000000000000000000000000000000000
z000000000000000000000000000000000000000000000000000D#|27AJ|t)ZpG&
z3lj^S%B_TnDo>K7Ffpq~t%W$T%v_k5elEpKoS>Ns6H_V6@Zv;`i7-*wf-@E;B#eZK
ziaCCU;)Jh(Fi{qktuIbw=?N31GhgV66VG*oi4uKdZE?a#OPCnD)lO5Ku+<PIieiqa
zixbUi!o=w3GgZZj87eY39F{kktt@(FDWR`<j*}HduayeuYxdz4@}k!|IrKF%KTlTl
znk$38a#g~lMXv*-&{tM%wxsAa3x~d@r<{|J#^L1BQ_ji@`qY|D#ISwYJ=w(E+T5}n
z*Bl+LBUg>5ntwO<dG6kvyqtmA(peYy6?`LJ9nUMDn~%$@%rnU~$f?a<lI@z6l=&*N
zC{rzCUWOxg8#jbw&kpMDy#xRN0000000000000000000000000000000000000000
z000000000000000000000000000000000000000000000bT3I925XHzS)oss1r*7m
zP%Kh#nV^8kN#mj=r8Oj?Bfq?n)sP7ABWNR<=o=Xgr2$MXgF~V*@Pld8OoBOLicXi;
z&>z6eq0#9iydyqnFrGq9;3nZYR5k}MC~Slnpff3GXhu@WTo#R!jSpfZ(HK-Ji^fPI
z5D_;t8>itYC>bRvBbbP{5iEtpWpgr_EKYK^t)Lob1}Tl|P0esbt92xk2o8vyw4B|z
zzT?`IuyR;!BXTl{MJI7c3}23@5+`aFDJ`8&bs{s<EdD22X>Ne)fkm_k8i<;3VT$t6
zj8q0QlOd?t>@V_6M@be?ut*BQ2C)*YrAZVuEuG0Cv9j?2R2GMpNF$RtRJ<RTlgvch
zM$kpHMSY_3rBB3-B3K}1qK+^KXE76LbSgfWOQTRJ_<`vhS{f~f#Gx@6_&>fxlRv&h
z<3GMcqd&ex!#}=6gFn7R{Xf1$JqKJI7P0y=GfvUKkItd880bQx(10PB|LekZe`RK!
zKi(GYKfXk*zle02f03v0D;=r+D>JM8@jg)f<4aWei=I{fi#(-Y=}5(2nOWhF_ksK$
zU!vR}U!v?EU!sf+E((j75%7qyXrt?}sq{ogHZ6%krF=X5k^b2krT%yuB>(slaesV?
z66t~^%Kg#fO>i}1otul{AK?$?+weZ}PVuJmxV+vx#r*U6OY`IMd*rL-J;+<0$IG3<
z%gOi2dy=osJI|NME8;uy)bi`{ukcUu0(ez<tMf_xVYxGNC*&3hssjK30000000000
z00000000000000000000000000000000000000000000000000000000000000000
z0000000000000000N_{2;MB28FtOI+S1a+Wr6dl6wJ4xS7KLJwg3AO2L=OEKZ)pvQ
z=*TZ`WHlrL{0Q2JCi+H3Lumk$%ixe`4E$gkHIrbDn2LT9T>r~Yf;-}a2IDEz1a1<Z
zLuGUDg2G0Kf#}!4H6y8HF8WjA_#j3SjX|Zd&>s&cB5tA|Aa@j$6#t?)-bSz#7MIP*
zWU@HP*|vgeoEfAvsy8*m5v|sdOd>cScG7Zo<NA(kQ^Lw&wT;NhBo>{-Au)V8qDsE~
z5qWd8sb*HVa4do+7$b(FpPbhcFQwxT&YPn1;(Oq-u!tMM1wlmf+6tQFMsW2)yqvNa
zj*iJ$q?CkYYLW{n$CX4EPD;rl(bFmPbQ83^u_>+(7BL{`Av&V+ssothWSX!~$aET&
z!7)N-Gc?Bu`re3Ofar;4Q)efW2vq8~>tle<sBehtg+;Upnuxk+Mul(Y&_n0Y4U{a9
z$0FW@o`{!d7MBDP#fios)43F?Bb%E*VWtVT9NQ_K#$X8g$B~jP=u;Z`+hysXHEBEG
z;;@L-m!EaVDH@39bQG8TwuBa1LemKsk40<<R)~eDgwfZYb);sc(^wsQSOYDi{=-uI
z=o~7Gf&S=xl&Ea`kI$>2B~%HxL@Z)Yutlszdkj7#Elsc=F*x*Wd?1Z2UZP;{LLVGK
zF%`6!vH`9K7SSSTAZnro$wxC%8O%(EV6Rd_XHfLOv9Jh%;EXtmX0YnI)4pwn0$Nz!
z0@ojl7!wQ;eNkbJP8uwS&M9k&3&SENUycWyqNZS5ySNiOZfzNKR%sht6c#Zf;1Ofd
ztU7EeJ<*X(OJa1aSPGq6a+G8N1&gE*Y!E9^$CyM>)6$tN5-S@YKxJ`gi8M0WtzWy7
zpo?gW4qTNl2d?<Y`?5I{Gz`L7%tRWUiVx<}D1u%cn9iZ4(Q-%}8k2!T7c1e2i<j%L
z(K9nMof1flR06tc7|}b5V-hzTeJ?KvMAke_4BvuB<?ZL)=0D-N@u%{8^Z5KLyn6mV
z-ZcI)ekMPjH;^yMzso<v-^riPpU7wOhwzDfL*5786<!0cmRH8h<PGNq^Bi~<JVQZs
z00000000000000000000000000000000000000000000000000000000000000000
z0000000000000000000000000000000PtTy2B(f)f{C>jzgmf3Eyb@E>Np!LHG{_B
zP+4hI3XQ~}nv1i{lyJsaE`!73vN=?Wsdy@04QGW-;3l~dT)hx4GL^+K5$71A^QSS%
z$utg?%`p;BHPpb_VcE$f!bmEEB6x6UoNNPeo<3S4J&DPtvNEVFJ@HgsEu0gUlFcBc
z(a7O627|^(@+VPr#JSqqIOMzBU?!8ICC=8=!MU`rG>Ji>W~I|uREmZ;Umab25?#<*
zhM=h|CX=Hk&QaCF5wWziG#W#&lJxA66dGGxi;8#-Wn~;*P<JYWnaLPQCMk(0D{A5#
zuxt*A^X=*?h%@CCaQayBI>?Eq$)XJubcu^Q@taPO5$8&yOJP&#iELUDgG!MSPnML!
zX`_8bCgH?WBvf%$a#S{%lujjaI3#i^L0+)Et@CGN_$~as{2Kmveky+e-<hw*d%-)y
z+r*p2%jFH{`S476xcuAvLA*D-x%tifd;CNE75s93I^T`2&AZ6k&Ku23;05xmc(VEH
z@*fDQ0{{R30000000000000000000000000000000000000000000000000000000
z000000000000000000000000000000000000D%8Tx;QuNl+d{+bd?lqr=^~+QC>a$
zmUo2IDQh$%FL!(IG1D!dZm;1x_DQ~x>|VFV-U`hiCe7Q?cn|mCRe>J%ae1lb<pQO6
zOGz9CYtdDG=4h^2SCyKgx%jSfP0(E9u5yjgT*Iz%4bWWuu5$IzT-~l(q=V*acU4vk
z&DHEGR|Cye@2X}sG*`8&vMOk<a#y)ZXs%*cH7lUG@?DjcLvv-j%9TNLrMt?NLUSd%
Q%Eh6%5;{0Hxz2L`4}C|}H2?qr
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..06c967ea7e9f3a56b1e5e8736f55a4402a41534a
GIT binary patch
literal 294912
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
z732ZhUg1N*oifkXX1||0IG29FP%z=tY|EvABArsDo5=gkhkTxMf9Gg_PG4(cmvW}g
z!*Gey^t?sHsMpMy!&#$w512bJFVus->oQAOyC&Vq<S58mo}VV#o9#TOoh?yyvL#b(
zF@K|aJfPNV@O5`~37Y!zQfS=X5VoU{<KtV0@BitYo#y9}GvN(U!k2^(n->5800000
z00000000000000000000000000000000000000000000000000000000000000000
z0000000000000000000000000!2iXlNXdwaDo9sJw`R^tWs^{nl2H?tsJPQ?E+tL)
zNR;qBVRiEY0000000000000000000000000000000000000000000000000000000
z0000000000000000000000000000000000000000008(Of{c`inDpm_gp`zsnr8DB
z()d`Sguw)l%?khk00000000000000000000000000000000000000000000000000
z000000000000000000000000000000000000000000000{|8{b$PSqj%V5W4X=SJ>
zNbSfdm`Utx{<=cNOrobF%PPb2^9m(1{hr{6APf>6#AlC2Mac@t@c+D>hM99u@IiDy
z0FqCV&%mC~3*`~v!-qkIWB4{V=9c05xe_fiiw(*%A`Fd*<}(QLK?k8wVdx+qStS{T
zpNmPEB{#RU-P~sLMn2KadkKpO$3z8(VSJ;-HiwZ8LI$EVP?3^9hn4h1%1X%WqM+WD
zYMi=CPfShB%I)ck3=2SFkU`p*UxP@Y4j=<V0#H((!GWZqWLPg^89!N38R1{|#%qfT
z3<(ZHhDGz~p~5g|Z?q>8gW}VP!1xCL%qYt)!}{y7ZTsu7{VSZTpbX;I1LCp@3-(3_
zp!kd;&|WAnKFbgcIuLyji9rVkk%*J-r<M`^Yh_Y8E}Z}jDlF*do!I_-Xq)T*$DPq^
z?g!F@CqxM!5}qVX|DXPj000000000000000000000000000000000000000000000
z000000000000000000000000000000000000000000000000000002~zrsW+N{os`
z2VqcQfhaFD5`!Y8CS@fK@d@@sk}#4AQzHX57X@wJ9u^#oq1oJmG~otO!fe8$%?khk
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
a1#r#t;acXQth3HVd6nJ#(lDaFpyyAK7JGL9
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..b79fb90c8518548dfb6fdf9d1c3a4a8ab8343058
GIT binary patch
literal 2448
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
C|A3wV
--- a/build/pgo/server-locations.txt
+++ b/build/pgo/server-locations.txt
@@ -170,17 +170,16 @@ https://sub.sectest1.example.org:443
 #
 http://malware.example.com:80
 http://unwanted.example.com:80
 http://tracking.example.com:80
 http://not-tracking.example.com:80
 http://tracking.example.org:80
 http://another-tracking.example.net:80
 http://itisatracker.org:80
-https://itisatracker.org:443
 http://trackertest.org:80
 
 https://malware.example.com:443
 https://unwanted.example.com:443
 https://tracking.example.com:443
 https://not-tracking.example.com:443
 https://tracking.example.org:443
 https://another-tracking.example.net:443