<!DOCTYPE html>
<!--
  Copyright 2022 The Cobalt Authors. All Rights Reserved.

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<head>
  <title>Verify that XHR on workers correctly follows CSP</title>
  <script src='black_box_js_test_utils.js'></script>
</head>

<body style="background-color: white;">
  <h1>
    <span>ID element</span>
  </h1>
  <script>
  var worker = new Worker('worker_csp_test.js');
  worker.onmessage = function (event) {
    notReached();
  };

  window.setTimeout(
    () => {
      worker.terminate();
      onEndTest();
    }, 250);
  </script>
</body>
