<!DOCTYPE html><!-- webkit-test-runner [ dumpJSConsoleLogInStdErr=true ] -->
<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.setAllowRunningOfInsecureContent(true);

function checkReferrer(value) {
    referrer = value;
    // Should be the empty string
    shouldBeEqualToString("referrer", "");
    finishJSTest();
}

if (window.testRunner) {
    testRunner.setStatisticsShouldDowngradeReferrer(false, function () {
      downgradeReferrerCallback('no-referrer-when-downgrade', 'localhost')});
}
</script>
</body>
</html>
