diff options
Diffstat (limited to 'browser/base/content/test/webrtc/get_user_media.html')
-rw-r--r-- | browser/base/content/test/webrtc/get_user_media.html | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/browser/base/content/test/webrtc/get_user_media.html b/browser/base/content/test/webrtc/get_user_media.html new file mode 100644 index 000000000..16303c62d --- /dev/null +++ b/browser/base/content/test/webrtc/get_user_media.html @@ -0,0 +1,55 @@ +<!DOCTYPE html> +<html> +<head><meta charset="UTF-8"></head> +<body> +<div id="message"></div> +<script> +// Specifies whether we are using fake streams to run this automation +var useFakeStreams = true; +try { + var audioDevice = SpecialPowers.getCharPref("media.audio_loopback_dev"); + var videoDevice = SpecialPowers.getCharPref("media.video_loopback_dev"); + dump("TEST DEVICES: Using media devices:\n"); + dump("audio: " + audioDevice + "\nvideo: " + videoDevice + "\n"); + useFakeStreams = false; +} catch (e) { + dump("TEST DEVICES: No test devices found (in media.{audio,video}_loopback_dev, using fake streams.\n"); + useFakeStreams = true; +} + +function message(m) { + document.getElementById("message").innerHTML = m; + window.parent.postMessage(m, "*"); +} + +var gStream; + +function requestDevice(aAudio, aVideo, aShare) { + var opts = {video: aVideo, audio: aAudio}; + if (aShare) { + opts.video = { + mozMediaSource: aShare, + mediaSource: aShare + } + } else if (useFakeStreams) { + opts.fake = true; + } + + window.navigator.mediaDevices.getUserMedia(opts) + .then(stream => { + gStream = stream; + message("ok"); + }, err => message("error: " + err)); +} +message("pending"); + +function closeStream() { + if (!gStream) + return; + gStream.getTracks().forEach(t => t.stop()); + gStream = null; + message("closed"); +} +</script> +</body> +</html> |