<!DOCTYPE html>
<html>
  <head>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src="/resources/get-host-info.js"></script>
  </head>
  <body>
  <script>
  if (window.location.origin != get_host_info().HTTPS_ORIGIN) {
      window.location = get_host_info().HTTPS_ORIGIN + window.location.pathname;
  } else {
      testRunner.overridePreference("WebKitAllowRunningInsecureContent", true);
      async_test(function () {
          window.onmessage = this.step_func(function (event) {
              if (event.data.policy === "no-referrer-when-downgrade") {
                  assert_equals(event.data.referrer, "");
                  this.done();
              }
          });
      }, "no-referrer-when-downgrade attribute on iframe");
  }
  </script>

  <iframe src="http://127.0.0.1:8000/security/resources/referrer-attr-iframe-target.html#no-referrer-when-downgrade" referrerpolicy="no-referrer-when-downgrade" />
</body>
</html>
