tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

browser_test_gpc_privateBrowsingMode.js (2330B)


      1 "use strict";
      2 
      3 const kTestPath = getRootDirectory(gTestPath).replace(
      4  "chrome://mochitests/content",
      5  "https://example.com"
      6 );
      7 const kTestURI = kTestPath + "file_empty.html";
      8 
      9 add_task(async function test_privateModeGPCEnabled() {
     10  await SpecialPowers.pushPrefEnv({
     11    set: [
     12      ["privacy.globalprivacycontrol.enabled", false],
     13      ["privacy.globalprivacycontrol.pbmode.enabled", true],
     14      ["privacy.globalprivacycontrol.functionality.enabled", true],
     15    ],
     16  });
     17  let win = await BrowserTestUtils.openNewBrowserWindow({ private: true });
     18  let tab = await BrowserTestUtils.openNewForegroundTab(win.gBrowser, kTestURI);
     19  let browser = win.gBrowser.getBrowserForTab(tab);
     20  let result = await SpecialPowers.spawn(browser, [], async function () {
     21    return content.window
     22      .fetch("file_gpc_server.sjs")
     23      .then(response => response.text())
     24      .then(response => {
     25        is(response, "true", "GPC header provided");
     26        is(
     27          content.window.navigator.globalPrivacyControl,
     28          true,
     29          "GPC on navigator"
     30        );
     31        // Bug 1320796: Service workers are not enabled in PB Mode
     32        return true;
     33      });
     34  });
     35  ok(result, "Promise chain resolves in content process");
     36  win.close();
     37 });
     38 
     39 add_task(async function test_privateModeGPCDisabled() {
     40  await SpecialPowers.pushPrefEnv({
     41    set: [
     42      ["privacy.globalprivacycontrol.enabled", false],
     43      ["privacy.globalprivacycontrol.pbmode.enabled", false],
     44      ["privacy.globalprivacycontrol.functionality.enabled", true],
     45    ],
     46  });
     47  let win = await BrowserTestUtils.openNewBrowserWindow({ private: true });
     48  let tab = await BrowserTestUtils.openNewForegroundTab(win.gBrowser, kTestURI);
     49  let browser = win.gBrowser.getBrowserForTab(tab);
     50  let result = await SpecialPowers.spawn(browser, [], async function () {
     51    return content.window
     52      .fetch("file_gpc_server.sjs")
     53      .then(response => response.text())
     54      .then(response => {
     55        isnot(response, "true", "GPC header provided");
     56        isnot(
     57          content.window.navigator.globalPrivacyControl,
     58          true,
     59          "GPC on navigator"
     60        );
     61        // Bug 1320796: Service workers are not enabled in PB Mode
     62        return true;
     63      });
     64  });
     65  ok(result, "Promise chain resolves in content process");
     66  win.close();
     67 });