From b78f53ffb09a6aae6dbdc069c7cdd42d11b5eed2 Mon Sep 17 00:00:00 2001 From: Moonchild <moonchild@palemoon.org> Date: Tue, 25 Aug 2020 07:06:43 +0000 Subject: Issue #618 - (async) Implement async attribute for inline module scripts. This commit does several things: - Moves the pref check from ScriptLoader to ns[I]Document so it can be called on the document. - Changes the atrribute freezing function to a better name that takes the document as a parameter. - Sets the proper async/defer attributes on HTML script elements based on keywords and whether they are module scripts or not. --- dom/base/nsDocument.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'dom/base/nsDocument.cpp') diff --git a/dom/base/nsDocument.cpp b/dom/base/nsDocument.cpp index dc4b23f2c..76490e6b4 100644 --- a/dom/base/nsDocument.cpp +++ b/dom/base/nsDocument.cpp @@ -12446,3 +12446,16 @@ nsIDocument::GetSelection(ErrorResult& aRv) return nsGlobalWindow::Cast(window)->GetSelection(aRv); } + +bool +nsIDocument::ModuleScriptsEnabled() +{ + static bool sEnabledForContent = false; + static bool sCachedPref = false; + if (!sCachedPref) { + sCachedPref = true; + Preferences::AddBoolVarCache(&sEnabledForContent, "dom.moduleScripts.enabled", false); + } + + return nsContentUtils::IsChromeDoc(this) || sEnabledForContent; +} \ No newline at end of file -- cgit v1.2.3