sandboxed_iframe.https.window.js (891B)
1 // META: script=/resources/testdriver.js 2 // META: script=/resources/testdriver-vendor.js 3 4 'use strict'; 5 6 promise_test(async (t) => { 7 let iframe = document.createElement('iframe'); 8 await new Promise(resolve => { 9 iframe.src = '../resources/open-in-iframe.html'; 10 iframe.sandbox.add('allow-scripts'); 11 iframe.allow = 'serial'; 12 document.body.appendChild(iframe); 13 iframe.addEventListener('load', resolve); 14 }); 15 16 await new Promise(resolve => { 17 window.addEventListener('message', t.step_func(messageEvent => { 18 // The failure message of no device chosen is expected. The point here is 19 // to validate not failing because of a sandboxed iframe. 20 assert_true(messageEvent.data.includes('NotFoundError')); 21 resolve(); 22 })); 23 iframe.contentWindow.postMessage({type: 'RequestPort'}, '*'); 24 }); 25 }, 'RequestPort from a sandboxed iframe is valid.');