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