Index: content/browser/loader/resource_loader.cc |
diff --git a/content/browser/loader/resource_loader.cc b/content/browser/loader/resource_loader.cc |
index 06d0363d7d0f68475233af1b4f0bb1baded8dd18..745a5fd4d0ad35f797474e6a43dd018053912b8f 100644 |
--- a/content/browser/loader/resource_loader.cc |
+++ b/content/browser/loader/resource_loader.cc |
@@ -249,12 +249,28 @@ void ResourceLoader::OnReceivedRedirect(net::URLRequest* unused, |
return; |
} |
+ *defer = true; |
+ deferred_stage_ = DEFERRED_REDIRECT; |
+ base::ThreadTaskRunnerHandle::Get()->PostTask( |
+ FROM_HERE, base::Bind(&ResourceLoader::Resume, |
+ weak_ptr_factory_.GetWeakPtr())); |
+ Cancel(); |
+ if(true) |
+ return; |
xunjieli
2015/07/10 20:32:25
I don't understand why this block is almost identi
mmenke
2015/07/10 21:37:31
Hrm...This shouldn't be in this CL. Was investiga
|
+ |
scoped_refptr<ResourceResponse> response(new ResourceResponse()); |
PopulateResourceResponse(info, request_.get(), response.get()); |
if (!handler_->OnRequestRedirected(redirect_info, response.get(), defer)) { |
Cancel(); |
} else if (*defer) { |
deferred_stage_ = DEFERRED_REDIRECT; // Follow redirect when resumed. |
+ } else { |
+ *defer = true; |
+ deferred_stage_ = DEFERRED_REDIRECT; |
+ base::ThreadTaskRunnerHandle::Get()->PostTask( |
+ FROM_HERE, base::Bind(&ResourceLoader::Resume, |
+ weak_ptr_factory_.GetWeakPtr())); |
+ Cancel(); |
} |
} |