diff options
author | Moonchild <moonchild@palemoon.org> | 2020-08-25 07:06:43 +0000 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2020-08-30 09:51:18 +0000 |
commit | 77e8ba7eaf3ca00f25d0507cf17de2f50741f335 (patch) | |
tree | b9025ffd0f46746481cd809598cd62142764f225 /dom/base | |
parent | e854d58633a2c877778410393914146f7a137495 (diff) | |
download | UXP-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.cpp | 13 | ||||
-rw-r--r-- | dom/base/nsIDocument.h | 2 |
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) { |