Revision ad91075ffdead7446438c989400d86663fe79d20 authored by Anne van Kesteren on 12 April 2018, 11:25:13 UTC, committed by Anne van Kesteren on 12 April 2018, 11:25:13 UTC
Needed for https://github.com/whatwg/fetch/issues/664 and https://github.com/whatwg/fetch/pull/600.
1 parent 19a42b9
Raw File
usbDevice-iframe.https.html
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/fake-devices.js"></script>
<script src="resources/usb-helpers.js"></script>
<script>
'use strict';

function runIframeDisconnectTest(onDeviceConnected) {
  return new Promise((resolve, reject) => {
    let opened = false;

    let iframe = document.createElement('iframe');
    iframe.src = 'resources/open-in-iframe.html';
    iframe.onload = () => {
      navigator.usb.test.attachToWindow(iframe.contentWindow).then(() => {
        iframe.contentWindow.postMessage('Ready', '*');
      });
    };

    window.onmessage = messageEvent => {
      if (messageEvent.data == 'Ready') {
        let fakeDevice = navigator.usb.test.addFakeDevice(fakeDeviceInit);
        fakeDevice.onclose = () => {
          assert_true(opened);
          resolve();
        };
      } else if (messageEvent.data == 'Success') {
        opened = true;
        onDeviceConnected(iframe);
      } else {
        reject(messageEvent.data);
      }
    };

    document.body.appendChild(iframe);
  });
}

usb_test(() => {
  return runIframeDisconnectTest(iframe => {
    document.body.removeChild(iframe);
  });
}, 'detaching iframe disconnects device.');

usb_test(() => {
  return runIframeDisconnectTest(iframe => {
    iframe.src = 'about:blank';
  });
}, 'navigating iframe disconnects device.');
</script>
back to top