mirror of
https://github.com/roytam1/UXP.git
synced 2026-05-27 07:39:55 +00:00
Issue #618 - Fix processing of non-parser-generated module scripts.
This commit is contained in:
+32
-23
@@ -856,6 +856,23 @@ ScriptLoader::CheckModuleDependenciesLoaded(ModuleLoadRequest* aRequest)
|
||||
}
|
||||
}
|
||||
|
||||
class ScriptRequestProcessor : public Runnable
|
||||
{
|
||||
private:
|
||||
RefPtr<ScriptLoader> mLoader;
|
||||
RefPtr<ScriptLoadRequest> mRequest;
|
||||
public:
|
||||
ScriptRequestProcessor(ScriptLoader* aLoader,
|
||||
ScriptLoadRequest* aRequest)
|
||||
: mLoader(aLoader)
|
||||
, mRequest(aRequest)
|
||||
{}
|
||||
NS_IMETHOD Run() override
|
||||
{
|
||||
return mLoader->ProcessRequest(mRequest);
|
||||
}
|
||||
};
|
||||
|
||||
void
|
||||
ScriptLoader::ProcessLoadedModuleTree(ModuleLoadRequest* aRequest)
|
||||
{
|
||||
@@ -866,8 +883,17 @@ ScriptLoader::ProcessLoadedModuleTree(ModuleLoadRequest* aRequest)
|
||||
aRequest->mModuleScript = nullptr;
|
||||
}
|
||||
}
|
||||
MaybeMoveToLoadedList(aRequest);
|
||||
ProcessPendingRequests();
|
||||
|
||||
if (aRequest->mIsInline &&
|
||||
aRequest->mElement->GetParserCreated() == NOT_FROM_PARSER)
|
||||
{
|
||||
MOZ_ASSERT(!aRequest->isInList());
|
||||
nsContentUtils::AddScriptRunner(
|
||||
new ScriptRequestProcessor(this, aRequest));
|
||||
} else {
|
||||
MaybeMoveToLoadedList(aRequest);
|
||||
ProcessPendingRequests();
|
||||
}
|
||||
}
|
||||
|
||||
if (aRequest->mWasCompiledOMT) {
|
||||
@@ -1093,23 +1119,6 @@ ScriptLoader::PreloadURIComparator::Equals(const PreloadInfo &aPi,
|
||||
same;
|
||||
}
|
||||
|
||||
class ScriptRequestProcessor : public Runnable
|
||||
{
|
||||
private:
|
||||
RefPtr<ScriptLoader> mLoader;
|
||||
RefPtr<ScriptLoadRequest> mRequest;
|
||||
public:
|
||||
ScriptRequestProcessor(ScriptLoader* aLoader,
|
||||
ScriptLoadRequest* aRequest)
|
||||
: mLoader(aLoader)
|
||||
, mRequest(aRequest)
|
||||
{}
|
||||
NS_IMETHOD Run() override
|
||||
{
|
||||
return mLoader->ProcessRequest(mRequest);
|
||||
}
|
||||
};
|
||||
|
||||
static inline bool
|
||||
ParseTypeAttribute(const nsAString& aType, JSVersion* aVersion)
|
||||
{
|
||||
@@ -2325,10 +2334,10 @@ ScriptLoader::HandleLoadError(ScriptLoadRequest *aRequest, nsresult aResult) {
|
||||
mDocument->AddBlockedTrackingNode(cont);
|
||||
}
|
||||
|
||||
if (aRequest->IsModuleRequest() && !aRequest->mIsInline) {
|
||||
auto request = aRequest->AsModuleRequest();
|
||||
SetModuleFetchFinishedAndResumeWaitingRequests(request, aResult);
|
||||
}
|
||||
if (aRequest->IsModuleRequest() && !aRequest->mIsInline) {
|
||||
auto request = aRequest->AsModuleRequest();
|
||||
SetModuleFetchFinishedAndResumeWaitingRequests(request, aResult);
|
||||
}
|
||||
|
||||
if (aRequest->mIsDefer) {
|
||||
MOZ_ASSERT_IF(aRequest->IsModuleRequest(),
|
||||
|
||||
Reference in New Issue
Block a user