From e10b8924aed50e2d885ae43f87304148cf628482 Mon Sep 17 00:00:00 2001 From: alwu Date: Wed, 15 Mar 2023 17:26:33 +0000 Subject: [PATCH] Bug 1814314 - use the script runner for calling ProcessCues. r=emilio Differential Revision: https://phabricator.services.mozilla.com/D172606 --- dom/html/TextTrackManager.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/dom/html/TextTrackManager.cpp b/dom/html/TextTrackManager.cpp index 698271696282..02e44592f201 100644 --- a/dom/html/TextTrackManager.cpp +++ b/dom/html/TextTrackManager.cpp @@ -258,7 +258,8 @@ void TextTrackManager::UpdateCueDisplay() { return; } - nsPIDOMWindowInner* window = mMediaElement->OwnerDoc()->GetInnerWindow(); + RefPtr 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(showingCues.Elements())); nsCOMPtr 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) {