|
@@ -722,8 +722,7 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<PendingResponse>> scheme_fetch(JS::Realm& r
|
|
|
else if (request->current_url().scheme() == "file"sv) {
|
|
|
// For now, unfortunate as it is, file: URLs are left as an exercise for the reader.
|
|
|
// When in doubt, return a network error.
|
|
|
- // FIXME: Support 'file://' URLs
|
|
|
- return PendingResponse::create(vm, request, Infrastructure::Response::network_error(vm, "Request has 'file:' URL which is currently unsupported"sv));
|
|
|
+ return TRY(nonstandard_resource_loader_file_or_http_network_fetch(realm, fetch_params));
|
|
|
}
|
|
|
// -> HTTP(S) scheme
|
|
|
else if (Infrastructure::is_http_or_https_scheme(request->current_url().scheme())) {
|
|
@@ -1392,7 +1391,7 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<PendingResponse>> http_network_or_cache_fet
|
|
|
|
|
|
// 2. Let forwardResponse be the result of running HTTP-network fetch given httpFetchParams, includeCredentials,
|
|
|
// and isNewConnectionFetch.
|
|
|
- pending_forward_response = TRY(nonstandard_resource_loader_http_network_fetch(realm, *http_fetch_params, include_credentials, is_new_connection_fetch));
|
|
|
+ pending_forward_response = TRY(nonstandard_resource_loader_file_or_http_network_fetch(realm, *http_fetch_params, include_credentials, is_new_connection_fetch));
|
|
|
} else {
|
|
|
pending_forward_response = PendingResponse::create(vm, request, Infrastructure::Response::create(vm));
|
|
|
}
|
|
@@ -1598,7 +1597,8 @@ static void log_response(auto const& status_code, auto const& headers, auto cons
|
|
|
|
|
|
// https://fetch.spec.whatwg.org/#concept-http-network-fetch
|
|
|
// Drop-in replacement for 'HTTP-network fetch', but obviously non-standard :^)
|
|
|
-WebIDL::ExceptionOr<JS::NonnullGCPtr<PendingResponse>> nonstandard_resource_loader_http_network_fetch(JS::Realm& realm, Infrastructure::FetchParams const& fetch_params, IncludeCredentials include_credentials, IsNewConnectionFetch is_new_connection_fetch)
|
|
|
+// It also handles file:// URLs since those can also go through ResourceLoader.
|
|
|
+WebIDL::ExceptionOr<JS::NonnullGCPtr<PendingResponse>> nonstandard_resource_loader_file_or_http_network_fetch(JS::Realm& realm, Infrastructure::FetchParams const& fetch_params, IncludeCredentials include_credentials, IsNewConnectionFetch is_new_connection_fetch)
|
|
|
{
|
|
|
dbgln_if(WEB_FETCH_DEBUG, "Fetch: Running 'non-standard HTTP-network fetch' with: fetch_params @ {}", &fetch_params);
|
|
|
|