blob: 154af65b08bb3cd3eddce1bd5e2adf0552c0dc91 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta name="referrer" content="unsafe-url">
<script src="/js-test-resources/js-test.js"></script>
<script src="/cookies/resources/cookie-utilities.js"></script>
<script src="resources/util.js"></script>
</head>
<body onload="setTimeout('runTest()', 0)">
<script>
description("Check that document.referrer is downgraded to the eTLD+1 after a cross-site navigation with link query.");
jsTestIsAsync = true;
let numberOfTries = 0;
function testReferrer() {
if (document.referrer === prevalentResourceOrigin + "/") {
testPassed("The referrer is downgraded.");
setEnableFeature(false, finishJSTest);
} else if (++numberOfTries <= 5)
setTimeout(testReferrer, 200);
else {
testFailed("The referrer is not downgraded: " + document.referrer);
setEnableFeature(false, finishJSTest);
}
}
function navigateSameOriginToAddQuery() {
document.location.href = prevalentResourceOrigin + "/resourceLoadStatistics/downgraded-referrer-for-navigation-with-link-query-from-prevalent-resource.html?link=query";
}
function navigateCrossOrigin() {
document.location.href = destinationOrigin + "/resourceLoadStatistics/downgraded-referrer-for-navigation-with-link-query-from-prevalent-resource.html";
}
const destinationOrigin = "http://localhost:8000";
const prevalentResourceOrigin = "http://127.0.0.1:8000";
function runTest() {
if (document.location.origin === prevalentResourceOrigin && document.location.search === "") {
navigateSameOriginToAddQuery();
} else if (document.location.origin === prevalentResourceOrigin) {
setEnableFeature(true, function () {
testRunner.setStatisticsPrevalentResource(prevalentResourceOrigin, true, function() {
if (!testRunner.isStatisticsPrevalentResource(prevalentResourceOrigin))
testFailed("Host did not get set as prevalent resource.");
testRunner.statisticsUpdateCookieBlocking(navigateCrossOrigin);
});
});
} else {
testReferrer();
}
}
</script>
</body>
</html>