<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Resource Timing TAO - "null" and opaque origin</title>
<link rel="author" title="Google" href="http://www.google.com/" />
<link rel="help" href="https://www.w3.org/TR/resource-timing-2/#timing-allow-origin"/>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>

const t = async_test("Test null TAO value with opaque origins");
window.addEventListener("message", t.step_func_done(e=>{
    assert_equals(e.data, "PASS");
}));
</script>
</head>
<body>
<h1>Description</h1>
<p>This test validates that for a cross origin resource, the timing allow check algorithm will succeed when the value of Timing-Allow-Origin is null and the origin is an opaque origin.</p>
<div id="log"></div>
<iframe id="frameContext"></iframe>
<script>
let frame_content = "data:text/html;utf8,<body>" +
                    "<script>" +
                    "const url = '{{location[scheme]}}://{{host}}:{{ports[http][1]}}/resource-timing/resources/TAOResponse.py?tao=null';" +
                    "const observe = (list, observer) => {" +
                    "  const entry = list.getEntries()[0];" +
                    "  const sum = entry.redirectStart + entry.redirectEnd + entry.domainLookupStart + entry.domainLookupEnd + entry.connectStart +" +
                    "              entry.connectEnd + entry.secureConnectionStart + entry.requestStart + entry.responseStart + entry.transferSize +" +
                    "              entry.encodedBodySize + entry.decodedBodySize;" +
                    "  const result = sum != 0 ? 'PASS' : 'FAIL';" +
                    "  window.parent.postMessage(result, '*');" +
                    "};" +
                    "let observer = new PerformanceObserver(observe);" +
                    "observer.observe({ entryTypes: ['resource'] });" +
                    "fetch(url);" +
                    "</" + "script></body>";
document.getElementById("frameContext").src = frame_content;
</script>
</body>
</html>
