[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [tor-browser] 38/76: Bug 1751609, trigger localization at expected time, r=mccr8 a=RyanVM



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@xxxxxxxxxxx>
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;
   }

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits