<!DOCTYPE html><metacharset=utf-8><title>Multiple globals for Worker constructor: COEP reports</title><scriptsrc="/resources/testharness.js"></script><scriptsrc="/resources/testharnessreport.js"></script><!-- This is the entry global --><iframesrc="incumbent/incumbent.html"></iframe><buttononclick=""id="button">Hello</button><script>asyncfunctionobserveReports(global){constreports=[];constobserver=newglobal.ReportingObserver((rs)=>{for(constrofrs){reports.push(r.toJSON());}});observer.observe();// Wait 5000ms for reports to settle.awaitnewPromise(r=>step_timeout(r,5000));returnreports;}async_test((t)=>{onload=t.step_func(()=>{Promise.all([observeReports(window),observeReports(frames[0]),observeReports(frames[0].frames[0])]).then(t.step_func_done(([entry,incumbent,current])=>{assert_equals(entry.length,0);assert_equals(incumbent.length,0);assert_equals(current.length,1);constreport=current[0];assert_equals(report.type,'coep');assert_equals(report.url,newURL('current/current.html',location.href).href);assert_equals(report.body.type,'worker initialization');assert_equals(report.body.blockedURL,newURL('current/worker.js',location.href).href);assert_equals(report.body.disposition,'enforce');}));frames[0].hello();});onmessage=t.unreached_func('worker should have been blocked by COEP');});</script>