Bug 1294605 - Notify MediaStreamTrackSource when track is notified of ended on main thread. r=jib draft
authorAndreas Pehrson <pehrsons@gmail.com>
Mon, 29 Aug 2016 16:34:27 +0200
changeset 428042 35b07a9b31e1bf80773e582566ce359d5a910aee
parent 428041 fccfba3526977003636457fea7748d9bcadf1790
child 428043 c7d6f2fd8de95c2b626793a4c7254fce0986b6ef
push id33215
push userbmo:pehrson@telenordigital.com
push dateFri, 21 Oct 2016 13:47:09 +0000
reviewersjib
bugs1294605
milestone52.0a1
Bug 1294605 - Notify MediaStreamTrackSource when track is notified of ended on main thread. r=jib I haven't seen test failures from this but I imagine there could be. MozReview-Commit-ID: 8iyMBzQCWeA
dom/media/MediaStreamTrack.cpp
--- a/dom/media/MediaStreamTrack.cpp
+++ b/dom/media/MediaStreamTrack.cpp
@@ -409,16 +409,23 @@ MediaStreamTrack::NotifyEnded()
   MOZ_ASSERT(NS_IsMainThread());
 
   if (Ended()) {
     return;
   }
 
   LOG(LogLevel::Info, ("MediaStreamTrack %p ended", this));
 
+  if (!mSource) {
+    MOZ_ASSERT(false);
+    return;
+  }
+
+  mSource->UnregisterSink(this);
+
   mReadyState = MediaStreamTrackState::Ended;
 
   DispatchTrustedEvent(NS_LITERAL_STRING("ended"));
 }
 
 DOMMediaStream*
 MediaStreamTrack::GetInputDOMStream()
 {