@@ -488,11 +488,11 @@ bool ModuleLoaderBase::ModuleMapContainsURL(nsIURI* aURL) const {
488
488
}
489
489
490
490
bool ModuleLoaderBase::IsModuleFetching (nsIURI* aURL) const {
491
- return mFetchingModules .Contains (aURL);
491
+ return mFetchingModules .Contains (ModuleMapKey ( aURL, ModuleType::JavaScript) );
492
492
}
493
493
494
494
bool ModuleLoaderBase::IsModuleFetched (nsIURI* aURL) const {
495
- return mFetchedModules .Contains (aURL);
495
+ return mFetchedModules .Contains (ModuleMapKey ( aURL, ModuleType::JavaScript) );
496
496
}
497
497
498
498
nsresult ModuleLoaderBase::GetFetchedModuleURLs (nsTArray<nsCString>& aURLs) {
@@ -512,12 +512,14 @@ nsresult ModuleLoaderBase::GetFetchedModuleURLs(nsTArray<nsCString>& aURLs) {
512
512
void ModuleLoaderBase::SetModuleFetchStarted (ModuleLoadRequest* aRequest) {
513
513
// Update the module map to indicate that a module is currently being fetched.
514
514
515
+ ModuleMapKey moduleMapKey (aRequest->mURI , ModuleType::JavaScript);
516
+
515
517
MOZ_ASSERT (aRequest->IsFetching () || aRequest->IsPendingFetchingError ());
516
518
MOZ_ASSERT (!ModuleMapContainsURL (aRequest->mURI ));
517
519
518
520
RefPtr<LoadingRequest> loadingRequest = new LoadingRequest ();
519
521
loadingRequest->mRequest = aRequest;
520
- mFetchingModules .InsertOrUpdate (aRequest-> mURI , loadingRequest);
522
+ mFetchingModules .InsertOrUpdate (moduleMapKey , loadingRequest);
521
523
}
522
524
523
525
void ModuleLoaderBase::SetModuleFetchFinishedAndResumeWaitingRequests (
@@ -534,7 +536,8 @@ void ModuleLoaderBase::SetModuleFetchFinishedAndResumeWaitingRequests(
534
536
" %u)" ,
535
537
aRequest, aRequest->mModuleScript .get (), unsigned (aResult)));
536
538
537
- auto entry = mFetchingModules .Lookup (aRequest->mURI );
539
+ ModuleMapKey moduleMapKey (aRequest->mURI , ModuleType::JavaScript);
540
+ auto entry = mFetchingModules .Lookup (moduleMapKey);
538
541
if (!entry) {
539
542
LOG (
540
543
(" ScriptLoadRequest (%p): Key not found in mFetchingModules, "
@@ -557,12 +560,12 @@ void ModuleLoaderBase::SetModuleFetchFinishedAndResumeWaitingRequests(
557
560
return ;
558
561
}
559
562
560
- MOZ_ALWAYS_TRUE (mFetchingModules .Remove (aRequest-> mURI ));
563
+ MOZ_ALWAYS_TRUE (mFetchingModules .Remove (moduleMapKey ));
561
564
562
565
RefPtr<ModuleScript> moduleScript (aRequest->mModuleScript );
563
566
MOZ_ASSERT (NS_FAILED(aResult) == !moduleScript);
564
567
565
- mFetchedModules .InsertOrUpdate (aRequest-> mURI , RefPtr{moduleScript});
568
+ mFetchedModules .InsertOrUpdate (moduleMapKey , RefPtr{moduleScript});
566
569
567
570
LOG ((" ScriptLoadRequest (%p): Resuming waiting requests" , aRequest));
568
571
MOZ_ASSERT (loadingRequest->mRequest == aRequest);
@@ -588,15 +591,16 @@ void ModuleLoaderBase::ResumeWaitingRequest(ModuleLoadRequest* aRequest,
588
591
void ModuleLoaderBase::WaitForModuleFetch (ModuleLoadRequest* aRequest) {
589
592
nsIURI* uri = aRequest->mURI ;
590
593
MOZ_ASSERT (ModuleMapContainsURL (uri));
594
+ ModuleMapKey moduleMapKey (uri, ModuleType::JavaScript);
591
595
592
- if (auto entry = mFetchingModules .Lookup (uri )) {
596
+ if (auto entry = mFetchingModules .Lookup (moduleMapKey )) {
593
597
RefPtr<LoadingRequest> loadingRequest = entry.Data ();
594
598
loadingRequest->mWaiting .AppendElement (aRequest);
595
599
return ;
596
600
}
597
601
598
602
RefPtr<ModuleScript> ms;
599
- MOZ_ALWAYS_TRUE (mFetchedModules .Get (uri , getter_AddRefs (ms)));
603
+ MOZ_ALWAYS_TRUE (mFetchedModules .Get (moduleMapKey , getter_AddRefs (ms)));
600
604
601
605
ResumeWaitingRequest (aRequest, bool (ms));
602
606
}
@@ -608,8 +612,9 @@ ModuleScript* ModuleLoaderBase::GetFetchedModule(nsIURI* aURL) const {
608
612
LOG ((" GetFetchedModule %s" , url.get ()));
609
613
}
610
614
615
+ ModuleMapKey moduleMapKey (aURL, ModuleType::JavaScript);
611
616
bool found;
612
- ModuleScript* ms = mFetchedModules .GetWeak (aURL , &found);
617
+ ModuleScript* ms = mFetchedModules .GetWeak (moduleMapKey , &found);
613
618
MOZ_ASSERT (found);
614
619
return ms;
615
620
}
@@ -863,7 +868,8 @@ void ModuleLoaderBase::StartFetchingModuleDependencies(
863
868
MOZ_ASSERT (aRequest->IsFetching () || aRequest->IsCompiling ());
864
869
865
870
auto visitedSet = aRequest->mVisitedSet ;
866
- MOZ_ASSERT (visitedSet->Contains (aRequest->mURI ));
871
+ MOZ_ASSERT (visitedSet->Contains (
872
+ ModuleMapKey (aRequest->mURI , ModuleType::JavaScript)));
867
873
868
874
aRequest->mState = ModuleLoadRequest::State::LoadingImports;
869
875
@@ -880,10 +886,12 @@ void ModuleLoaderBase::StartFetchingModuleDependencies(
880
886
int32_t i = 0 ;
881
887
while (i < urls.Count ()) {
882
888
nsIURI* url = urls[i];
883
- if (visitedSet->Contains (url)) {
889
+ ModuleMapKey moduleMapKey (url, ModuleType::JavaScript);
890
+
891
+ if (visitedSet->Contains (moduleMapKey)) {
884
892
urls.RemoveObjectAt (i);
885
893
} else {
886
- visitedSet->PutEntry (url );
894
+ visitedSet->PutEntry (moduleMapKey );
887
895
i++;
888
896
}
889
897
}
@@ -1475,7 +1483,7 @@ void ModuleLoaderBase::CopyModulesTo(ModuleLoaderBase* aDest) {
1475
1483
if (!moduleScript) {
1476
1484
continue ;
1477
1485
}
1478
- aDest->mFetchedModules .InsertOrUpdate (entry. GetKey () , moduleScript);
1486
+ aDest->mFetchedModules .InsertOrUpdate (entry, moduleScript);
1479
1487
}
1480
1488
}
1481
1489
@@ -1490,20 +1498,21 @@ void ModuleLoaderBase::MoveModulesTo(ModuleLoaderBase* aDest) {
1490
1498
}
1491
1499
1492
1500
#ifdef DEBUG
1493
- if (auto existingEntry = aDest->mFetchedModules .Lookup (entry. GetKey () )) {
1501
+ if (auto existingEntry = aDest->mFetchedModules .Lookup (entry)) {
1494
1502
MOZ_ASSERT (moduleScript == existingEntry.Data ());
1495
1503
}
1496
1504
#endif
1497
1505
1498
- aDest->mFetchedModules .InsertOrUpdate (entry. GetKey () , moduleScript);
1506
+ aDest->mFetchedModules .InsertOrUpdate (entry, moduleScript);
1499
1507
}
1500
1508
1501
1509
mFetchedModules .Clear ();
1502
1510
}
1503
1511
1504
1512
bool ModuleLoaderBase::IsFetchingAndHasWaitingRequest (
1505
1513
ModuleLoadRequest* aRequest) {
1506
- auto entry = mFetchingModules .Lookup (aRequest->mURI );
1514
+ auto entry = mFetchingModules .Lookup (
1515
+ ModuleMapKey (aRequest->mURI , ModuleType::JavaScript));
1507
1516
if (!entry) {
1508
1517
return false ;
1509
1518
}
0 commit comments