Index: Source/core/loader/DocumentThreadableLoader.cpp |
diff --git a/Source/core/loader/DocumentThreadableLoader.cpp b/Source/core/loader/DocumentThreadableLoader.cpp |
index c497a11efbbd8a6f6c5da97955cb00b4ac7fe57c..4ff4893a80151d7be4717ce44f1cdafbb36f2a2c 100644 |
--- a/Source/core/loader/DocumentThreadableLoader.cpp |
+++ b/Source/core/loader/DocumentThreadableLoader.cpp |
@@ -314,6 +314,19 @@ void DocumentThreadableLoader::redirectReceived(Resource* resource, ResourceRequ |
RefPtr<DocumentThreadableLoader> protect(this); |
+ if (m_actualRequest) { |
+ reportResponseReceived(resource->identifier(), redirectResponse); |
+ |
+ clearResource(); |
+ request = ResourceRequest(); |
+ |
+ m_requestStartedSeconds = 0.0; |
+ |
+ handlePreflightFailure(redirectResponse.url().string(), "Response for preflight is invalid (redirect)"); |
+ |
+ return; |
+ } |
+ |
if (m_redirectMode == WebURLRequest::FetchRedirectModeManual) { |
// We use |m_redirectMode| to check the original redirect mode. |
// |request| is a new request for redirect. So we don't set the redirect |