[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [tor-browser] 11/37: Bug 1568275 - Disable deceptive content prefs when locked. r=Gijs, a=RyanVM



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

richard pushed a commit to branch tor-browser-91.11.0esr-11.5-1
in repository tor-browser.

commit be2cfa3b75bfd5904052e9f71f7ba57ad4f03ffd
Author: Mike Kaply <mozilla@xxxxxxxxx>
AuthorDate: Tue May 10 20:13:35 2022 +0000

    Bug 1568275 - Disable deceptive content prefs when locked. r=Gijs, a=RyanVM
    
    Differential Revision: https://phabricator.services.mozilla.com/D144476
---
 browser/components/preferences/privacy.js          |  35 +++---
 browser/components/preferences/tests/browser.ini   |   1 +
 .../preferences/tests/browser_security-3.js        | 130 +++++++++++++++++++++
 3 files changed, 152 insertions(+), 14 deletions(-)

diff --git a/browser/components/preferences/privacy.js b/browser/components/preferences/privacy.js
index 35b37b099e937..e5d051ea96035 100644
--- a/browser/components/preferences/privacy.js
+++ b/browser/components/preferences/privacy.js
@@ -2311,24 +2311,21 @@ var gPrivacyPane = {
       safeBrowsingPhishingPref.value = enableSafeBrowsing.checked;
       safeBrowsingMalwarePref.value = enableSafeBrowsing.checked;
 
-      if (enableSafeBrowsing.checked) {
-        blockDownloads.removeAttribute("disabled");
-        if (blockDownloads.checked) {
-          blockUncommonUnwanted.removeAttribute("disabled");
-        }
-      } else {
-        blockDownloads.setAttribute("disabled", "true");
-        blockUncommonUnwanted.setAttribute("disabled", "true");
-      }
+      blockDownloads.disabled =
+        !enableSafeBrowsing.checked || blockDownloadsPref.locked;
+      blockUncommonUnwanted.disabled =
+        !blockDownloads.checked ||
+        !enableSafeBrowsing.checked ||
+        blockUnwantedPref.locked ||
+        blockUncommonPref.locked;
     });
 
     blockDownloads.addEventListener("command", function() {
       blockDownloadsPref.value = blockDownloads.checked;
-      if (blockDownloads.checked) {
-        blockUncommonUnwanted.removeAttribute("disabled");
-      } else {
-        blockUncommonUnwanted.setAttribute("disabled", "true");
-      }
+      blockUncommonUnwanted.disabled =
+        !blockDownloads.checked ||
+        blockUnwantedPref.locked ||
+        blockUncommonPref.locked;
     });
 
     blockUncommonUnwanted.addEventListener("command", function() {
@@ -2378,6 +2375,16 @@ var gPrivacyPane = {
     }
     blockUncommonUnwanted.checked =
       blockUnwantedPref.value && blockUncommonPref.value;
+
+    if (safeBrowsingPhishingPref.locked || safeBrowsingMalwarePref.locked) {
+      enableSafeBrowsing.disabled = true;
+    }
+    if (blockDownloadsPref.locked) {
+      blockDownloads.disabled = true;
+    }
+    if (blockUnwantedPref.locked || blockUncommonPref.locked) {
+      blockUncommonUnwanted.disabled = true;
+    }
   },
 
   /**
diff --git a/browser/components/preferences/tests/browser.ini b/browser/components/preferences/tests/browser.ini
index 6f6bcc972d89e..f802bbabd3397 100644
--- a/browser/components/preferences/tests/browser.ini
+++ b/browser/components/preferences/tests/browser.ini
@@ -113,6 +113,7 @@ skip-if =
 [browser_searchsuggestions.js]
 [browser_security-1.js]
 [browser_security-2.js]
+[browser_security-3.js]
 [browser_spotlight.js]
 [browser_site_login_exceptions.js]
 [browser_site_login_exceptions_policy.js]
diff --git a/browser/components/preferences/tests/browser_security-3.js b/browser/components/preferences/tests/browser_security-3.js
new file mode 100644
index 0000000000000..4e7c5a1909105
--- /dev/null
+++ b/browser/components/preferences/tests/browser_security-3.js
@@ -0,0 +1,130 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+add_task(async function setup() {
+  await openPreferencesViaOpenPreferencesAPI("privacy", { leaveOpen: true });
+  registerCleanupFunction(async function() {
+    Services.prefs.unlockPref("browser.safebrowsing.phishing.enabled");
+    Services.prefs.unlockPref("browser.safebrowsing.malware.enabled");
+    Services.prefs.unlockPref("browser.safebrowsing.downloads.enabled");
+    Services.prefs.unlockPref(
+      "browser.safebrowsing.downloads.remote.block_potentially_unwanted"
+    );
+    Services.prefs.unlockPref(
+      "browser.safebrowsing.downloads.remote.block_uncommon"
+    );
+    BrowserTestUtils.removeTab(gBrowser.selectedTab);
+  });
+});
+
+// This test just reloads the preferences page for the various tests.
+add_task(async function() {
+  Services.prefs.lockPref("browser.safebrowsing.phishing.enabled");
+  Services.prefs.lockPref("browser.safebrowsing.malware.enabled");
+  Services.prefs.lockPref("browser.safebrowsing.downloads.enabled");
+  Services.prefs.lockPref(
+    "browser.safebrowsing.downloads.remote.block_potentially_unwanted"
+  );
+  Services.prefs.lockPref(
+    "browser.safebrowsing.downloads.remote.block_uncommon"
+  );
+
+  gBrowser.reload();
+  await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
+
+  let doc = gBrowser.selectedBrowser.contentDocument;
+  is(
+    doc.getElementById("enableSafeBrowsing").disabled,
+    true,
+    "Safe browsing should be disabled"
+  );
+  is(
+    doc.getElementById("blockDownloads").disabled,
+    true,
+    "Block downloads should be disabled"
+  );
+  is(
+    doc.getElementById("blockUncommonUnwanted").disabled,
+    true,
+    "Block common unwanted should be disabled"
+  );
+
+  Services.prefs.unlockPref("browser.safebrowsing.phishing.enabled");
+  Services.prefs.unlockPref("browser.safebrowsing.malware.enabled");
+
+  gBrowser.reload();
+  await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
+
+  doc = gBrowser.selectedBrowser.contentDocument;
+
+  let checkbox = doc.getElementById("enableSafeBrowsing");
+  checkbox.scrollIntoView();
+  EventUtils.synthesizeMouseAtCenter(
+    checkbox,
+    {},
+    gBrowser.selectedBrowser.contentWindow
+  );
+
+  is(
+    doc.getElementById("blockDownloads").disabled,
+    true,
+    "Block downloads should be disabled"
+  );
+  is(
+    doc.getElementById("blockUncommonUnwanted").disabled,
+    true,
+    "Block common unwanted should be disabled"
+  );
+
+  EventUtils.synthesizeMouseAtCenter(
+    checkbox,
+    {},
+    gBrowser.selectedBrowser.contentWindow
+  );
+
+  is(
+    doc.getElementById("blockDownloads").disabled,
+    true,
+    "Block downloads should be disabled"
+  );
+  is(
+    doc.getElementById("blockUncommonUnwanted").disabled,
+    true,
+    "Block common unwanted should be disabled"
+  );
+
+  Services.prefs.unlockPref("browser.safebrowsing.downloads.enabled");
+
+  gBrowser.reload();
+  await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
+
+  doc = gBrowser.selectedBrowser.contentDocument;
+
+  checkbox = doc.getElementById("blockDownloads");
+  checkbox.scrollIntoView();
+  EventUtils.synthesizeMouseAtCenter(
+    checkbox,
+    {},
+    gBrowser.selectedBrowser.contentWindow
+  );
+
+  is(
+    doc.getElementById("blockUncommonUnwanted").disabled,
+    true,
+    "Block common unwanted should be disabled"
+  );
+
+  EventUtils.synthesizeMouseAtCenter(
+    checkbox,
+    {},
+    gBrowser.selectedBrowser.contentWindow
+  );
+
+  is(
+    doc.getElementById("blockUncommonUnwanted").disabled,
+    true,
+    "Block common unwanted should be disabled"
+  );
+});

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits