Bug 1244768 part 5 - reject pending play promises while the playback reaching the end; r?jwwang
4.8.12.8
https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-ended
MozReview-Commit-ID: H7Tw0XGzpW0
--- a/dom/html/HTMLMediaElement.cpp
+++ b/dom/html/HTMLMediaElement.cpp
@@ -5141,25 +5141,29 @@ void HTMLMediaElement::PlaybackEnded()
DispatchAsyncEvent(NS_LITERAL_STRING("durationchange"));
}
if (HasAttr(kNameSpaceID_None, nsGkAtoms::loop)) {
SetCurrentTime(0);
return;
}
- Pause();
+ FireTimeUpdate(false);
+
+ if (!mPaused) {
+ Pause();
+ AsyncRejectPendingPlayPromises(NS_ERROR_DOM_MEDIA_ABORT_ERR);
+ }
if (mSrcStream) {
// A MediaStream that goes from inactive to active shall be eligible for
// autoplay again according to the mediacapture-main spec.
mAutoplaying = true;
}
- FireTimeUpdate(false);
DispatchAsyncEvent(NS_LITERAL_STRING("ended"));
}
void HTMLMediaElement::SeekStarted()
{
DispatchAsyncEvent(NS_LITERAL_STRING("seeking"));
}