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