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

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

if (window.testRunner) {
    testRunner.setStatisticsShouldDowngradeReferrer(false, function () {
        // Should be the empty string
        let expected = "";
        let img = new Image();
        img.referrerPolicy = "no-referrer-when-downgrade";
        img.onload = function() { testPassed('referrer is "' + expected + '"'); finishJSTest(); }
        img.onerror = function() { testFailed("referrer is not as expected"); finishJSTest(); }
        img.src = "http://127.0.0.1:8000/referrer-policy/resources/image.py?expected=" + expected;
        if (window.internals)
            internals.setResourceLoadStatisticsEnabled(true);
    });
}

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