<!DOCTYPE html>
<html>
<head>
<meta name='referrer' content='strict-origin-when-cross-origin'>
<script src="/js-test-resources/js-test.js"></script>
</head>
<body>
<script>
description("Tests the behavior of strict-origin-when-cross-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 cross-origin and 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"></iframe>
</body>
</html>
