<!DOCTYPE html>
<html>
<head>
<script src="/js-test-resources/js-test.js"></script>
</head>
<body>
<script>
description("Tests the behavior of strict-origin referrer policy when cross origin from HTTPS to HTTP.");
jsTestIsAsync = true;

if (window.internals) {
    internals.settings.setAllowDisplayOfInsecureContent(true);
    internals.setResourceLoadStatisticsEnabled(false);
}

window.onmessage = function(event) {
    referrer = event.data.referrer;
    // Should be the empty string because we are going from HTTPS to HTTP.
    shouldBeEqualToString("referrer", "");
    if (window.internals)
        internals.setResourceLoadStatisticsEnabled(true);
    finishJSTest();
}
</script>
<iframe src="http://localhost:8000/referrer-policy/resources/document.html" referrerpolicy="strict-origin"></iframe>
</body>
</html>
