| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="/js-test-resources/js-test.js"></script> |
| <script src="resources/util.js"></script> |
| </head> |
| <body> |
| <script> |
| description("Tests that only the origin is sent as referrer for prevalent resources without user interaction."); |
| jsTestIsAsync = true; |
| testRunner.dumpChildFramesAsText(); |
| |
| function openIframe(url, onLoadHandler) { |
| const element = document.createElement("iframe"); |
| element.src = url; |
| if (onLoadHandler) { |
| element.onload = onLoadHandler; |
| } |
| document.body.appendChild(element); |
| } |
| |
| var referrer; |
| testRunner.setUseITPDatabase(true); |
| setEnableFeature(true, function() { |
| if (testRunner.isStatisticsPrevalentResource("http://localhost")) |
| testFailed("Localhost was classified as prevalent resource before the test started."); |
| |
| fetch("resources/echo-referrer.php").then(function(response) { |
| return response.text(); |
| }).then(function(data) { |
| referrer = data; |
| shouldBeEqualToString("referrer", "http://127.0.0.1:8000/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-requests-database.html"); |
| |
| testRunner.setStatisticsPrevalentResource("http://localhost", true, function() { |
| if (!testRunner.isStatisticsPrevalentResource("http://localhost")) |
| testFailed("Host did not get set as prevalent resource."); |
| |
| testRunner.statisticsUpdateCookieBlocking(function() { |
| fetch("http://localhost:8000/resourceLoadStatistics/resources/echo-referrer.php").then(function(response) { |
| return response.text(); |
| }).then(function(data) { |
| referrer = data; |
| shouldBeEqualToString("referrer", "http://127.0.0.1:8000/"); |
| |
| openIframe("resources/redirect.php?redirectTo=http://localhost:8000/resourceLoadStatistics/resources/echo-referrer.php", function() { |
| setEnableFeature(false, finishJSTest); |
| }); |
| |
| }).catch(function(error) { |
| console.log(error.message); |
| setEnableFeature(false, finishJSTest); |
| }); |
| }); |
| }); |
| }).catch(function(error) { |
| console.log(error.message); |
| setEnableFeature(false, finishJSTest); |
| }); |
| }); |
| </script> |
| </body> |
| </html> |