summaryrefslogtreecommitdiffstats
path: root/dom/base
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2020-08-25 07:06:43 +0000
committerMoonchild <moonchild@palemoon.org>2020-08-30 09:51:18 +0000
commit77e8ba7eaf3ca00f25d0507cf17de2f50741f335 (patch)
treeb9025ffd0f46746481cd809598cd62142764f225 /dom/base
parente854d58633a2c877778410393914146f7a137495 (diff)
downloadUXP-77e8ba7eaf3ca00f25d0507cf17de2f50741f335.tar
UXP-77e8ba7eaf3ca00f25d0507cf17de2f50741f335.tar.gz
UXP-77e8ba7eaf3ca00f25d0507cf17de2f50741f335.tar.lz
UXP-77e8ba7eaf3ca00f25d0507cf17de2f50741f335.tar.xz
UXP-77e8ba7eaf3ca00f25d0507cf17de2f50741f335.zip
Issue #618 - Implement async attribute for inline module scripts. (uplift)
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.
Diffstat (limited to 'dom/base')
-rw-r--r--dom/base/nsDocument.cpp13
-rw-r--r--dom/base/nsIDocument.h2
2 files changed, 15 insertions, 0 deletions
diff --git a/dom/base/nsDocument.cpp b/dom/base/nsDocument.cpp
index d0634b0f9..de793bfab 100644
--- a/dom/base/nsDocument.cpp
+++ b/dom/base/nsDocument.cpp
@@ -12745,3 +12745,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
diff --git a/dom/base/nsIDocument.h b/dom/base/nsIDocument.h
index 506acc7e4..29afa5439 100644
--- a/dom/base/nsIDocument.h
+++ b/dom/base/nsIDocument.h
@@ -2872,6 +2872,8 @@ public:
virtual void ScheduleIntersectionObserverNotification() = 0;
virtual void NotifyIntersectionObservers() = 0;
+ bool ModuleScriptsEnabled();
+
protected:
bool GetUseCounter(mozilla::UseCounter aUseCounter)
{