Procházet zdrojové kódy

LibWeb/Fetch: Use a basic filtered response for redirect navigations

Match following change in the spec:
https://github.com/whatwg/fetch/commit/8f109835dcff90d19caed4b551a0da32d9d0f57e
Aliaksandr Kalenik před 2 roky
rodič
revize
47f03c3a9a

+ 7 - 4
Userland/Libraries/LibWeb/Fetch/Fetching/Fetching.cpp

@@ -920,15 +920,18 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<PendingResponse>> http_fetch(JS::Realm& rea
                 break;
             // -> "manual"
             case Infrastructure::Request::RedirectMode::Manual:
-                // Set response to an opaque-redirect filtered response whose internal response is actualResponse. If
-                // request’s mode is "navigate", then set fetchParams’s controller’s next manual redirect steps to run
-                // HTTP-redirect fetch given fetchParams and response.
-                response = Infrastructure::OpaqueRedirectFilteredResponse::create(vm, *actual_response);
+                // 1. If request’s mode is "navigate", then set fetchParams’s controller’s next manual redirect steps
+                //    to run HTTP-redirect fetch given fetchParams and response.
                 if (request->mode() == Infrastructure::Request::Mode::Navigate) {
                     fetch_params.controller()->set_next_manual_redirect_steps([&realm, &fetch_params, response] {
                         (void)http_redirect_fetch(realm, fetch_params, *response);
                     });
                 }
+                // 2. Otherwise, set response to an opaque-redirect filtered response whose internal response is
+                //    actualResponse.
+                else {
+                    response = Infrastructure::OpaqueRedirectFilteredResponse::create(vm, *actual_response);
+                }
                 break;
             // -> "follow"
             case Infrastructure::Request::RedirectMode::Follow: