| <!doctype html> |
| <html> |
| <script src="../../../../resources/js-test-pre.js"></script> |
| <body> |
| <iframe id="none" src="http://localhost:8000/media/media-stream/resources/get-display-media-devices-iframe.html"></iframe> |
| <iframe id="camera" allow="camera" src="http://localhost:8000/media/media-stream/resources/get-display-media-devices-iframe.html"></iframe> |
| <iframe id="microphone" allow="microphone" src="http://localhost:8000/media/media-stream/resources/get-display-media-devices-iframe.html"></iframe> |
| <iframe id="display" allow="display-capture" src="http://localhost:8000/media/media-stream/resources/get-display-media-devices-iframe.html"></iframe> |
| |
| <script> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| testRunner.setUserMediaPermission(true); |
| } |
| if (window.internals) |
| window.internals.settings.setScreenCaptureEnabled(true); |
| |
| let results = []; |
| let writeResults = () => { |
| result.innerHTML = '<br>' + results.sort().join('<br>'); |
| } |
| |
| handle = setTimeout(() => { |
| testFailed('Timeout: not all frames loaded correctly.'); |
| writeResults(); |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| }, 4000); |
| |
| let expected = { |
| 'none' : 'deny', |
| 'camera' : 'deny', |
| 'microphone' : 'deny', |
| 'display' : 'allow', |
| }; |
| let success = true; |
| window.addEventListener("message", (event) => { |
| let message = event.data.trim().split(':'); |
| let iframe = document.getElementById(message[0]); |
| let allow = `'${iframe.allow || ""}'`; |
| let success = expected[message[0]] == message[1]; |
| results.push(`${success ? "PASS" : "FAIL"}: <iframe allow=${allow}> got "${message[1]}"${success ? "" : ", should have ${expected[message[0]]}"}`); |
| if (results.length == 4) { |
| clearTimeout(handle); |
| writeResults(); |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| } |
| |
| }, false); |
| |
| let trigerTest = (evt) => { evt.target.contentWindow.postMessage(evt.target.id, '*'); } |
| Array.from(document.getElementsByTagName('iframe')).forEach(element => element.onload = trigerTest); |
| </script> |
| |
| <div id="result"></div> |
| </body> |
| </html> |