Bug 1450845 - HTMLMediaElement.seekToNextFrame now fails if not called on paused element. r?jya draft
authorBryce Van Dyk <bvandyk@mozilla.com>
Fri, 01 Jun 2018 12:23:50 -0400
changeset 803543 3799dd9d3d91916c5804b2dbc61c841f8875a0b3
parent 801403 5866d6685849311f057e7e229b9ace63a2641c29
child 803544 5c40d9d6d334c081345c77b0502924acc61be2ce
push id112142
push userbvandyk@mozilla.com
push dateMon, 04 Jun 2018 14:27:53 +0000
reviewersjya
bugs1450845
milestone62.0a1
Bug 1450845 - HTMLMediaElement.seekToNextFrame now fails if not called on paused element. r?jya MozReview-Commit-ID: PDZkudTrsh
dom/html/HTMLMediaElement.cpp
--- a/dom/html/HTMLMediaElement.cpp
+++ b/dom/html/HTMLMediaElement.cpp
@@ -2707,16 +2707,21 @@ HTMLMediaElement::FastSeek(double aTime,
   LOG(LogLevel::Debug, ("Reporting telemetry VIDEO_FASTSEEK_USED"));
   Telemetry::Accumulate(Telemetry::VIDEO_FASTSEEK_USED, 1);
   RefPtr<Promise> tobeDropped = Seek(aTime, SeekTarget::PrevSyncPoint, aRv);
 }
 
 already_AddRefed<Promise>
 HTMLMediaElement::SeekToNextFrame(ErrorResult& aRv)
 {
+  if (!mPaused) {
+    RefPtr<Promise> promise = CreateDOMPromise(aRv);
+    promise->MaybeReject(NS_ERROR_DOM_INVALID_STATE_ERR);
+    return promise.forget();
+  }
   if (mSeekDOMPromise) {
     // We can't perform NextFrameSeek while seek is already in action.
     // Just return the pending seek promise.
     return do_AddRef(mSeekDOMPromise);
   }
 
   /* This will cause JIT code to be kept around longer, to help performance
    * when using SeekToNextFrame to iterate through every frame of a video.