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
--- 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();
+ }
+});