Bug 1814314 - use the script runner for calling ProcessCues. r=emilio

Differential Revision: https://phabricator.services.mozilla.com/D172606
This commit is contained in:
alwu 2023-03-15 17:26:33 +00:00
parent 45514b96bb
commit e10b8924ae

View File

@ -258,7 +258,8 @@ void TextTrackManager::UpdateCueDisplay() {
return;
}
nsPIDOMWindowInner* window = mMediaElement->OwnerDoc()->GetInnerWindow();
RefPtr<nsPIDOMWindowInner> window =
mMediaElement->OwnerDoc()->GetInnerWindow();
if (!window) {
WEBVTT_LOG("Abort UpdateCueDisplay, because of no window.");
}
@ -273,7 +274,14 @@ void TextTrackManager::UpdateCueDisplay() {
showingCues.Length(),
static_cast<void*>(showingCues.Elements()));
nsCOMPtr<nsIContent> controls = videoFrame->GetVideoControls();
sParserWrapper->ProcessCues(window, jsCues, overlay, controls);
nsContentUtils::AddScriptRunner(NS_NewRunnableFunction(
"TextTrackManager::UpdateCueDisplay",
[window, jsCues, overlay, controls]() {
if (sParserWrapper) {
sParserWrapper->ProcessCues(window, jsCues, overlay, controls);
}
}));
}
void TextTrackManager::NotifyCueAdded(TextTrackCue& aCue) {