| <!doctype html> |
| <html> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <body> |
| <iframe id="none" src="http://localhost:8000/media/media-stream/resources/enumerate-devices-iframe.html"></iframe> |
| <iframe id="microphone" allow="microphone" src="http://localhost:8000/media/media-stream/resources/enumerate-devices-iframe.html"></iframe> |
| <iframe id="camera" allow="camera" src="http://localhost:8000/media/media-stream/resources/enumerate-devices-iframe.html"></iframe> |
| <iframe id="camera+microphone" allow="camera;microphone" src="http://localhost:8000/media/media-stream/resources/enumerate-devices-iframe.html"></iframe> |
| <iframe id="microphone+speakerselection" allow="microphone;speaker-selection" src="http://localhost:8000/media/media-stream/resources/enumerate-devices-iframe.html"></iframe> |
| <iframe id="camera+microphone+speakerselection" allow="camera;microphone;speaker-selection" src="http://localhost:8000/media/media-stream/resources/enumerate-devices-iframe.html"></iframe> |
| <iframe id="same-origin" src="http://127.0.0.1:8000/media/media-stream/resources/enumerate-devices-iframe.html"></iframe> |
| <script> |
| const iFrameTests = [ |
| ['none', ''], |
| ['microphone', 'microphone'], |
| ['camera', 'camera'], |
| ['camera+microphone', 'camera+microphone'], |
| ['microphone+speakerselection', 'microphone+speakerselection'], |
| ['camera+microphone+speakerselection', 'camera+microphone+speakerselection'], |
| ['same-origin', 'camera+microphone+speakerselection'] |
| ]; |
| |
| promise_test(() => { |
| return Promise.all(iFrameTests.map((iFrameTest) => { |
| const frame = document.getElementById(iFrameTest[0]); |
| return new Promise(resolve => frame.onload = resolve); |
| })); |
| }, "Wait for frames to be loaded"); |
| |
| iFrameTests.forEach((iFrameTest) => { |
| promise_test(async () => { |
| const promise = new Promise((resolve, reject) => { |
| window.onmessage = resolve; |
| setTimeout(() => reject('test timed out'), 5000); |
| }); |
| document.getElementById(iFrameTest[0]).contentWindow.postMessage('', '*'); |
| const event = await promise; |
| assert_equals(event.data, iFrameTest[1]); |
| }, iFrameTest[0]); |
| }); |
| </script> |
| </body> |
| </html> |