<!DOCTYPE html>
<html>
<head>
  <script src="/resources/testharness.js"></script>
  <script src="/resources/testharnessreport.js"></script>
</head>
<body>
  <script>
  async_test(function () {
      var worker = new Worker('http://127.0.0.1:8000/security/contentSecurityPolicy/resources/worker.php?type=multiple-headers');
      var evalBlocked = false;
      var xhrBlocked = false;
      var numMessages = 0;

      worker.onmessage = this.step_func(function (event) {
          numMessages++;
          if (event.data === "xhr blocked")
              xhrBlocked = true;
          if (event.data === "eval blocked")
              evalBlocked = true;

          if (numMessages === 2) {
              assert_true(xhrBlocked);
              assert_true(evalBlocked);
              this.done();
          }
      });
  }, "Worker can have multiple CSP headers");
  </script>
</body>
</html>
