OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE html> |
| 2 <script src="/resources/testharness.js"></script> |
| 3 <script src="/resources/testharnessreport.js"></script> |
| 4 <script src="resources/fake-devices.js"></script> |
| 5 <script src="resources/usb-helpers.js"></script> |
| 6 <script> |
| 7 'use strict'; |
| 8 |
| 9 function runIframeDisconnectTest(onDeviceConnected) { |
| 10 return navigator.usb.test.initialize().then(() => { |
| 11 return new Promise((resolve, reject) => { |
| 12 let opened = false; |
| 13 let fakeDeviceGuid = null; |
| 14 |
| 15 let iframe = document.createElement('iframe'); |
| 16 iframe.src = 'resources/open-in-iframe.html'; |
| 17 iframe.onload = () => { |
| 18 navigator.usb.test.attachToWindow(iframe.contentWindow).then(() => { |
| 19 iframe.contentWindow.postMessage('Ready', '*'); |
| 20 }); |
| 21 }; |
| 22 |
| 23 window.onmessage = messageEvent => { |
| 24 if (messageEvent.data == 'Ready') { |
| 25 fakeDeviceGuid = navigator.usb.test.addFakeDevice(fakeDeviceInit); |
| 26 } else if (messageEvent.data == 'Success') { |
| 27 opened = true; |
| 28 onDeviceConnected(iframe); |
| 29 } else { |
| 30 reject(messageEvent.data); |
| 31 } |
| 32 }; |
| 33 |
| 34 navigator.usb.test.ondeviceclose = guid => { |
| 35 assert_equals(guid, fakeDeviceGuid); |
| 36 assert_true(opened); |
| 37 resolve(); |
| 38 }; |
| 39 |
| 40 document.body.appendChild(iframe); |
| 41 }); |
| 42 }); |
| 43 } |
| 44 |
| 45 promise_test(() => { |
| 46 return runIframeDisconnectTest(iframe => { |
| 47 document.body.removeChild(iframe); |
| 48 }); |
| 49 }, 'detaching iframe disconnects device.'); |
| 50 |
| 51 promise_test(() => { |
| 52 return runIframeDisconnectTest(iframe => { |
| 53 iframe.src = 'about:blank'; |
| 54 }); |
| 55 }, 'navigating iframe disconnects device.'); |
| 56 </script> |
OLD | NEW |