sandboxed_iframe.https.window.js (883B)
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 = 'usb'; 12 document.body.appendChild(iframe); 13 iframe.addEventListener('load', resolve); 14 }); 15 await new Promise(resolve => { 16 window.addEventListener('message', t.step_func(messageEvent => { 17 // The failure message of no device chosen is expected. The point here is 18 // to validate not failing because of a sandboxed iframe. 19 assert_true(messageEvent.data.includes('NotFoundError')); 20 resolve(); 21 })); 22 iframe.contentWindow.postMessage('RequestDevice', '*'); 23 }); 24 }, 'RequestDevice from a sandboxed iframe is valid.');