Bug 1361369 - Add a script processing mode enum r=smaug

This commit is contained in:
Jon Coppeard
2018-01-08 15:17:33 +00:00
parent 5d28599337
commit 796f48603b
4 changed files with 65 additions and 20 deletions

View File

@@ -51,12 +51,11 @@ ScriptLoadRequest::ScriptLoadRequest(ScriptKind aKind,
, mScriptFromHead(false)
, mProgress(Progress::Loading)
, mDataType(DataType::Unknown)
, mScriptMode(ScriptMode::eBlocking)
, mIsInline(true)
, mHasSourceMapURL(false)
, mInDeferList(false)
, mInAsyncList(false)
, mPreloadAsAsync(false)
, mPreloadAsDefer(false)
, mIsNonAsyncScriptInserted(false)
, mIsXSLT(false)
, mIsCanceled(false)
@@ -141,6 +140,18 @@ ScriptLoadRequest::AsModuleRequest()
return static_cast<ModuleLoadRequest*>(this);
}
void
ScriptLoadRequest::SetScriptMode(bool aDeferAttr, bool aAsyncAttr)
{
if (aAsyncAttr) {
mScriptMode = ScriptMode::eAsync;
} else if (aDeferAttr || IsModuleRequest()) {
mScriptMode = ScriptMode::eDeferred;
} else {
mScriptMode = ScriptMode::eBlocking;
}
}
//////////////////////////////////////////////////////////////
// ScriptLoadRequestList
//////////////////////////////////////////////////////////////