https://github.com/web-platform-tests/wpt
Raw File
Tip revision: add926c9ab105c2ae283dbd4045bc0918add1d71 authored by Anne van Kesteren on 27 August 2018, 16:32:58 UTC
add more tests
Tip revision: add926c
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