|
@@ -260,7 +260,7 @@ WebIDL::ExceptionOr<Optional<JS::NonnullGCPtr<PendingResponse>>> main_fetch(JS::
|
|
|
request->current_url().set_scheme("https"sv);
|
|
|
}
|
|
|
|
|
|
- JS::SafeFunction<WebIDL::ExceptionOr<JS::NonnullGCPtr<PendingResponse>>()> get_response = [&realm, &vm, &fetch_params, request]() mutable -> WebIDL::ExceptionOr<JS::NonnullGCPtr<PendingResponse>> {
|
|
|
+ JS::SafeFunction<WebIDL::ExceptionOr<JS::NonnullGCPtr<PendingResponse>>()> get_response = [&realm, &vm, &fetch_params, request]() -> WebIDL::ExceptionOr<JS::NonnullGCPtr<PendingResponse>> {
|
|
|
dbgln_if(WEB_FETCH_DEBUG, "Fetch: Running 'main fetch' get_response() function");
|
|
|
|
|
|
// -> fetchParams’s preloaded response candidate is not null
|
|
@@ -333,7 +333,7 @@ WebIDL::ExceptionOr<Optional<JS::NonnullGCPtr<PendingResponse>>> main_fetch(JS::
|
|
|
|
|
|
// 2. Let corsWithPreflightResponse be the result of running HTTP fetch given fetchParams and true.
|
|
|
auto cors_with_preflight_response = TRY(http_fetch(realm, fetch_params, MakeCORSPreflight::Yes));
|
|
|
- cors_with_preflight_response->when_loaded([returned_pending_response](JS::NonnullGCPtr<Infrastructure::Response> cors_with_preflight_response) mutable {
|
|
|
+ cors_with_preflight_response->when_loaded([returned_pending_response](JS::NonnullGCPtr<Infrastructure::Response> cors_with_preflight_response) {
|
|
|
dbgln_if(WEB_FETCH_DEBUG, "Fetch: Running 'main fetch' cors_with_preflight_response load callback");
|
|
|
// 3. If corsWithPreflightResponse is a network error, then clear cache entries using request.
|
|
|
if (cors_with_preflight_response->is_network_error()) {
|
|
@@ -368,7 +368,7 @@ WebIDL::ExceptionOr<Optional<JS::NonnullGCPtr<PendingResponse>>> main_fetch(JS::
|
|
|
}
|
|
|
|
|
|
// 10. If recursive is false, then run the remaining steps in parallel.
|
|
|
- Platform::EventLoopPlugin::the().deferred_invoke([&realm, &vm, &fetch_params, request, response, get_response = move(get_response)]() mutable {
|
|
|
+ Platform::EventLoopPlugin::the().deferred_invoke([&realm, &vm, &fetch_params, request, response, get_response = move(get_response)] {
|
|
|
// 11. If response is null, then set response to the result of running the steps corresponding to the first
|
|
|
// matching statement:
|
|
|
auto pending_response = PendingResponse::create(vm, request, Infrastructure::Response::create(vm));
|
|
@@ -898,7 +898,7 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<PendingResponse>> http_fetch(JS::Realm& rea
|
|
|
// HTTP-redirect fetch given fetchParams and response.
|
|
|
response = Infrastructure::OpaqueRedirectFilteredResponse::create(vm, *actual_response);
|
|
|
if (request->mode() == Infrastructure::Request::Mode::Navigate) {
|
|
|
- fetch_params.controller()->set_next_manual_redirect_steps([&realm, &fetch_params, response]() mutable {
|
|
|
+ fetch_params.controller()->set_next_manual_redirect_steps([&realm, &fetch_params, response] {
|
|
|
(void)http_redirect_fetch(realm, fetch_params, *response);
|
|
|
});
|
|
|
}
|
|
@@ -914,7 +914,7 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<PendingResponse>> http_fetch(JS::Realm& rea
|
|
|
}
|
|
|
|
|
|
if (inner_pending_response) {
|
|
|
- inner_pending_response->when_loaded([returned_pending_response](JS::NonnullGCPtr<Infrastructure::Response> response) mutable {
|
|
|
+ inner_pending_response->when_loaded([returned_pending_response](JS::NonnullGCPtr<Infrastructure::Response> response) {
|
|
|
dbgln_if(WEB_FETCH_DEBUG, "Fetch: Running 'HTTP fetch' inner_pending_response load callback");
|
|
|
returned_pending_response->resolve(response);
|
|
|
});
|
|
@@ -1465,7 +1465,7 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<PendingResponse>> http_network_or_cache_fet
|
|
|
inner_pending_response = TRY_OR_IGNORE(http_network_or_cache_fetch(realm, fetch_params, IsAuthenticationFetch::Yes));
|
|
|
}
|
|
|
|
|
|
- inner_pending_response->when_loaded([&realm, &vm, &fetch_params, request, returned_pending_response, is_authentication_fetch, is_new_connection_fetch](JS::NonnullGCPtr<Infrastructure::Response> response) mutable {
|
|
|
+ inner_pending_response->when_loaded([&realm, &vm, &fetch_params, request, returned_pending_response, is_authentication_fetch, is_new_connection_fetch](JS::NonnullGCPtr<Infrastructure::Response> response) {
|
|
|
dbgln_if(WEB_FETCH_DEBUG, "Fetch: Running 'HTTP network-or-cache fetch' inner_pending_response load callback");
|
|
|
// 15. If response’s status is 407, then:
|
|
|
if (response->status() == 407) {
|
|
@@ -1515,7 +1515,7 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<PendingResponse>> http_network_or_cache_fet
|
|
|
inner_pending_response = TRY_OR_IGNORE(http_network_or_cache_fetch(realm, fetch_params, is_authentication_fetch, IsNewConnectionFetch::Yes));
|
|
|
}
|
|
|
|
|
|
- inner_pending_response->when_loaded([returned_pending_response, is_authentication_fetch](JS::NonnullGCPtr<Infrastructure::Response> response) mutable {
|
|
|
+ inner_pending_response->when_loaded([returned_pending_response, is_authentication_fetch](JS::NonnullGCPtr<Infrastructure::Response> response) {
|
|
|
// 17. If isAuthenticationFetch is true, then create an authentication entry for request and the given
|
|
|
// realm.
|
|
|
if (is_authentication_fetch == IsAuthenticationFetch::Yes) {
|
|
@@ -1595,7 +1595,7 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<PendingResponse>> nonstandard_resource_load
|
|
|
|
|
|
ResourceLoader::the().load(
|
|
|
load_request,
|
|
|
- [&realm, &vm, request, pending_response](auto data, auto& response_headers, auto status_code) mutable {
|
|
|
+ [&realm, &vm, request, pending_response](auto data, auto& response_headers, auto status_code) {
|
|
|
dbgln_if(WEB_FETCH_DEBUG, "Fetch: ResourceLoader load for '{}' complete", request->url());
|
|
|
if constexpr (WEB_FETCH_DEBUG)
|
|
|
log_response(status_code, response_headers, data);
|
|
@@ -1610,7 +1610,7 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<PendingResponse>> nonstandard_resource_load
|
|
|
// FIXME: Set response status message
|
|
|
pending_response->resolve(response);
|
|
|
},
|
|
|
- [&vm, request, pending_response](auto& error, auto status_code) mutable {
|
|
|
+ [&vm, request, pending_response](auto& error, auto status_code) {
|
|
|
dbgln_if(WEB_FETCH_DEBUG, "Fetch: ResourceLoader load for '{}' failed: {} (status {})", request->url(), error, status_code.value_or(0));
|
|
|
auto response = Infrastructure::Response::create(vm);
|
|
|
// FIXME: This is ugly, ResourceLoader should tell us.
|