зеркало из https://github.com/mozilla/gecko-dev.git
109 строки
2.8 KiB
HTML
109 строки
2.8 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=479711
|
|
-->
|
|
<head>
|
|
<title>Test for Bug 479711</title>
|
|
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
|
<script type="text/javascript" src="manifest.js"></script>
|
|
<script>
|
|
|
|
var gRegisteredElements = [];
|
|
var testWindows = [];
|
|
|
|
function register(v) {
|
|
gRegisteredElements.push(v);
|
|
}
|
|
|
|
function loaded() {
|
|
info("onload fired!");
|
|
|
|
for (var i = 0; i < gRegisteredElements.length; ++i) {
|
|
var v = gRegisteredElements[i];
|
|
ok(v.readyState >= v.HAVE_CURRENT_DATA,
|
|
v._name + ":" + v.id + " is not ready before onload fired (" + v.readyState + ")");
|
|
}
|
|
|
|
for (i=0; i<testWindows.length; ++i) {
|
|
testWindows[i].close();
|
|
}
|
|
|
|
mediaTestCleanup();
|
|
|
|
SimpleTest.finish();
|
|
}
|
|
|
|
addLoadEvent(loaded);
|
|
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=479711">Mozilla Bug 479711</a>
|
|
<p id="display"></p>
|
|
<div id="content" style="display: none"></div>
|
|
<pre id="test">
|
|
<script type="application/javascript">
|
|
|
|
/** Test for Bug 479711 **/
|
|
|
|
function createVideo(name, type, id) {
|
|
var v = document.createElement("video");
|
|
v.preload = "metadata";
|
|
// Make sure each video is a unique resource
|
|
v.src = name + "?" + id;
|
|
v._name = name;
|
|
v.id = id;
|
|
register(v);
|
|
return v;
|
|
}
|
|
|
|
var test = getPlayableVideo(gSmallTests);
|
|
|
|
// Straightforward add, causing a load.
|
|
var v = createVideo(test.name, test.type, "1");
|
|
document.body.appendChild(v);
|
|
|
|
// Load, add, then remove.
|
|
v = createVideo(test.name, test.type, "1");
|
|
v.load();
|
|
document.body.appendChild(v);
|
|
v.remove();
|
|
|
|
// Load and add.
|
|
v = createVideo(test.name, test.type, "2");
|
|
v.load();
|
|
document.body.appendChild(v);
|
|
|
|
// Load outside of doc.
|
|
v = createVideo(test.name, test.type, "3");
|
|
v.load();
|
|
|
|
// Open a new window for the following test. We open it here instead of in
|
|
// the event handler to ensure that our document load event doesn't fire while
|
|
// window.open is spinning the event loop.
|
|
var w = window.open("", "testWindow", "width=400,height=400");
|
|
testWindows.push(w);
|
|
|
|
v = createVideo(test.name, test.type, "4");
|
|
v.onloadstart = function(e) {
|
|
// Using a new window to do this is a bit annoying, but if we use an iframe here,
|
|
// delaying of the iframe's load event might interfere with the firing of our load event
|
|
// in some confusing way. So it's simpler just to use another window.
|
|
w.document.body.appendChild(v);
|
|
};
|
|
v.load(); // load started while in this document, this doc's load will block until
|
|
// the video's finished loading (in the other document).
|
|
|
|
if (gRegisteredElements.length > 0) {
|
|
SimpleTest.waitForExplicitFinish();
|
|
} else {
|
|
todo(false, "No types supported");
|
|
}
|
|
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|