This is an automated email from the git hooks/post-receive script.
richard pushed a commit to branch tor-browser-91.8.0esr-11.0-1 in repository tor-browser.
commit cd1fe8df165ce7dd8f41a43cb5f25e8d4616a73d Author: Olli Pettay Olli.Pettay@helsinki.fi AuthorDate: Tue Mar 15 10:50:46 2022 +0000
Bug 1751609, trigger localization at expected time, r=mccr8 a=RyanVM
Differential Revision: https://phabricator.services.mozilla.com/D141094 --- dom/base/Document.cpp | 12 +++++++++--- dom/l10n/DocumentL10n.cpp | 2 ++ 2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/dom/base/Document.cpp b/dom/base/Document.cpp index a58e76cb52580..4152a6d69217a 100644 --- a/dom/base/Document.cpp +++ b/dom/base/Document.cpp @@ -4178,8 +4178,13 @@ void Document::LocalizationLinkAdded(Element* aLinkElement) { mDocumentL10n->AddResourceId(href);
if (mReadyState >= READYSTATE_INTERACTIVE) { - mDocumentL10n->Activate(true); - mDocumentL10n->TriggerInitialTranslation(); + RefPtr<DocumentL10n> l10n = mDocumentL10n; + RefPtr<Runnable> r = NS_NewRunnableFunction( + "DocumentL10n::TriggerInitialTranslation()", [l10n]() { + l10n->Activate(true); + l10n->TriggerInitialTranslation(); + }); + nsContentUtils::AddScriptRunner(r.forget()); } else { if (!mDocumentL10n->mBlockingLayout) { // Our initial translation is going to block layout start. Make sure @@ -4235,7 +4240,8 @@ void Document::OnParsingCompleted() { OnL10nResourceContainerParsed();
if (mDocumentL10n) { - mDocumentL10n->TriggerInitialTranslation(); + RefPtr<DocumentL10n> l10n = mDocumentL10n; + l10n->TriggerInitialTranslation(); } }
diff --git a/dom/l10n/DocumentL10n.cpp b/dom/l10n/DocumentL10n.cpp index 3d8efec317d37..06b62d75f314b 100644 --- a/dom/l10n/DocumentL10n.cpp +++ b/dom/l10n/DocumentL10n.cpp @@ -6,6 +6,7 @@
#include "DocumentL10n.h" #include "nsIContentSink.h" +#include "nsContentUtils.h" #include "mozilla/dom/AutoEntryScript.h" #include "mozilla/dom/Document.h" #include "mozilla/dom/DocumentL10nBinding.h" @@ -102,6 +103,7 @@ NS_IMPL_CYCLE_COLLECTING_ADDREF(L10nReadyHandler) NS_IMPL_CYCLE_COLLECTING_RELEASE(L10nReadyHandler)
void DocumentL10n::TriggerInitialTranslation() { + MOZ_ASSERT(nsContentUtils::IsSafeToRunScript()); if (mState >= DocumentL10nState::InitialTranslationTriggered) { return; }