forked from mirrors/gecko-dev
The antitracking test mini-framework is extended to run the non-blocking callback of the tests three times, each time with a unique combination of the network.cookie.cookieBehavior and browser.contentblocking.enabled prefs that would cause the reject tracker cookie behavior feature to get disabled. This works seamlessly for all test cases that do not make any assumptions around how many times their callbacks are executed. Note that browser_imageCache.js depends on the number of times its non-blocking callback gets executed. As a result of this, this test is split into three tests to test the three possible combinations of the pref for the non-blocking callback.
57 lines
1.7 KiB
JavaScript
57 lines
1.7 KiB
JavaScript
ChromeUtils.import("resource://gre/modules/Services.jsm");
|
|
|
|
add_task(async function() {
|
|
info("Starting subResources test");
|
|
|
|
await SpecialPowers.flushPrefEnv();
|
|
await SpecialPowers.pushPrefEnv({"set": [
|
|
["browser.contentblocking.enabled", true],
|
|
["network.cookie.cookieBehavior", Ci.nsICookieService.BEHAVIOR_REJECT_TRACKER],
|
|
["privacy.trackingprotection.enabled", false],
|
|
["privacy.trackingprotection.pbmode.enabled", false],
|
|
["privacy.trackingprotection.annotate_channels", true],
|
|
]});
|
|
|
|
await UrlClassifierTestUtils.addTestTrackers();
|
|
|
|
let tab = BrowserTestUtils.addTab(gBrowser, TEST_TOP_PAGE);
|
|
gBrowser.selectedTab = tab;
|
|
|
|
let browser = gBrowser.getBrowserForTab(tab);
|
|
await BrowserTestUtils.browserLoaded(browser);
|
|
|
|
await ContentTask.spawn(browser,
|
|
{ page: TEST_3RD_PARTY_PAGE_WITH_SVG,
|
|
},
|
|
async function(obj) {
|
|
await new content.Promise(resolve => {
|
|
let ifr = content.document.createElement("iframe");
|
|
|
|
content.addEventListener("message", function msg(event) {
|
|
if (event.data.type == "finish") {
|
|
content.removeEventListener("message", msg);
|
|
resolve();
|
|
return;
|
|
}
|
|
|
|
ok(false, "Unknown message");
|
|
});
|
|
|
|
content.document.body.appendChild(ifr);
|
|
ifr.src = obj.page;
|
|
});
|
|
});
|
|
|
|
ok(true, "No crash, hopefully!");
|
|
BrowserTestUtils.removeTab(tab);
|
|
|
|
UrlClassifierTestUtils.cleanupTestTrackers();
|
|
});
|
|
|
|
add_task(async function() {
|
|
info("Cleaning up.");
|
|
await new Promise(resolve => {
|
|
Services.clearData.deleteData(Ci.nsIClearDataService.CLEAR_ALL, value => resolve());
|
|
});
|
|
});
|
|
|