Index: LayoutTests/bluetooth/iframeRequestDevice.html |
diff --git a/LayoutTests/bluetooth/iframeRequestDevice.html b/LayoutTests/bluetooth/iframeRequestDevice.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..90f1ceafa9e3701cdcfcb337b3470efa175d0df4 |
--- /dev/null |
+++ b/LayoutTests/bluetooth/iframeRequestDevice.html |
@@ -0,0 +1,47 @@ |
+<!DOCTYPE html> |
+<script src="../resources/testharness.js"></script> |
+<script src="../resources/testharness-helpers.js"></script> |
+<script src="../resources/testharnessreport.js"></script> |
+<script src="bluetooth-helpers.js"></script> |
+<body> |
+<script> |
+ "use strict"; |
+ |
+ const numIframes = 5; |
+ |
+ async_test(test => { |
+ let readiesReceived = 0; |
+ window.onmessage = messageEvent => test.step(() => { |
+ if (messageEvent.data === 'Ready') { |
+ readiesReceived++; |
+ } |
+ if (readiesReceived < numIframes) { |
+ return; |
+ } |
+ |
+ let iframesFinished = 0; |
+ window.onmessage = messageEvent => test.step(() => { |
+ if (messageEvent.data !== 'Success') { |
+ console.error(messageEvent.data); |
+ } |
+ iframesFinished++; |
+ if (iframesFinished === numIframes) { |
+ test.done(); |
+ } |
+ }); |
+ |
+ Array.prototype.forEach.call(document.querySelectorAll('iframe'), iframe => { |
+ callWithKeyDown(() => { |
+ iframe.contentWindow.postMessage('Go', '*'); |
+ }); |
+ }); |
+ }); |
+ |
+ testRunner.setBluetoothMockDataSet('SingleEmptyDeviceAdapter'); |
+ for (let i = 0; i < numIframes; i++) { |
+ let iframe = document.createElement('iframe'); |
+ iframe.src = 'resources/requestDevice-in-iframe.html'; |
+ document.body.appendChild(iframe); |
+ } |
+ }, 'Concurrent requestDevice calls in iframes work.'); |
+</script> |