1
0
mirror of https://github.com/roytam1/UXP.git synced 2026-05-27 13:28:54 +00:00

Merge remote-tracking branch 'origin/tracking' into custom

This commit is contained in:
2026-02-11 23:39:01 +08:00
2 changed files with 45 additions and 7 deletions
+19 -3
View File
@@ -1167,8 +1167,20 @@ public:
};
void ScriptLoader::RunScriptWhenSafe(ScriptLoadRequest* aRequest) {
auto runnable = new ScriptRequestProcessor(this, aRequest);
nsContentUtils::AddScriptRunner(runnable);
// Queue for processing through the normal script execution pipeline so that
// dynamic imports are blocked during sync XHR just like async scripts.
if (!aRequest->IsModuleRequest() ||
!aRequest->AsModuleRequest()->IsDynamicImport()) {
auto runnable = new ScriptRequestProcessor(this, aRequest);
nsContentUtils::AddScriptRunner(runnable);
return;
}
MOZ_ASSERT(!aRequest->isInList());
MOZ_ASSERT(!aRequest->mInAsyncList);
aRequest->mInAsyncList = true;
mLoadedAsyncRequests.AppendElement(aRequest);
ProcessPendingRequests();
}
void
@@ -2457,7 +2469,11 @@ ScriptLoader::ProcessPendingRequests()
while (ReadyToExecuteScripts() && !mLoadedAsyncRequests.isEmpty()) {
request = mLoadedAsyncRequests.StealFirst();
if (request->IsModuleRequest()) {
ProcessRequest(request);
if (request->AsModuleRequest()->IsDynamicImport()) {
ProcessDynamicImport(request->AsModuleRequest());
} else {
ProcessRequest(request);
}
} else {
CompileOffThreadOrProcessRequest(request);
}