test_gpc.html (1942B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Test for Global Privacy Control headers</title> 5 <script src="/tests/SimpleTest/SimpleTest.js"></script> 6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 7 </head> 8 <body> 9 <script class="testbody" type="application/javascript"> 10 11 add_task(async function testGlobalPrivacyControlDisabled() { 12 await SpecialPowers.pushPrefEnv({ set: [ 13 ["privacy.globalprivacycontrol.enabled", false], 14 ["privacy.globalprivacycontrol.functionality.enabled", true], 15 ]}) 16 .then(() => fetch("file_gpc_server.sjs")) 17 .then((response) => response.text()) 18 .then((response) => { 19 is(response, "false", "GPC disabled so header unsent"); 20 is(navigator.globalPrivacyControl, false, "GPC disabled so navigator property is 0"); 21 22 let worker = new Worker(window.URL.createObjectURL(new Blob(["postMessage(navigator.globalPrivacyControl);"]))); 23 return new Promise((resolve) => { worker.onmessage = (e) => { resolve(e.data) } }); 24 }) 25 .then((response) => { 26 is(response, false, "GPC disabled so worker's navigator property is 0"); 27 }); 28 }); 29 30 add_task(async function testGlobalPrivacyControlEnabled() { 31 await SpecialPowers.pushPrefEnv({ set: [ 32 ["privacy.globalprivacycontrol.enabled", true], 33 ["privacy.globalprivacycontrol.functionality.enabled", true], 34 ]}) 35 .then(() => fetch("file_gpc_server.sjs")) 36 .then((response) => response.text()) 37 .then((response) => { 38 is(response, "true", "GPC enabled so header sent and received"); 39 is(navigator.globalPrivacyControl, true, "GPC enabled so navigator property is 1"); 40 41 let worker = new Worker(window.URL.createObjectURL(new Blob(["postMessage(navigator.globalPrivacyControl);"]))); 42 return new Promise((resolve) => { worker.onmessage = (e) => { resolve(e.data) } }); 43 }) 44 .then((response) => { 45 is(response, true, "GPC enabled so worker's navigator property is 1"); 46 }); 47 }); 48 49 </script> 50 </body> 51 </html>