Skip to content
This repository was archived by the owner on Jul 9, 2025. It is now read-only.

Commit 46bbf09

Browse files
committed
Bug 1690976 - Add a mochitest checking that third-party ERR_DECODE messages are defaulted. r=bryce, a=pascalc
Differential Revision: https://phabricator.services.mozilla.com/D104168
1 parent 65b16b4 commit 46bbf09

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed

dom/media/test/mochitest.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -750,6 +750,7 @@ skip-if = toolkit == 'android' # bug 1108558, android(bug 1232305)
750750
[test_cueless_webm_seek-3.html]
751751
[test_currentTime.html]
752752
[test_decode_error.html]
753+
[test_decode_error_crossorigin.html]
753754
[test_decoder_disable.html]
754755
[test_defaultMuted.html]
755756
[test_delay_load.html]
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<!DOCTYPE HTML>
2+
<html>
3+
<head>
4+
<title>Invalid formats raise decode errors with default messages for CORS cross-origin media</title>
5+
<script src="/tests/SimpleTest/SimpleTest.js"></script>
6+
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
7+
<script type="text/javascript" src="manifest.js"></script>
8+
</head>
9+
<body>
10+
<pre id="test">
11+
<script class="testbody" type="text/javascript">
12+
const manager = new MediaTestManager;
13+
let gotErrSrcNotSupported = false;
14+
let gotErrDecode = false;
15+
16+
function startTest(test, token) {
17+
const is = function(a, b, name) {
18+
SimpleTest.is(a, b, `${test.name}: ${name}`);
19+
};
20+
const v = document.createElement("video");
21+
manager.started(token);
22+
v.addEventListener("error", event => {
23+
if (v.readyState == v.HAVE_NOTHING) {
24+
is(v.error.code, MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED,
25+
"Expected code for a load error");
26+
is(v.error.message, "Failed to open media",
27+
"Expected message for a load error");
28+
gotErrSrcNotSupported = true;
29+
} else {
30+
is(v.error.code, MediaError.MEDIA_ERR_DECODE,
31+
"Expected code for a decode error");
32+
is(v.error.message, "Failed to decode media",
33+
"Expected message for a decode error");
34+
gotErrDecode = true;
35+
}
36+
manager.finished(token);
37+
});
38+
39+
v.autoplay = true;
40+
41+
// CORS-cross-origin URL.
42+
v.src = `http://example.com/tests/dom/media/test/${test.name}`;
43+
}
44+
45+
gTestPrefs.push(["media.cache_size", 40000]);
46+
manager.onFinished = () => {
47+
ok(gotErrSrcNotSupported, "At least one test led to src-not-supported");
48+
ok(gotErrDecode, "At least one test led to a decode error");
49+
};
50+
manager.runTests(gErrorTests, startTest);
51+
</script>
52+
</pre>
53+
</body>
54+
</html>

0 commit comments

Comments
 (0)