<!DOCTYPE html>
<!-- TODO(kristijanburnik): Remove subres. duplication. Reuse a template. -->
<html>
  <head>
    <title>Worker messaging - same-origin Worker request</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <!-- Common global functions for referrer-policy tests. -->
    <script src="/referrer-policy/generic/common.js"></script>
  </head>
  <body>
    <h1>Worker messaging - same-origin Worker request</h1>
    <p>If you can read JSON encoded HTTP request headers of the Worker below,
       the messaging works as expected.</p>

    <pre id="received_message">Running...</pre>

    <script>
      var messaging_test = async_test("Worker is responding with HTTP headers");
      var urlPath = '/referrer-policy/generic/subresource/worker.py';
      var url = location.protocol + "//" + location.hostname + ":" +
                location.port + urlPath;
      queryWorker(url, function(message) {
        var pre = document.getElementById('received_message')
        var headers = message.headers;
        pre.innerHTML = "";
        pre.innerHTML += url + ":\n\n";
        pre.innerHTML += JSON.stringify(headers, null, 2) + "\n\n"
        messaging_test.step(function() {
          assert_own_property(headers, "host")
          assert_own_property(headers, "connection")
        });
        messaging_test.done();
      });
    </script>

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