<!DOCTYPE html>
<html>
  <head>
    <title>CSS integration - Font from imported stylesheet (internal)</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src="/common/utils.js"></script>
    <!-- Common global functions for referrer-policy tests. -->
    <script src="/common/security-features/resources/common.js"></script>
    <script src="/referrer-policy/generic/referrer-policy-test-case.js"></script>
    <meta name="referrer" content="origin">
  </head>
  <body>
    <p>Check that resources from stylesheets (imported from internal
    stylesheets) are loaded with the referrer and referrer policy from from the
    imported style sheet.</p>

    <div class="styled"></div>

    <script>
      promise_test(function(css_test) {
        let id = token();
        let url_prefix = location.protocol + "//www1." + location.hostname + ":" +
                         location.port + "/common/security-features/subresource/";
        let css_url = url_prefix + "stylesheet.py?id=" + id + "&type=font";
        let font_url = url_prefix + "font.py?report-headers&id=" + id;

        let style = document.createElement("style");
        style.textContent = "@import url('" + css_url + "');";
        document.head.appendChild(style);
        return timeoutPromise(css_test, 1000)
          .then(() => requestViaXhr(font_url))
          .then(function(message) {
              assert_own_property(message, "headers");
              assert_own_property(message, "referrer");
              assert_equals(message.referrer, css_url);
            });
      }, "Font from imported stylesheet (internal).");
    </script>

    <div id="log"></div>
  </body>
</html>
