Bug 1329117 - Run HonorUserPreferencesForTrackSelection at stable state. r=jwwang
MozReview-Commit-ID: FwZyHHFa8KD
--- 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");