Bug 1302006. Part 2 - Let ShutdownState handle dormant request. draft
authorJW Wang <jwwang@mozilla.com>
Mon, 12 Sep 2016 10:34:35 +0800
changeset 414779 79a195917c885752a09fdfba367ac22724669066
parent 414778 d1f13c9cf5c100f164632f7e0e78f90668de2aed
child 414780 774fdbb344e94fcb54c04ce40bd4a920fe6e0211
push id29760
push userjwwang@mozilla.com
push dateMon, 19 Sep 2016 02:32:14 +0000
bugs1302006
milestone51.0a1
Bug 1302006. Part 2 - Let ShutdownState handle dormant request. MozReview-Commit-ID: 1uw7YjQps0i
dom/media/MediaDecoderStateMachine.cpp
--- a/dom/media/MediaDecoderStateMachine.cpp
+++ b/dom/media/MediaDecoderStateMachine.cpp
@@ -534,16 +534,21 @@ public:
   {
     MOZ_DIAGNOSTIC_ASSERT(false, "Shouldn't escape the SHUTDOWN state.");
   }
 
   State GetState() const override
   {
     return DECODER_STATE_SHUTDOWN;
   }
+
+  bool HandleDormant(bool aDormant) override
+  {
+    return true;
+  }
 };
 
 #define INIT_WATCHABLE(name, val) \
   name(val, "MediaDecoderStateMachine::" #name)
 #define INIT_MIRROR(name, val) \
   name(mTaskQueue, val, "MediaDecoderStateMachine::" #name " (Mirror)")
 #define INIT_CANONICAL(name, val) \
   name(mTaskQueue, val, "MediaDecoderStateMachine::" #name " (Canonical)")
@@ -1493,20 +1498,16 @@ MediaDecoderStateMachine::DispatchSetDor
   OwnerThread()->Dispatch(r.forget());
 }
 
 void
 MediaDecoderStateMachine::SetDormant(bool aDormant)
 {
   MOZ_ASSERT(OnTaskQueue());
 
-  if (IsShutdown()) {
-    return;
-  }
-
   if (mStateObj->HandleDormant(aDormant)) {
     return;
   }
 
   // |mState == DECODER_STATE_DORMANT| is already
   // handled by |mStateObj->HandleDormant| above.
   MOZ_ASSERT(mState != DECODER_STATE_DORMANT);