Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(347)

Unified Diff: net/url_request/url_request_unittest.cc

Issue 1232113002: Prevent URLRequestRedirectJob from doing async execution (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Override Kill() Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/url_request/url_request_redirect_job.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/url_request/url_request_unittest.cc
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc
index 2c0af0b141d4bf652bf0294e2359085f29595a6c..46bb5c7ed55a52778bd027d9caa9f6566e2d80f6 100644
--- a/net/url_request/url_request_unittest.cc
+++ b/net/url_request/url_request_unittest.cc
@@ -9210,4 +9210,26 @@ TEST_F(URLRequestTest, NetworkAccessedSetOnHostResolutionFailure) {
EXPECT_TRUE(req->response_info().network_accessed);
}
+// Test that URLRequest is canceled correctly and with detached request
+// URLRequestRedirectJob does not crash in StartAsync.
+// See http://crbug.com/508900
+TEST_F(URLRequestTest, URLRequestRedirectJobDetachRequestNoCrash) {
+ TestDelegate d;
+ scoped_ptr<URLRequest> req(default_context_.CreateRequest(
+ GURL("http://not-a-real-domain/"), DEFAULT_PRIORITY, &d));
+
+ URLRequestRedirectJob* job = new URLRequestRedirectJob(
+ req.get(), &default_network_delegate_,
+ GURL("http://this-should-never-be-navigated-to/"),
+ URLRequestRedirectJob::REDIRECT_307_TEMPORARY_REDIRECT, "Jumbo shrimp");
+ AddTestInterceptor()->set_main_intercept_job(job);
+
+ req->Start();
+ req->Cancel();
+ job->DetachRequest();
+ base::RunLoop().RunUntilIdle();
+ EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status());
+ EXPECT_EQ(0, d.received_redirect_count());
+}
+
} // namespace net
« no previous file with comments | « net/url_request/url_request_redirect_job.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698