Bug 1294615. Part 1 - Assert mQueuedSeek.Exists() is false in InitiateSeek(). draft
authorJW Wang <jwwang@mozilla.com>
Thu, 11 Aug 2016 16:07:45 +0800
changeset 400935 c627db18d83d2ba4d65b200cac760b7f0590f794
parent 400934 6db22a524b1452fc50bf56535e7c619a8441dcfe
child 400936 67a9d039e6b2f1be273804255b39ca9074eab858
push id26305
push userjwwang@mozilla.com
push dateTue, 16 Aug 2016 01:04:52 +0000
bugs1294615
milestone51.0a1
Bug 1294615. Part 1 - Assert mQueuedSeek.Exists() is false in InitiateSeek(). InitiateSeek() is called from several places where we can prove mQueuedSeek.Exists() is false: 1. MaybeFinishDecodeFirstFrame(): mQueuedSeek is moved when calling InitiateSeek(). 2. Seek() rejects mQueuedSeek before calling InitiateSeek(). 3. StartDecoding(): mQueuedSeek is moved when calling InitiateSeek(). 4. VisibilityChanged(): it doesn't call InitiateSeek() when mQueuedSeek.Exists() is true. MozReview-Commit-ID: BriPw0VID5O
dom/media/MediaDecoderStateMachine.cpp
--- a/dom/media/MediaDecoderStateMachine.cpp
+++ b/dom/media/MediaDecoderStateMachine.cpp
@@ -1603,16 +1603,17 @@ MediaDecoderStateMachine::InitiateSeek(S
   }
 
   // Do the seek.
   mSeekTaskRequest.Begin(mSeekTask->Seek(Duration())
     ->Then(OwnerThread(), __func__, this,
            &MediaDecoderStateMachine::OnSeekTaskResolved,
            &MediaDecoderStateMachine::OnSeekTaskRejected));
 
+  MOZ_ASSERT(!mQueuedSeek.Exists());
   MOZ_ASSERT(!mCurrentSeek.Exists());
   mCurrentSeek = Move(aSeekJob);
   return mCurrentSeek.mPromise.Ensure(__func__);
 }
 
 void
 MediaDecoderStateMachine::OnSeekTaskResolved(SeekTaskResolveValue aValue)
 {