Bug 1334112 -part3 : Trigger UpdateReadyState after unbind TrackElement's and TextTrack::SetReadyState. r=rillian draft
authorbechen <bechen@mozilla.com>
Tue, 21 Feb 2017 15:44:10 +0800
changeset 487263 cf7759c746f3fa9221dcda03327fd6b3c5997ee7
parent 487262 4a77aa7d6e8cfd366327dd10a03ad5c228c925c0
child 546424 7aadce0daa50e8bfd806acb160587e2b8ba2234d
push id46186
push userbechen@mozilla.com
push dateTue, 21 Feb 2017 07:57:22 +0000
reviewersrillian
bugs1334112
milestone54.0a1
Bug 1334112 -part3 : Trigger UpdateReadyState after unbind TrackElement's and TextTrack::SetReadyState. r=rillian MozReview-Commit-ID: pEeOzZSpak
dom/html/HTMLTrackElement.cpp
dom/media/TextTrack.cpp
--- a/dom/html/HTMLTrackElement.cpp
+++ b/dom/html/HTMLTrackElement.cpp
@@ -358,16 +358,17 @@ HTMLTrackElement::BindToTree(nsIDocument
 void
 HTMLTrackElement::UnbindFromTree(bool aDeep, bool aNullParent)
 {
   if (mMediaParent && aNullParent) {
     // mTrack can be null if HTMLTrackElement::LoadResource has never been
     // called.
     if (mTrack) {
       mMediaParent->RemoveTextTrack(mTrack);
+      mMediaParent->UpdateReadyState();
     }
     mMediaParent = nullptr;
   }
 
   nsGenericHTMLElement::UnbindFromTree(aDeep, aNullParent);
 }
 
 uint16_t
--- a/dom/media/TextTrack.cpp
+++ b/dom/media/TextTrack.cpp
@@ -258,16 +258,17 @@ TextTrack::SetReadyState(TextTrackReadyS
   if (!mTextTrackList) {
     return;
   }
 
   HTMLMediaElement* mediaElement = mTextTrackList->GetMediaElement();
   if (mediaElement && (mReadyState == TextTrackReadyState::Loaded||
       mReadyState == TextTrackReadyState::FailedToLoad)) {
     mediaElement->RemoveTextTrack(this, true);
+    mediaElement->UpdateReadyState();
   }
 }
 
 TextTrackList*
 TextTrack::GetTextTrackList()
 {
   return mTextTrackList;
 }