mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-21 12:05:15 +00:00
LibWeb: Clean up unused module script fetching algorithms
This patch removes those unused 2 algorithms: 1. `fetch_internal_module_script_graph` 2. `fetch_descendants_of_a_module_script` Those 2 algorithms were removed in spec and are not used in our codebase.
This commit is contained in:
parent
9b26f7eb0f
commit
ad9f70dff9
Notes:
github-actions[bot]
2025-03-07 01:26:34 +00:00
Author: https://github.com/F3n67u Commit: https://github.com/LadybirdBrowser/ladybird/commit/ad9f70dff95 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3841 Reviewed-by: https://github.com/gmta ✅
2 changed files with 0 additions and 127 deletions
|
@ -593,131 +593,6 @@ WebIDL::ExceptionOr<void> fetch_worklet_module_worker_script_graph(URL::URL cons
|
|||
return {};
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/webappapis.html#internal-module-script-graph-fetching-procedure
|
||||
void fetch_internal_module_script_graph(JS::Realm& realm, JS::ModuleRequest const& module_request, EnvironmentSettingsObject& fetch_client_settings_object, Fetch::Infrastructure::Request::Destination destination, ScriptFetchOptions const& options, Script& referring_script, HashTable<ModuleLocationTuple> const& visited_set, PerformTheFetchHook perform_fetch, OnFetchScriptComplete on_complete)
|
||||
{
|
||||
// 1. Let url be the result of resolving a module specifier given referringScript and moduleRequest.[[Specifier]].
|
||||
auto url = MUST(resolve_module_specifier(referring_script, module_request.module_specifier));
|
||||
|
||||
// 2. Assert: the previous step never throws an exception, because resolving a module specifier must have been previously successful with these same two arguments.
|
||||
// NOTE: Handled by MUST above.
|
||||
|
||||
// 3. Let moduleType be the result of running the module type from module request steps given moduleRequest.
|
||||
auto module_type = module_type_from_module_request(module_request);
|
||||
|
||||
// 4. Assert: visited set contains (url, moduleType).
|
||||
VERIFY(visited_set.contains({ url, module_type }));
|
||||
|
||||
// onSingleFetchComplete given result is the following algorithm:
|
||||
auto on_single_fetch_complete = create_on_fetch_script_complete(realm.heap(), [&realm, perform_fetch, on_complete, &fetch_client_settings_object, destination, visited_set](auto result) mutable {
|
||||
// 1. If result is null, run onComplete with null, and abort these steps.
|
||||
if (!result) {
|
||||
on_complete->function()(nullptr);
|
||||
return;
|
||||
}
|
||||
|
||||
// 2. Fetch the descendants of result given fetch client settings object, destination, visited set, and with onComplete. If performFetch was given, pass it along as well.
|
||||
auto& module_script = as<JavaScriptModuleScript>(*result);
|
||||
fetch_descendants_of_a_module_script(realm, module_script, fetch_client_settings_object, destination, visited_set, perform_fetch, on_complete);
|
||||
});
|
||||
|
||||
// 5. Fetch a single module script given url, fetch client settings object, destination, options, referringScript's settings object's realm,
|
||||
// referringScript's base URL, moduleRequest, false, and onSingleFetchComplete as defined below. If performFetch was given, pass it along as well.
|
||||
fetch_single_module_script(realm, url, fetch_client_settings_object, destination, options, referring_script.realm(), referring_script.base_url().value(), module_request, TopLevelModule::No, perform_fetch, on_single_fetch_complete);
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/webappapis.html#fetch-the-descendants-of-a-module-script
|
||||
void fetch_descendants_of_a_module_script(JS::Realm& realm, JavaScriptModuleScript& module_script, EnvironmentSettingsObject& fetch_client_settings_object, Fetch::Infrastructure::Request::Destination destination, HashTable<ModuleLocationTuple> visited_set, PerformTheFetchHook perform_fetch, OnFetchScriptComplete on_complete)
|
||||
{
|
||||
// 1. If module script's record is null, run onComplete with module script and return.
|
||||
if (!module_script.record()) {
|
||||
on_complete->function()(&module_script);
|
||||
return;
|
||||
}
|
||||
|
||||
// 2. Let record be module script's record.
|
||||
auto const& record = module_script.record();
|
||||
|
||||
// 3. If record is not a Cyclic Module Record, or if record.[[RequestedModules]] is empty, run onComplete with module script and return.
|
||||
// FIXME: Currently record is always a cyclic module.
|
||||
if (record->requested_modules().is_empty()) {
|
||||
on_complete->function()(&module_script);
|
||||
return;
|
||||
}
|
||||
|
||||
// 4. Let moduleRequests be a new empty list.
|
||||
Vector<JS::ModuleRequest> module_requests;
|
||||
|
||||
// 5. For each ModuleRequest Record requested of record.[[RequestedModules]],
|
||||
for (auto const& requested : record->requested_modules()) {
|
||||
// 1. Let url be the result of resolving a module specifier given module script and requested.[[Specifier]].
|
||||
auto url = MUST(resolve_module_specifier(module_script, requested.module_specifier));
|
||||
|
||||
// 2. Assert: the previous step never throws an exception, because resolving a module specifier must have been previously successful with these same two arguments.
|
||||
// NOTE: Handled by MUST above.
|
||||
|
||||
// 3. Let moduleType be the result of running the module type from module request steps given requested.
|
||||
auto module_type = module_type_from_module_request(requested);
|
||||
|
||||
// 4. If visited set does not contain (url, moduleType), then:
|
||||
if (!visited_set.contains({ url, module_type })) {
|
||||
// 1. Append requested to moduleRequests.
|
||||
module_requests.append(requested);
|
||||
|
||||
// 2. Append (url, moduleType) to visited set.
|
||||
visited_set.set({ url, module_type });
|
||||
}
|
||||
}
|
||||
|
||||
// FIXME: 6. Let options be the descendant script fetch options for module script's fetch options.
|
||||
ScriptFetchOptions options;
|
||||
|
||||
// FIXME: 7. Assert: options is not null, as module script is a JavaScript module script.
|
||||
|
||||
// 8. Let pendingCount be the length of moduleRequests.
|
||||
auto pending_count = module_requests.size();
|
||||
|
||||
// 9. If pendingCount is zero, run onComplete with module script.
|
||||
if (pending_count == 0) {
|
||||
on_complete->function()(&module_script);
|
||||
return;
|
||||
}
|
||||
|
||||
// 10. Let failed be false.
|
||||
bool failed = false;
|
||||
|
||||
// 11. For each moduleRequest in moduleRequests, perform the internal module script graph fetching procedure given moduleRequest,
|
||||
// fetch client settings object, destination, options, module script, visited set, and onInternalFetchingComplete as defined below.
|
||||
// If performFetch was given, pass it along as well.
|
||||
for (auto const& module_request : module_requests) {
|
||||
// onInternalFetchingComplete given result is the following algorithm:
|
||||
auto on_internal_fetching_complete = create_on_fetch_script_complete(realm.heap(), [failed, pending_count, &module_script, on_complete](auto result) mutable {
|
||||
// 1. If failed is true, then abort these steps.
|
||||
if (failed)
|
||||
return;
|
||||
|
||||
// 2. If result is null, then set failed to true, run onComplete with null, and abort these steps.
|
||||
if (!result) {
|
||||
failed = true;
|
||||
on_complete->function()(nullptr);
|
||||
return;
|
||||
}
|
||||
|
||||
// 3. Assert: pendingCount is greater than zero.
|
||||
VERIFY(pending_count > 0);
|
||||
|
||||
// 4. Decrement pendingCount by one.
|
||||
--pending_count;
|
||||
|
||||
// 5. If pendingCount is zero, run onComplete with module script.
|
||||
if (pending_count == 0)
|
||||
on_complete->function()(&module_script);
|
||||
});
|
||||
|
||||
fetch_internal_module_script_graph(realm, module_request, fetch_client_settings_object, destination, options, module_script, visited_set, perform_fetch, on_internal_fetching_complete);
|
||||
}
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/webappapis.html#fetch-destination-from-module-type
|
||||
Fetch::Infrastructure::Request::Destination fetch_destination_from_module_type(Fetch::Infrastructure::Request::Destination default_destination, ByteString const& module_type)
|
||||
{
|
||||
|
|
|
@ -93,12 +93,10 @@ WebIDL::ExceptionOr<void> fetch_classic_worker_script(URL::URL const&, Environme
|
|||
WebIDL::ExceptionOr<GC::Ref<ClassicScript>> fetch_a_classic_worker_imported_script(URL::URL const&, HTML::EnvironmentSettingsObject&, PerformTheFetchHook = nullptr);
|
||||
WebIDL::ExceptionOr<void> fetch_module_worker_script_graph(URL::URL const&, EnvironmentSettingsObject& fetch_client, Fetch::Infrastructure::Request::Destination, EnvironmentSettingsObject& settings_object, PerformTheFetchHook, OnFetchScriptComplete);
|
||||
WebIDL::ExceptionOr<void> fetch_worklet_module_worker_script_graph(URL::URL const&, EnvironmentSettingsObject& fetch_client, Fetch::Infrastructure::Request::Destination, EnvironmentSettingsObject& settings_object, PerformTheFetchHook, OnFetchScriptComplete);
|
||||
void fetch_internal_module_script_graph(JS::Realm&, JS::ModuleRequest const& module_request, EnvironmentSettingsObject& fetch_client_settings_object, Fetch::Infrastructure::Request::Destination, ScriptFetchOptions const&, Script& referring_script, HashTable<ModuleLocationTuple> const& visited_set, PerformTheFetchHook, OnFetchScriptComplete on_complete);
|
||||
void fetch_external_module_script_graph(JS::Realm&, URL::URL const&, EnvironmentSettingsObject& settings_object, ScriptFetchOptions const&, OnFetchScriptComplete on_complete);
|
||||
void fetch_inline_module_script_graph(JS::Realm&, ByteString const& filename, ByteString const& source_text, URL::URL const& base_url, EnvironmentSettingsObject& settings_object, OnFetchScriptComplete on_complete);
|
||||
void fetch_single_imported_module_script(JS::Realm&, URL::URL const&, EnvironmentSettingsObject& fetch_client, Fetch::Infrastructure::Request::Destination, ScriptFetchOptions const&, JS::Realm& module_map_realm, Fetch::Infrastructure::Request::ReferrerType, JS::ModuleRequest const&, PerformTheFetchHook, OnFetchScriptComplete on_complete);
|
||||
|
||||
void fetch_descendants_of_a_module_script(JS::Realm&, JavaScriptModuleScript& module_script, EnvironmentSettingsObject& fetch_client_settings_object, Fetch::Infrastructure::Request::Destination, HashTable<ModuleLocationTuple> visited_set, PerformTheFetchHook, OnFetchScriptComplete callback);
|
||||
void fetch_descendants_of_and_link_a_module_script(JS::Realm&, JavaScriptModuleScript&, EnvironmentSettingsObject&, Fetch::Infrastructure::Request::Destination, PerformTheFetchHook, OnFetchScriptComplete on_complete);
|
||||
|
||||
Fetch::Infrastructure::Request::Destination fetch_destination_from_module_type(Fetch::Infrastructure::Request::Destination, ByteString const&);
|
||||
|
|
Loading…
Add table
Reference in a new issue