| <body> |
| <script> |
| function isFilteringEnabled() |
| { |
| var pc = new RTCPeerConnection(); |
| pc.createDataChannel(""); |
| |
| var candidates = []; |
| return new Promise((resolve, reject) => { |
| pc.onicecandidate = (event) => { |
| if (event.candidate === null) { |
| resolve(!candidates.length); |
| return; |
| } |
| candidates.push(event.candidate.candidate); |
| }; |
| pc.createOffer().then((offer) => { |
| pc.setLocalDescription(offer); |
| }); |
| }); |
| } |
| |
| async function doGetUserMedia() { |
| var result = await navigator.mediaDevices.getUserMedia({video:true}); |
| return true; |
| } |
| |
| window.onmessage = async (event) => { |
| if (event.data === "checkFiltering") { |
| event.source.postMessage(await isFilteringEnabled(), event.origin); |
| return; |
| } |
| if (event.data === "capture") { |
| event.source.postMessage(await doGetUserMedia(), event.origin); |
| return; |
| } |
| event.source.postMessage("unknown message", event.origin); |
| } |
| </script> |
| </body> |