<!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 origin 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 origin
    shouldBeEqualToString("referrer", "https://127.0.0.1:8443/");
    finishJSTest();
}

if (window.testRunner) {
    testRunner.setStatisticsShouldDowngradeReferrer(false, function () { downgradeReferrerCallback('origin', 'localhost')});
}
</script>
</body>
</html>
