mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-08 16:27:31 +09:00
Issue #618 - Fix processing of non-parser-generated module scripts.
This commit is contained in:
parent
93d4766c01
commit
d7889e2d2a
1 changed files with 32 additions and 23 deletions
|
|
@ -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
|
void
|
||||||
ScriptLoader::ProcessLoadedModuleTree(ModuleLoadRequest* aRequest)
|
ScriptLoader::ProcessLoadedModuleTree(ModuleLoadRequest* aRequest)
|
||||||
{
|
{
|
||||||
|
|
@ -866,8 +883,17 @@ ScriptLoader::ProcessLoadedModuleTree(ModuleLoadRequest* aRequest)
|
||||||
aRequest->mModuleScript = nullptr;
|
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) {
|
if (aRequest->mWasCompiledOMT) {
|
||||||
|
|
@ -1093,23 +1119,6 @@ ScriptLoader::PreloadURIComparator::Equals(const PreloadInfo &aPi,
|
||||||
same;
|
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
|
static inline bool
|
||||||
ParseTypeAttribute(const nsAString& aType, JSVersion* aVersion)
|
ParseTypeAttribute(const nsAString& aType, JSVersion* aVersion)
|
||||||
{
|
{
|
||||||
|
|
@ -2325,10 +2334,10 @@ ScriptLoader::HandleLoadError(ScriptLoadRequest *aRequest, nsresult aResult) {
|
||||||
mDocument->AddBlockedTrackingNode(cont);
|
mDocument->AddBlockedTrackingNode(cont);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aRequest->IsModuleRequest() && !aRequest->mIsInline) {
|
if (aRequest->IsModuleRequest() && !aRequest->mIsInline) {
|
||||||
auto request = aRequest->AsModuleRequest();
|
auto request = aRequest->AsModuleRequest();
|
||||||
SetModuleFetchFinishedAndResumeWaitingRequests(request, aResult);
|
SetModuleFetchFinishedAndResumeWaitingRequests(request, aResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aRequest->mIsDefer) {
|
if (aRequest->mIsDefer) {
|
||||||
MOZ_ASSERT_IF(aRequest->IsModuleRequest(),
|
MOZ_ASSERT_IF(aRequest->IsModuleRequest(),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue