diff options
author | Moonchild <moonchild@palemoon.org> | 2020-08-24 11:11:17 +0000 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2020-08-30 09:47:49 +0000 |
commit | d58cb8e11b15c054f0773918cd7fd89ce2a7464e (patch) | |
tree | 380d82f3b0ad12222da2338da83408b97b402634 /parser/html/nsHtml5SpeculativeLoad.cpp | |
parent | 429a7bdb93e443236f4a4b04afc9a12c78f54247 (diff) | |
download | UXP-d58cb8e11b15c054f0773918cd7fd89ce2a7464e.tar UXP-d58cb8e11b15c054f0773918cd7fd89ce2a7464e.tar.gz UXP-d58cb8e11b15c054f0773918cd7fd89ce2a7464e.tar.lz UXP-d58cb8e11b15c054f0773918cd7fd89ce2a7464e.tar.xz UXP-d58cb8e11b15c054f0773918cd7fd89ce2a7464e.zip |
Issue #618 - (async, preload) Correctly pass info about async/defer to parser.
This makes sure we don't block body-referred sub-resources by head-referenced
defer and async scripts. This is important for all script loads, not just
modules, but is added here because it was run into while implementing modules.
Diffstat (limited to 'parser/html/nsHtml5SpeculativeLoad.cpp')
-rw-r--r-- | parser/html/nsHtml5SpeculativeLoad.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/parser/html/nsHtml5SpeculativeLoad.cpp b/parser/html/nsHtml5SpeculativeLoad.cpp index 8ffc4d063..7bae0699f 100644 --- a/parser/html/nsHtml5SpeculativeLoad.cpp +++ b/parser/html/nsHtml5SpeculativeLoad.cpp @@ -6,9 +6,12 @@ #include "nsHtml5TreeOpExecutor.h" nsHtml5SpeculativeLoad::nsHtml5SpeculativeLoad() + : #ifdef DEBUG - : mOpCode(eSpeculativeLoadUninitialized) + mOpCode(eSpeculativeLoadUninitialized), #endif + mIsAsync(false), + mIsDefer(false) { MOZ_COUNT_CTOR(nsHtml5SpeculativeLoad); } @@ -48,11 +51,13 @@ nsHtml5SpeculativeLoad::Perform(nsHtml5TreeOpExecutor* aExecutor) break; case eSpeculativeLoadScript: aExecutor->PreloadScript(mUrl, mCharset, mTypeOrCharsetSourceOrDocumentMode, - mCrossOrigin, mIntegrity, false); + mCrossOrigin, mIntegrity, false, + mIsAsync, mIsDefer); break; case eSpeculativeLoadScriptFromHead: aExecutor->PreloadScript(mUrl, mCharset, mTypeOrCharsetSourceOrDocumentMode, - mCrossOrigin, mIntegrity, true); + mCrossOrigin, mIntegrity, true, + mIsAsync, mIsDefer); break; case eSpeculativeLoadStyle: aExecutor->PreloadStyle(mUrl, mCharset, mCrossOrigin, mIntegrity); |