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" />
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);
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");
41 mediaRecorder.onstart = () =
> {
42 info(
"Got 'start' event");
43 // We just want one frame encoded, to see that the recorder produces something readable.
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);
53 var video = document.createElement(
"video");
54 video.id =
"recorded-video";
55 video.src = URL.createObjectURL(xhr.response);
57 video.onerror = err =
> {
58 ok(false,
"Should be able to play the recording. Got error. code=" + video.error.code);
61 document.getElementById(
"content").appendChild(video);
62 helper.pixelMustBecome(video, helper.red, {
64 infoString:
"Should become red",
65 }).then(SimpleTest.finish);
68 ok(false,
"XHR error");
71 xhr.responseType =
"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);