<!DOCTYPE HTML> <html> <head> <script type="application/javascript" src="mediaStreamPlayback.js"></script> </head> <body> <pre id="test"> <script type="application/javascript"> createHTML({ title: "getUserMedia in media element should have video dimensions on loadedmetadata", bug: "1240478" }); /** * Tests that assigning a stream to a media element results in the * "loadedmetadata" event without having to play() the media element. * * Also makes sure that the video size has been set on "loadedmetadata". */ runTest(function () { var v = document.createElement("video"); document.body.appendChild(v); v.preload = "metadata"; var constraints = {video: true, audio: true}; return getUserMedia(constraints).then(stream => new Promise(resolve => { v.srcObject = stream; v.onloadedmetadata = () => { isnot(v.videoWidth, 0, "videoWidth shall be set on 'loadedmetadata'"); isnot(v.videoHeight, 0, "videoHeight shall be set on 'loadedmetadata'"); resolve(); }; }) .then(() => stream.getTracks().forEach(t => t.stop()))); }); </script> </pre> </body> </html>