bug 975782 stop delaying the load event when media fetch has stalled r=cpearce,f=kinetik

This commit is contained in:
Karl Tomlinson
2014-12-11 14:51:10 +13:00
parent 73ceb72c48
commit c1edf72bd6
12 changed files with 7 additions and 18 deletions

View File

@@ -693,7 +693,8 @@ void HTMLMediaElement::AbortExistingLoads()
void HTMLMediaElement::NoSupportedMediaSourceError()
{
NS_ASSERTION(mDelayingLoadEvent, "Load event not delayed during source selection?");
NS_ASSERTION(mNetworkState == NETWORK_LOADING,
"Not loading during source selection?");
mError = new MediaError(this, nsIDOMMediaError::MEDIA_ERR_SRC_NOT_SUPPORTED);
ChangeNetworkState(nsIDOMHTMLMediaElement::NETWORK_NO_SOURCE);
@@ -3128,11 +3129,16 @@ void HTMLMediaElement::CheckProgress(bool aHaveNewProgress)
"timer dispatched when there was no timer");
// Were stalled. Restart timer.
StartProgressTimer();
if (!mLoadedDataFired) {
ChangeDelayLoadStatus(true);
}
}
}
if (now - mDataTime >= TimeDuration::FromMilliseconds(STALL_MS)) {
DispatchAsyncEvent(NS_LITERAL_STRING("stalled"));
ChangeDelayLoadStatus(false);
NS_ASSERTION(mProgressTimer, "detected stalled without timer");
// Stop timer events, which prevents repeated stalled events until there
// is more progress.