1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
<!DOCTYPE HTML>
<!-- Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ -->
<html>
<head>
<title>Test Tracking Protection with and without Safe Browsing (Bug #1157081)</title>
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
</head>
<body>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">
<script class="testbody" type="text/javascript">
var mainWindow = window.browsingContext.topChromeWindow;
var contentPage = "http://mochi.test:8888/chrome/toolkit/components/url-classifier/tests/mochitest/classifiedAnnotatedPBFrame.html";
const {UrlClassifierTestUtils} = ChromeUtils.importESModule(
"resource://testing-common/UrlClassifierTestUtils.sys.mjs"
);
const {TestUtils} = ChromeUtils.importESModule(
"resource://testing-common/TestUtils.sys.mjs"
);
function testOnWindow(aCallback) {
var win = mainWindow.OpenBrowserWindow();
win.addEventListener("load", function() {
TestUtils.topicObserved("browser-delayed-startup-finished",
subject => subject == win).then(() => {
win.addEventListener("DOMContentLoaded", function onInnerLoad() {
if (win.content.location.href != contentPage) {
win.gBrowser.loadURI(Services.io.newURI(contentPage), {
triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({}),
});
return;
}
win.removeEventListener("DOMContentLoaded", onInnerLoad, true);
win.content.addEventListener("load", function innerLoad2() {
win.content.removeEventListener("load", innerLoad2);
SimpleTest.executeSoon(function() { aCallback(win); });
}, false, true);
}, true);
SimpleTest.executeSoon(function() {
win.gBrowser.loadURI(Services.io.newURI(contentPage), {
triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({}),
});
});
});
}, {capture: true, once: true});
}
var badids = [
"badscript",
];
function checkLoads(aWindow, aBlocked) {
var win = aWindow.content;
is(win.document.getElementById("badscript").dataset.touched, aBlocked ? "no" : "yes", "Should not load tracking javascript");
}
SpecialPowers.pushPrefEnv(
{"set": [["urlclassifier.trackingTable", "moztest-track-simple"],
["privacy.trackingprotection.enabled", true],
["browser.safebrowsing.malware.enabled", false],
["browser.safebrowsing.phishing.enabled", false],
["channelclassifier.allowlist_example", true]]},
test);
function test() {
SimpleTest.registerCleanupFunction(UrlClassifierTestUtils.cleanupTestTrackers);
UrlClassifierTestUtils.addTestTrackers().then(() => {
// Safe Browsing turned OFF, tracking protection should work nevertheless
testOnWindow(function(aWindow) {
checkLoads(aWindow, true);
aWindow.close();
// Safe Browsing turned ON, tracking protection should still work
SpecialPowers.setBoolPref("browser.safebrowsing.phishing.enabled", true);
testOnWindow(function(aWindow1) {
checkLoads(aWindow1, true);
aWindow1.close();
SimpleTest.finish();
});
});
});
}
SimpleTest.waitForExplicitFinish();
</script>
</pre>
<iframe id="testFrame" width="100%" height="100%" onload=""></iframe>
</body>
</html>
|