already_AddRefed<TextTrack> TextTrackManager::AddTextTrack(TextTrackKind aKind, const nsAString& aLabel, const nsAString& aLanguage, TextTrackMode aMode, TextTrackReadyState aReadyState, TextTrackSource aTextTrackSource) { if (!mMediaElement || !mTextTracks) { return nullptr; } WEBVTT_LOG("%p AddTextTrack",this); WEBVTT_LOGV("AddTextTrack kind %d Label %s Language %s",aKind, 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)); } return track.forget(); }
already_AddRefed<TextTrack> TextTrackManager::AddTextTrack( TextTrackKind aKind, const nsAString& aLabel, const nsAString& aLanguage, TextTrackMode aMode, TextTrackReadyState aReadyState, TextTrackSource aTextTrackSource) { if (!mMediaElement || !mTextTracks) { return nullptr; } RefPtr<TextTrack> track = mTextTracks->AddTextTrack( aKind, aLabel, aLanguage, aMode, aReadyState, aTextTrackSource, CompareTextTracks(mMediaElement)); WEBVTT_LOG("AddTextTrack %p kind %" PRIu32 " Label %s Language %s", track.get(), static_cast<uint32_t>(aKind), NS_ConvertUTF16toUTF8(aLabel).get(), NS_ConvertUTF16toUTF8(aLanguage).get()); AddCues(track); ReportTelemetryForTrack(track); if (aTextTrackSource == TextTrackSource::Track) { RefPtr<nsIRunnable> task = NewRunnableMethod( "dom::TextTrackManager::HonorUserPreferencesForTrackSelection", this, &TextTrackManager::HonorUserPreferencesForTrackSelection); nsContentUtils::RunInStableState(task.forget()); } return track.forget(); }
void TextTrackManager::AddTextTrack(TextTrack* aTextTrack) { if (!mMediaElement || !mTextTracks) { 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)); } }
void TextTrackManager::AddTextTrack(TextTrack* aTextTrack) { if (!mMediaElement || !mTextTracks) { return; } WEBVTT_LOG("AddTextTrack TextTrack %p", aTextTrack); mTextTracks->AddTextTrack(aTextTrack, CompareTextTracks(mMediaElement)); AddCues(aTextTrack); ReportTelemetryForTrack(aTextTrack); if (aTextTrack->GetTextTrackSource() == TextTrackSource::Track) { RefPtr<nsIRunnable> task = NewRunnableMethod( "dom::TextTrackManager::HonorUserPreferencesForTrackSelection", this, &TextTrackManager::HonorUserPreferencesForTrackSelection); nsContentUtils::RunInStableState(task.forget()); } }