summaryrefslogtreecommitdiffstats
path: root/browser/components/resistfingerprinting/test/browser/browser_netInfo.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/resistfingerprinting/test/browser/browser_netInfo.js')
-rw-r--r--browser/components/resistfingerprinting/test/browser/browser_netInfo.js64
1 files changed, 64 insertions, 0 deletions
diff --git a/browser/components/resistfingerprinting/test/browser/browser_netInfo.js b/browser/components/resistfingerprinting/test/browser/browser_netInfo.js
new file mode 100644
index 0000000000..c91caa5bc3
--- /dev/null
+++ b/browser/components/resistfingerprinting/test/browser/browser_netInfo.js
@@ -0,0 +1,64 @@
+/**
+ * Bug 1372072 - A test case for check whether network information API has been
+ * spoofed correctly when 'privacy.resistFingerprinting' is true;
+ */
+
+async function testWindow() {
+ // Open a tab to test network information in a content.
+ let tab = await BrowserTestUtils.openNewForegroundTab(
+ gBrowser,
+ TEST_PATH + "file_dummy.html"
+ );
+
+ await SpecialPowers.spawn(tab.linkedBrowser, [], async function () {
+ ok("connection" in content.navigator, "navigator.connection should exist");
+
+ is(
+ content.navigator.connection.type,
+ "unknown",
+ "The connection type is spoofed correctly"
+ );
+ });
+
+ BrowserTestUtils.removeTab(tab);
+}
+
+async function testWorker() {
+ // Open a tab to test network information in a worker.
+ let tab = await BrowserTestUtils.openNewForegroundTab(
+ gBrowser,
+ TEST_PATH + "file_dummy.html"
+ );
+
+ await SpecialPowers.spawn(tab.linkedBrowser, [], async function () {
+ await new Promise(resolve => {
+ let worker = new content.Worker("file_workerNetInfo.js");
+
+ worker.onmessage = function (e) {
+ if (e.data.type == "status") {
+ ok(e.data.status, e.data.msg);
+ } else if (e.data.type == "finish") {
+ resolve();
+ } else {
+ ok(false, "Unknown message type");
+ resolve();
+ }
+ };
+ worker.postMessage({ type: "runTests" });
+ });
+ });
+
+ BrowserTestUtils.removeTab(tab);
+}
+
+add_task(async function runTest() {
+ await SpecialPowers.pushPrefEnv({
+ set: [
+ ["privacy.resistFingerprinting", true],
+ ["dom.netinfo.enabled", true],
+ ],
+ });
+
+ await testWindow();
+ await testWorker();
+});