mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 20:05:49 +00:00
Bug 975270 - Fire 'emptied' and 'abort' asynchronously in media load algorithm, as per spec. r=roc
This commit is contained in:
parent
b8260836d4
commit
3c516ef42d
@ -617,7 +617,7 @@ void HTMLMediaElement::AbortExistingLoads()
|
||||
if (mNetworkState == nsIDOMHTMLMediaElement::NETWORK_LOADING ||
|
||||
mNetworkState == nsIDOMHTMLMediaElement::NETWORK_IDLE)
|
||||
{
|
||||
DispatchEvent(NS_LITERAL_STRING("abort"));
|
||||
DispatchAsyncEvent(NS_LITERAL_STRING("abort"));
|
||||
}
|
||||
|
||||
mError = nullptr;
|
||||
@ -648,7 +648,7 @@ void HTMLMediaElement::AbortExistingLoads()
|
||||
// change will be reflected in the controls.
|
||||
FireTimeUpdate(false);
|
||||
}
|
||||
DispatchEvent(NS_LITERAL_STRING("emptied"));
|
||||
DispatchAsyncEvent(NS_LITERAL_STRING("emptied"));
|
||||
}
|
||||
|
||||
// We may have changed mPaused, mAutoplaying, mNetworkState and other
|
||||
|
@ -356,6 +356,7 @@ support-files =
|
||||
[test_reactivate.html]
|
||||
[test_readyState.html]
|
||||
[test_referer.html]
|
||||
[test_reset_events_async.html]
|
||||
[test_replay_metadata.html]
|
||||
[test_seek2.html]
|
||||
[test_seek_out_of_range.html]
|
||||
|
57
content/media/test/test_reset_events_async.html
Normal file
57
content/media/test/test_reset_events_async.html
Normal file
@ -0,0 +1,57 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=975270
|
||||
-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Test for Bug </title>
|
||||
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
||||
<script type="application/javascript" src="manifest.js"></script>
|
||||
<script type="application/javascript">
|
||||
|
||||
/** Test for Bug 975270 **/
|
||||
// Test that 'emptied' and 'abort' events are fired asynchronously when re-starting
|
||||
// media load.
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var a = document.createElement("audio");
|
||||
a._abort = 0;
|
||||
a._emptied = 0;
|
||||
|
||||
is(a.networkState, HTMLMediaElement.NETWORK_EMPTY, "Shouldn't be loading");
|
||||
|
||||
a.addEventListener("abort", function(e) { a._abort++; });
|
||||
a.addEventListener("emptied", function(e) { a._emptied++; });
|
||||
a.addEventListener("loadedmetadata",
|
||||
function(e) {
|
||||
is(a._abort, 0, "Should not have received 'abort' before 'loadedmetadata");
|
||||
is(a._emptied, 0, "Should not have received 'emptied' before 'loadedmetadata");
|
||||
|
||||
a.addEventListener("loadstart",
|
||||
function(e) {
|
||||
is(a._abort, 1, "Should have received 'abort' before 'loadstart");
|
||||
is(a._emptied, 1, "Should have received 'emptied' before 'loadstart");
|
||||
SimpleTest.finish();
|
||||
});
|
||||
|
||||
a.src = "";
|
||||
is(a._abort, 0, "Should not have received 'abort' during setting a.src=''");
|
||||
is(a._emptied, 0, "Should not have received 'emptied' during setting a.src=''");
|
||||
});
|
||||
|
||||
a.src = getPlayableAudio(gSmallTests).name;
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=">Mozilla Bug </a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
|
||||
</div>
|
||||
<pre id="test">
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user