Bug 1867190 - Initialise the PHC allocate delay later r=glandium
[gecko.git] / dom / ipc / tests / test_temporaryfile_stream.html
blob9fa76a215546fb87631ffdc7536f2651af6d6d2d
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <title>Send an nsTemporaryFileInputStream cross-process</title>
5 <script src="/tests/SimpleTest/SimpleTest.js"></script>
6 <script src="/tests/dom/canvas/test/captureStream_common.js"></script>
7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
8 </head>
9 <body>
10 <pre id="test">
11 <div id="content">
12 </div>
13 <script class="testbody" type="text/javascript">
14 function startTest() {
15 var canvas = document.createElement("canvas");
16 canvas.width = canvas.height = 100;
17 document.getElementById("content").appendChild(canvas);
20 // eslint-disable-next-line no-undef
21 var helper = new CaptureStreamTestHelper2D(100, 100);
22 helper.drawColor(canvas, helper.red);
24 var stream = canvas.captureStream(0);
26 var blob;
28 let mediaRecorder = new MediaRecorder(stream);
29 is(mediaRecorder.stream, stream,
30 "Media recorder stream = canvas stream at the start of recording");
32 mediaRecorder.onwarning = () => ok(false, "warning unexpectedly fired");
34 mediaRecorder.onerror = () => ok(false, "Recording failed");
36 mediaRecorder.ondataavailable = ev => {
37 is(blob, undefined, "Should only get one dataavailable event");
38 blob = ev.data;
41 mediaRecorder.onstart = () => {
42 info("Got 'start' event");
43 // We just want one frame encoded, to see that the recorder produces something readable.
44 mediaRecorder.stop();
47 mediaRecorder.onstop = () => {
48 info("Got 'stop' event");
49 ok(blob, "Should have gotten a data blob");
50 var xhr = new XMLHttpRequest();
51 xhr.open("POST", "blob_verify.sjs", true);
52 xhr.onload = () => {
53 var video = document.createElement("video");
54 video.id = "recorded-video";
55 video.src = URL.createObjectURL(xhr.response);
56 video.play();
57 video.onerror = err => {
58 ok(false, "Should be able to play the recording. Got error. code=" + video.error.code);
59 SimpleTest.finish();
61 document.getElementById("content").appendChild(video);
62 helper.pixelMustBecome(video, helper.red, {
63 threshold: 128,
64 infoString: "Should become red",
65 }).then(SimpleTest.finish);
67 xhr.onerror = () => {
68 ok(false, "XHR error");
69 SimpleTest.finish();
71 xhr.responseType = "blob";
72 xhr.send(blob);
75 mediaRecorder.start();
76 is(mediaRecorder.state, "recording", "Media recorder should be recording");
79 SimpleTest.waitForExplicitFinish();
80 SpecialPowers.pushPrefEnv({set: [["media.recorder.max_memory", 1]]}, startTest);
81 </script>
82 </pre>
83 </body>
84 </html>