9753c669b368ca8ca3f6c27cba9ab63b3c58b501
[gecko.git] / test_getUserMedia_basicTabshare.html
blob9753c669b368ca8ca3f6c27cba9ab63b3c58b501
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <script type="application/javascript" src="mediaStreamPlayback.js"></script>
5 </head>
6 <body>
7 <pre id="test">
8 <script type="application/javascript">
9 createHTML({
10 title: "getUserMedia Basic Tabshare Test",
11 bug: "1193075"
12 });
13 /**
14 * Run a test to verify that we can complete a start and stop media playback
15 * cycle for a tabshare LocalMediaStream on a video HTMLMediaElement.
17 * Additionally, exercise applyConstraints code for tabshare viewport offset.
19 runTest(function () {
20 const isWinXP = navigator.userAgent.indexOf("Windows NT 5.1") != -1;
21 if (IsMacOSX10_6orOlder() || isWinXP) {
22 ok(true, "Screensharing disabled for OSX10.6 and WinXP");
23 return;
25 var testVideo = createMediaElement('video', 'testVideo');
27 return Promise.resolve()
28 .then(() => getUserMedia({
29 video: { mediaSource: "browser",
30 scrollWithPage: true },
31 fake: false
32 }))
33 .then(stream => {
34 var playback = new LocalMediaStreamPlayback(testVideo, stream);
35 return playback.playMediaWithDeprecatedStreamStop(false);
37 .then(() => getUserMedia({
38 video: {
39 mediaSource: "browser",
40 viewportOffsetX: 0,
41 viewportOffsetY: 0,
42 viewportWidth: 100,
43 viewportHeight: 100
45 fake: false
46 }))
47 .then(stream => {
48 var playback = new LocalMediaStreamPlayback(testVideo, stream);
49 playback.startMedia(false);
50 return playback.verifyPlaying()
51 .then(() => Promise.all([
52 () => testVideo.srcObject.getVideoTracks()[0].applyConstraints({
53 mediaSource: "browser",
54 viewportOffsetX: 10,
55 viewportOffsetY: 50,
56 viewportWidth: 90,
57 viewportHeight: 50
58 }),
59 () => listenUntil(testVideo, "resize", () => true)
60 ]))
61 .then(() => playback.verifyPlaying()) // still playing
62 .then(() => playback.deprecatedStopStreamInMediaPlayback())
63 .then(() => playback.stopMediaElement());
64 });
65 });
67 </script>
68 </pre>
69 </body>
70 </html>