Bug 1384330 - Part 2: Add a test case for testing that navigator.mozAddonManager is correctly blocked when pref 'privacy.resistFingerprinting.block_mozAddonManager' is true. r?mossop,arthuredelstein draft
authorTim Huang <tihuang@mozilla.com>
Thu, 14 Sep 2017 16:49:33 +0800
changeset 666023 7ab2f9c892639866ba1b5cd20d0466f7739c5f63
parent 666022 8b1612f1bb9940ab810555ee17cbf4365b7d2153
child 731949 620a269245b948f4b2c68279d8280aebbdea1f1f
push id80243
push userbmo:tihuang@mozilla.com
push dateSun, 17 Sep 2017 00:56:20 +0000
reviewersmossop, arthuredelstein
bugs1384330
milestone57.0a1
Bug 1384330 - Part 2: Add a test case for testing that navigator.mozAddonManager is correctly blocked when pref 'privacy.resistFingerprinting.block_mozAddonManager' is true. r?mossop,arthuredelstein The patch adds a test case which will first test with the pref off to see that navigator.mozAddonManager can be accessed successfully. And then turn the pref on to see that whether navigator.mozAddonManager is blocked. MozReview-Commit-ID: 3nptUqdg7p7
browser/components/resistfingerprinting/test/browser/browser.ini
browser/components/resistfingerprinting/test/browser/browser_block_mozAddonManager.js
--- a/browser/components/resistfingerprinting/test/browser/browser.ini
+++ b/browser/components/resistfingerprinting/test/browser/browser.ini
@@ -3,16 +3,17 @@ tags = resistfingerprinting
 support-files =
   file_dummy.html
   file_navigator.html
   file_navigatorWorker.js
   file_workerNetInfo.js
   file_workerPerformance.js
   head.js
 
+[browser_block_mozAddonManager.js]
 [browser_navigator.js]
 [browser_netInfo.js]
 [browser_performanceAPI.js]
 [browser_roundedWindow_dialogWindow.js]
 [browser_roundedWindow_newWindow.js]
 [browser_roundedWindow_open_max.js]
 [browser_roundedWindow_open_mid.js]
 [browser_roundedWindow_open_min.js]
new file mode 100644
--- /dev/null
+++ b/browser/components/resistfingerprinting/test/browser/browser_block_mozAddonManager.js
@@ -0,0 +1,35 @@
+/**
+ * Bug 1384330 - A test case for making sure the navigator.mozAddonManager will
+ *   be blocked when pref 'privacy.resistFingerprinting.block_mozAddonManager' is true.
+ */
+
+const TEST_PATH = "https://example.com/browser/browser/" +
+                  "components/resistfingerprinting/test/browser/"
+
+add_task(async function test() {
+  await SpecialPowers.pushPrefEnv({"set":
+    [["extensions.webapi.testing", true]]
+  });
+
+  for (let pref of [false, true]) {
+    await SpecialPowers.pushPrefEnv({"set":
+      [["privacy.resistFingerprinting.block_mozAddonManager", pref]]
+    });
+
+    let tab = await BrowserTestUtils.openNewForegroundTab(
+      gBrowser, TEST_PATH + "file_dummy.html");
+
+    await ContentTask.spawn(tab.linkedBrowser, pref, function(aPref) {
+      if (aPref) {
+        is(content.navigator.mozAddonManager, undefined,
+          "The navigator.mozAddonManager should not exist when the pref is on.");
+      } else {
+        ok(content.navigator.mozAddonManager,
+          "The navigator.mozAddonManager should exist when the pref is off.");
+      }
+    });
+
+    await BrowserTestUtils.removeTab(tab);
+    await SpecialPowers.popPrefEnv();
+  }
+});