Bug 1235183. Part 5 - per comment 35, cancel existing |mChannelLoader| in AbortExistingLoads(). draft
authorJW Wang <jwwang@mozilla.com>
Wed, 29 Jun 2016 07:50:33 +0800
changeset 382157 4658663620723a72b1539761070a8047f021457b
parent 381740 d76d5e254a30d17ead477c4a5726d76b33badb26
child 524116 35b87a439c7349949bcf5fb544b7cc23257e320e
push id21640
push userjwwang@mozilla.com
push dateWed, 29 Jun 2016 02:52:44 +0000
bugs1235183
milestone50.0a1
Bug 1235183. Part 5 - per comment 35, cancel existing |mChannelLoader| in AbortExistingLoads(). MozReview-Commit-ID: 27DZC8rwAJ5
dom/html/HTMLMediaElement.cpp
--- a/dom/html/HTMLMediaElement.cpp
+++ b/dom/html/HTMLMediaElement.cpp
@@ -868,16 +868,21 @@ void HTMLMediaElement::AbortExistingLoad
 #endif
   // Abort any already-running instance of the resource selection algorithm.
   mLoadWaitStatus = NOT_WAITING;
 
   // Set a new load ID. This will cause events which were enqueued
   // with a different load ID to silently be cancelled.
   mCurrentLoadID++;
 
+  if (mChannelLoader) {
+    mChannelLoader->Cancel();
+    mChannelLoader = nullptr;
+  }
+
   bool fireTimeUpdate = false;
 
   // When aborting the existing loads, empty the objects in audio track list and
   // video track list, no events (in particular, no removetrack events) are
   // fired as part of this. Ending MediaStream sends track ended notifications,
   // so we empty the track lists prior.
   AudioTracks()->EmptyTracks();
   VideoTracks()->EmptyTracks();