Bug 1329117 - Run HonorUserPreferencesForTrackSelection at stable state. r=jwwang draft
authorbechen <bechen@mozilla.com>
Mon, 23 Jan 2017 11:12:22 +0800
changeset 464838 cebc0fe4ac3c33817a310f173c0aafbf7e32e8ac
parent 460419 b1c31c4a0a678194931779e0f13fba7b508eb109
child 543009 b5eb69f92b1127d6bb4966a94b7451c81252d0ac
push id42449
push userbechen@mozilla.com
push dateMon, 23 Jan 2017 03:13:48 +0000
reviewersjwwang
bugs1329117
milestone53.0a1
Bug 1329117 - Run HonorUserPreferencesForTrackSelection at stable state. r=jwwang MozReview-Commit-ID: FwZyHHFa8KD
dom/html/TextTrackManager.cpp
--- a/dom/html/TextTrackManager.cpp
+++ b/dom/html/TextTrackManager.cpp
@@ -153,17 +153,19 @@ TextTrackManager::AddTextTrack(TextTrack
     NS_ConvertUTF16toUTF8(aLabel).get(), NS_ConvertUTF16toUTF8(aLanguage).get());
   RefPtr<TextTrack> track =
     mTextTracks->AddTextTrack(aKind, aLabel, aLanguage, aMode, aReadyState,
                               aTextTrackSource, CompareTextTracks(mMediaElement));
   AddCues(track);
   ReportTelemetryForTrack(track);
 
   if (aTextTrackSource == TextTrackSource::Track) {
-    NS_DispatchToMainThread(NewRunnableMethod(this, &TextTrackManager::HonorUserPreferencesForTrackSelection));
+    RefPtr<nsIRunnable> task =
+      NewRunnableMethod(this, &TextTrackManager::HonorUserPreferencesForTrackSelection);
+    nsContentUtils::RunInStableState(task.forget());
   }
 
   return track.forget();
 }
 
 void
 TextTrackManager::AddTextTrack(TextTrack* aTextTrack)
 {
@@ -171,17 +173,19 @@ TextTrackManager::AddTextTrack(TextTrack
     return;
   }
   WEBVTT_LOG("%p AddTextTrack TextTrack %p",this, aTextTrack);
   mTextTracks->AddTextTrack(aTextTrack, CompareTextTracks(mMediaElement));
   AddCues(aTextTrack);
   ReportTelemetryForTrack(aTextTrack);
 
   if (aTextTrack->GetTextTrackSource() == TextTrackSource::Track) {
-    NS_DispatchToMainThread(NewRunnableMethod(this, &TextTrackManager::HonorUserPreferencesForTrackSelection));
+    RefPtr<nsIRunnable> task =
+      NewRunnableMethod(this, &TextTrackManager::HonorUserPreferencesForTrackSelection);
+    nsContentUtils::RunInStableState(task.forget());
   }
 }
 
 void
 TextTrackManager::AddCues(TextTrack* aTextTrack)
 {
   if (!mNewCues) {
     WEBVTT_LOG("AddCues mNewCues is null");