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

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

function loadImage() {
    // Should be the empty string because we are cross-origin.
    let expected = "";
    let img = new Image();
    img.referrerPolicy = "same-origin";
    img.onload = function() { testPassed('referrer is "' + expected + '"'); finishJSTest(); }
    img.onerror = function() { testFailed("referrer is not as expected"); finishJSTest(); }
    img.src = "http://localhost:8000/referrer-policy/resources/image.php?expected=" + expected;
    if (window.internals)
        internals.setResourceLoadStatisticsEnabled(true);
}

</script>
</body>
</html>
