| Index: third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp
|
| diff --git a/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp b/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp
|
| index 593c806a974ebfc1e1b984e4e34c984f7b91679b..1cb976b3cc890ac2dcfeb2ca280e9bfaa40f0271 100644
|
| --- a/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp
|
| +++ b/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp
|
| @@ -415,7 +415,7 @@ void DocumentThreadableLoader::clear()
|
| // RawResource::didAddClient(), clearing |request| won't be propagated
|
| // to content::WebURLLoaderImpl. So, this loader must also get detached from
|
| // the resource by calling clearResource().
|
| -void DocumentThreadableLoader::redirectReceived(Resource* resource, ResourceRequest& request, const ResourceResponse& redirectResponse)
|
| +bool DocumentThreadableLoader::redirectReceived(Resource* resource, ResourceRequest& request, const ResourceResponse& redirectResponse)
|
| {
|
| ASSERT(m_client);
|
| ASSERT_UNUSED(resource, resource == this->resource());
|
| @@ -428,9 +428,7 @@ void DocumentThreadableLoader::redirectReceived(Resource* resource, ResourceRequ
|
|
|
| handlePreflightFailure(redirectResponse.url().getString(), "Response for preflight is invalid (redirect)");
|
|
|
| - request = ResourceRequest();
|
| -
|
| - return;
|
| + return false;
|
| }
|
|
|
| if (m_redirectMode == WebURLRequest::FetchRedirectModeManual) {
|
| @@ -451,8 +449,7 @@ void DocumentThreadableLoader::redirectReceived(Resource* resource, ResourceRequ
|
| responseReceived(resource, redirectResponse, wrapUnique(new EmptyDataHandle()));
|
|
|
| if (!self) {
|
| - request = ResourceRequest();
|
| - return;
|
| + return false;
|
| }
|
|
|
| if (m_client) {
|
| @@ -460,9 +457,7 @@ void DocumentThreadableLoader::redirectReceived(Resource* resource, ResourceRequ
|
| notifyFinished(resource);
|
| }
|
|
|
| - request = ResourceRequest();
|
| -
|
| - return;
|
| + return false;
|
| }
|
|
|
| if (m_redirectMode == WebURLRequest::FetchRedirectModeError) {
|
| @@ -470,24 +465,21 @@ void DocumentThreadableLoader::redirectReceived(Resource* resource, ResourceRequ
|
| clear();
|
| client->didFailRedirectCheck();
|
|
|
| - request = ResourceRequest();
|
| -
|
| - return;
|
| + return false;
|
| }
|
|
|
| // Allow same origin requests to continue after allowing clients to audit the redirect.
|
| if (isAllowedRedirect(request.url())) {
|
| if (m_client->isDocumentThreadableLoaderClient())
|
| - static_cast<DocumentThreadableLoaderClient*>(m_client)->willFollowRedirect(request, redirectResponse);
|
| - return;
|
| + return static_cast<DocumentThreadableLoaderClient*>(m_client)->willFollowRedirect(request, redirectResponse);
|
| + return true;
|
| }
|
|
|
| if (m_corsRedirectLimit <= 0) {
|
| ThreadableLoaderClient* client = m_client;
|
| clear();
|
| client->didFailRedirectCheck();
|
| - request = ResourceRequest();
|
| - return;
|
| + return false;
|
| }
|
|
|
| --m_corsRedirectLimit;
|
| @@ -515,8 +507,7 @@ void DocumentThreadableLoader::redirectReceived(Resource* resource, ResourceRequ
|
| ThreadableLoaderClient* client = m_client;
|
| clear();
|
| client->didFailAccessControlCheck(ResourceError(errorDomainBlinkInternal, 0, redirectResponse.url().getString(), accessControlErrorDescription));
|
| - request = ResourceRequest();
|
| - return;
|
| + return false;
|
| }
|
|
|
| // FIXME: consider combining this with CORS redirect handling performed by
|
| @@ -553,6 +544,8 @@ void DocumentThreadableLoader::redirectReceived(Resource* resource, ResourceRequ
|
| request.setHTTPHeaderField(header.key, header.value);
|
| makeCrossOriginAccessRequest(request);
|
| // |this| may be dead here.
|
| +
|
| + return true;
|
| }
|
|
|
| void DocumentThreadableLoader::redirectBlocked()
|
|
|