<!DOCTYPE html>
<html>
<head>
<meta name='referrer' content='strict-origin'>
<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"></iframe>
</body>
</html>
