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

Side by Side Diff: trunk/src/content/browser/loader/resource_dispatcher_host_unittest.cc

Issue 23551005: Revert 219709 "Remove the Extensions URLRequestContext." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 3 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <vector> 5 #include <vector>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/memory/scoped_vector.h" 9 #include "base/memory/scoped_vector.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 15 matching lines...) Expand all
26 #include "content/public/common/process_type.h" 26 #include "content/public/common/process_type.h"
27 #include "content/public/common/resource_response.h" 27 #include "content/public/common/resource_response.h"
28 #include "content/public/test/test_browser_context.h" 28 #include "content/public/test/test_browser_context.h"
29 #include "content/test/test_content_browser_client.h" 29 #include "content/test/test_content_browser_client.h"
30 #include "net/base/net_errors.h" 30 #include "net/base/net_errors.h"
31 #include "net/base/upload_bytes_element_reader.h" 31 #include "net/base/upload_bytes_element_reader.h"
32 #include "net/base/upload_data_stream.h" 32 #include "net/base/upload_data_stream.h"
33 #include "net/http/http_util.h" 33 #include "net/http/http_util.h"
34 #include "net/url_request/url_request.h" 34 #include "net/url_request/url_request.h"
35 #include "net/url_request/url_request_context.h" 35 #include "net/url_request/url_request_context.h"
36 #include "net/url_request/url_request_context_getter.h"
37 #include "net/url_request/url_request_job.h" 36 #include "net/url_request/url_request_job.h"
38 #include "net/url_request/url_request_simple_job.h" 37 #include "net/url_request/url_request_simple_job.h"
39 #include "net/url_request/url_request_test_job.h" 38 #include "net/url_request/url_request_test_job.h"
40 #include "testing/gtest/include/gtest/gtest.h" 39 #include "testing/gtest/include/gtest/gtest.h"
41 #include "webkit/common/appcache/appcache_interfaces.h" 40 #include "webkit/common/appcache/appcache_interfaces.h"
42 41
43 // TODO(eroman): Write unit tests for SafeBrowsing that exercise 42 // TODO(eroman): Write unit tests for SafeBrowsing that exercise
44 // SafeBrowsingResourceHandler. 43 // SafeBrowsingResourceHandler.
45 44
46 namespace content { 45 namespace content {
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 net::URLRequestContext* const request_context_; 175 net::URLRequestContext* const request_context_;
177 }; 176 };
178 177
179 // This class forwards the incoming messages to the ResourceDispatcherHostTest. 178 // This class forwards the incoming messages to the ResourceDispatcherHostTest.
180 // This is used to emulate different sub-processes, since this filter will 179 // This is used to emulate different sub-processes, since this filter will
181 // have a different ID than the original. For the test, we want all the incoming 180 // have a different ID than the original. For the test, we want all the incoming
182 // messages to go to the same place, which is why this forwards. 181 // messages to go to the same place, which is why this forwards.
183 class ForwardingFilter : public ResourceMessageFilter { 182 class ForwardingFilter : public ResourceMessageFilter {
184 public: 183 public:
185 explicit ForwardingFilter(IPC::Sender* dest, 184 explicit ForwardingFilter(IPC::Sender* dest,
186 ResourceContext* resource_context, 185 ResourceContext* resource_context)
187 net::URLRequestContextGetter* request_context)
188 : ResourceMessageFilter( 186 : ResourceMessageFilter(
189 ChildProcessHostImpl::GenerateChildProcessUniqueId(), 187 ChildProcessHostImpl::GenerateChildProcessUniqueId(),
190 PROCESS_TYPE_RENDERER, 188 PROCESS_TYPE_RENDERER,
191 resource_context, NULL, NULL, NULL, 189 resource_context, NULL, NULL, NULL,
192 new MockURLRequestContextSelector( 190 new MockURLRequestContextSelector(
193 request_context->GetURLRequestContext())), 191 resource_context->GetRequestContext())),
194 dest_(dest) { 192 dest_(dest) {
195 OnChannelConnected(base::GetCurrentProcId()); 193 OnChannelConnected(base::GetCurrentProcId());
196 } 194 }
197 195
198 // ResourceMessageFilter override 196 // ResourceMessageFilter override
199 virtual bool Send(IPC::Message* msg) OVERRIDE { 197 virtual bool Send(IPC::Message* msg) OVERRIDE {
200 if (!dest_) 198 if (!dest_)
201 return false; 199 return false;
202 return dest_->Send(msg); 200 return dest_->Send(msg);
203 } 201 }
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 file_thread_(BrowserThread::FILE_USER_BLOCKING, &message_loop_), 526 file_thread_(BrowserThread::FILE_USER_BLOCKING, &message_loop_),
529 cache_thread_(BrowserThread::CACHE, &message_loop_), 527 cache_thread_(BrowserThread::CACHE, &message_loop_),
530 io_thread_(BrowserThread::IO, &message_loop_), 528 io_thread_(BrowserThread::IO, &message_loop_),
531 old_factory_(NULL), 529 old_factory_(NULL),
532 resource_type_(ResourceType::SUB_RESOURCE), 530 resource_type_(ResourceType::SUB_RESOURCE),
533 send_data_received_acks_(false) { 531 send_data_received_acks_(false) {
534 browser_context_.reset(new TestBrowserContext()); 532 browser_context_.reset(new TestBrowserContext());
535 BrowserContext::EnsureResourceContextInitialized(browser_context_.get()); 533 BrowserContext::EnsureResourceContextInitialized(browser_context_.get());
536 message_loop_.RunUntilIdle(); 534 message_loop_.RunUntilIdle();
537 filter_ = new ForwardingFilter( 535 filter_ = new ForwardingFilter(
538 this, browser_context_->GetResourceContext(), 536 this, browser_context_->GetResourceContext());
539 browser_context_->GetRequestContext());
540 } 537 }
541 538
542 virtual ~ResourceDispatcherHostTest() { 539 virtual ~ResourceDispatcherHostTest() {
543 for (std::set<int>::iterator it = child_ids_.begin(); 540 for (std::set<int>::iterator it = child_ids_.begin();
544 it != child_ids_.end(); ++it) { 541 it != child_ids_.end(); ++it) {
545 host_.CancelRequestsForProcess(*it); 542 host_.CancelRequestsForProcess(*it);
546 } 543 }
547 } 544 }
548 545
549 // IPC::Sender implementation 546 // IPC::Sender implementation
(...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after
1046 ASSERT_TRUE(IPC::ReadParam(&msgs[0][0], &iter, &request_id)); 1043 ASSERT_TRUE(IPC::ReadParam(&msgs[0][0], &iter, &request_id));
1047 ASSERT_TRUE(IPC::ReadParam(&msgs[0][0], &iter, &error_code)); 1044 ASSERT_TRUE(IPC::ReadParam(&msgs[0][0], &iter, &error_code));
1048 1045
1049 EXPECT_EQ(net::ERR_ACCESS_DENIED, error_code); 1046 EXPECT_EQ(net::ERR_ACCESS_DENIED, error_code);
1050 } 1047 }
1051 1048
1052 // The host delegate acts as a second one so we can have some requests 1049 // The host delegate acts as a second one so we can have some requests
1053 // pending and some canceled. 1050 // pending and some canceled.
1054 class TestFilter : public ForwardingFilter { 1051 class TestFilter : public ForwardingFilter {
1055 public: 1052 public:
1056 explicit TestFilter(ResourceContext* resource_context, 1053 explicit TestFilter(ResourceContext* resource_context)
1057 net::URLRequestContextGetter* url_request_context) 1054 : ForwardingFilter(NULL, resource_context),
1058 : ForwardingFilter(NULL, resource_context, url_request_context),
1059 has_canceled_(false), 1055 has_canceled_(false),
1060 received_after_canceled_(0) { 1056 received_after_canceled_(0) {
1061 } 1057 }
1062 1058
1063 // ForwardingFilter override 1059 // ForwardingFilter override
1064 virtual bool Send(IPC::Message* msg) OVERRIDE { 1060 virtual bool Send(IPC::Message* msg) OVERRIDE {
1065 // no messages should be received when the process has been canceled 1061 // no messages should be received when the process has been canceled
1066 if (has_canceled_) 1062 if (has_canceled_)
1067 received_after_canceled_++; 1063 received_after_canceled_++;
1068 delete msg; 1064 delete msg;
1069 return true; 1065 return true;
1070 } 1066 }
1071 1067
1072 bool has_canceled_; 1068 bool has_canceled_;
1073 int received_after_canceled_; 1069 int received_after_canceled_;
1074 1070
1075 private: 1071 private:
1076 virtual ~TestFilter() {} 1072 virtual ~TestFilter() {}
1077 }; 1073 };
1078 1074
1079 // Tests CancelRequestsForProcess 1075 // Tests CancelRequestsForProcess
1080 TEST_F(ResourceDispatcherHostTest, TestProcessCancel) { 1076 TEST_F(ResourceDispatcherHostTest, TestProcessCancel) {
1081 scoped_refptr<TestFilter> test_filter = new TestFilter( 1077 scoped_refptr<TestFilter> test_filter = new TestFilter(
1082 browser_context_->GetResourceContext(), 1078 browser_context_->GetResourceContext());
1083 browser_context_->GetRequestContext());
1084 1079
1085 // request 1 goes to the test delegate 1080 // request 1 goes to the test delegate
1086 ResourceHostMsg_Request request = CreateResourceRequest( 1081 ResourceHostMsg_Request request = CreateResourceRequest(
1087 "GET", ResourceType::SUB_RESOURCE, net::URLRequestTestJob::test_url_1()); 1082 "GET", ResourceType::SUB_RESOURCE, net::URLRequestTestJob::test_url_1());
1088 1083
1089 MakeTestRequest(test_filter.get(), 0, 1, 1084 MakeTestRequest(test_filter.get(), 0, 1,
1090 net::URLRequestTestJob::test_url_1()); 1085 net::URLRequestTestJob::test_url_1());
1091 1086
1092 // request 2 goes to us 1087 // request 2 goes to us
1093 MakeTestRequest(0, 2, net::URLRequestTestJob::test_url_2()); 1088 MakeTestRequest(0, 2, net::URLRequestTestJob::test_url_2());
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
1216 1211
1217 msgs.clear(); 1212 msgs.clear();
1218 accum_.GetClassifiedMessages(&msgs); 1213 accum_.GetClassifiedMessages(&msgs);
1219 ASSERT_EQ(0U, msgs.size()); 1214 ASSERT_EQ(0U, msgs.size());
1220 } 1215 }
1221 1216
1222 // Tests that blocked requests are canceled if their associated process dies. 1217 // Tests that blocked requests are canceled if their associated process dies.
1223 TEST_F(ResourceDispatcherHostTest, TestBlockedRequestsProcessDies) { 1218 TEST_F(ResourceDispatcherHostTest, TestBlockedRequestsProcessDies) {
1224 // This second filter is used to emulate a second process. 1219 // This second filter is used to emulate a second process.
1225 scoped_refptr<ForwardingFilter> second_filter = new ForwardingFilter( 1220 scoped_refptr<ForwardingFilter> second_filter = new ForwardingFilter(
1226 this, browser_context_->GetResourceContext(), 1221 this, browser_context_->GetResourceContext());
1227 browser_context_->GetRequestContext());
1228 1222
1229 host_.BlockRequestsForRoute(second_filter->child_id(), 0); 1223 host_.BlockRequestsForRoute(second_filter->child_id(), 0);
1230 1224
1231 MakeTestRequest(filter_.get(), 0, 1, net::URLRequestTestJob::test_url_1()); 1225 MakeTestRequest(filter_.get(), 0, 1, net::URLRequestTestJob::test_url_1());
1232 MakeTestRequest(second_filter.get(), 0, 2, 1226 MakeTestRequest(second_filter.get(), 0, 2,
1233 net::URLRequestTestJob::test_url_2()); 1227 net::URLRequestTestJob::test_url_2());
1234 MakeTestRequest(filter_.get(), 0, 3, net::URLRequestTestJob::test_url_3()); 1228 MakeTestRequest(filter_.get(), 0, 3, net::URLRequestTestJob::test_url_3());
1235 MakeTestRequest(second_filter.get(), 0, 4, 1229 MakeTestRequest(second_filter.get(), 0, 4,
1236 net::URLRequestTestJob::test_url_1()); 1230 net::URLRequestTestJob::test_url_1());
1237 1231
(...skipping 16 matching lines...) Expand all
1254 EXPECT_TRUE(host_.blocked_loaders_map_.empty()); 1248 EXPECT_TRUE(host_.blocked_loaders_map_.empty());
1255 } 1249 }
1256 1250
1257 // Tests that blocked requests don't leak when the ResourceDispatcherHost goes 1251 // Tests that blocked requests don't leak when the ResourceDispatcherHost goes
1258 // away. Note that we rely on Purify for finding the leaks if any. 1252 // away. Note that we rely on Purify for finding the leaks if any.
1259 // If this test turns the Purify bot red, check the ResourceDispatcherHost 1253 // If this test turns the Purify bot red, check the ResourceDispatcherHost
1260 // destructor to make sure the blocked requests are deleted. 1254 // destructor to make sure the blocked requests are deleted.
1261 TEST_F(ResourceDispatcherHostTest, TestBlockedRequestsDontLeak) { 1255 TEST_F(ResourceDispatcherHostTest, TestBlockedRequestsDontLeak) {
1262 // This second filter is used to emulate a second process. 1256 // This second filter is used to emulate a second process.
1263 scoped_refptr<ForwardingFilter> second_filter = new ForwardingFilter( 1257 scoped_refptr<ForwardingFilter> second_filter = new ForwardingFilter(
1264 this, browser_context_->GetResourceContext(), 1258 this, browser_context_->GetResourceContext());
1265 browser_context_->GetRequestContext());
1266 1259
1267 host_.BlockRequestsForRoute(filter_->child_id(), 1); 1260 host_.BlockRequestsForRoute(filter_->child_id(), 1);
1268 host_.BlockRequestsForRoute(filter_->child_id(), 2); 1261 host_.BlockRequestsForRoute(filter_->child_id(), 2);
1269 host_.BlockRequestsForRoute(second_filter->child_id(), 1); 1262 host_.BlockRequestsForRoute(second_filter->child_id(), 1);
1270 1263
1271 MakeTestRequest(filter_.get(), 0, 1, net::URLRequestTestJob::test_url_1()); 1264 MakeTestRequest(filter_.get(), 0, 1, net::URLRequestTestJob::test_url_1());
1272 MakeTestRequest(filter_.get(), 1, 2, net::URLRequestTestJob::test_url_2()); 1265 MakeTestRequest(filter_.get(), 1, 2, net::URLRequestTestJob::test_url_2());
1273 MakeTestRequest(filter_.get(), 0, 3, net::URLRequestTestJob::test_url_3()); 1266 MakeTestRequest(filter_.get(), 0, 3, net::URLRequestTestJob::test_url_3());
1274 MakeTestRequest(second_filter.get(), 1, 4, 1267 MakeTestRequest(second_filter.get(), 1, 4,
1275 net::URLRequestTestJob::test_url_1()); 1268 net::URLRequestTestJob::test_url_1());
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1322 // Tighten the bound on the ResourceDispatcherHost, to speed things up. 1315 // Tighten the bound on the ResourceDispatcherHost, to speed things up.
1323 int kMaxCostPerProcess = 440000; 1316 int kMaxCostPerProcess = 440000;
1324 host_.set_max_outstanding_requests_cost_per_process(kMaxCostPerProcess); 1317 host_.set_max_outstanding_requests_cost_per_process(kMaxCostPerProcess);
1325 1318
1326 // Determine how many instance of test_url_2() we can request before 1319 // Determine how many instance of test_url_2() we can request before
1327 // throttling kicks in. 1320 // throttling kicks in.
1328 size_t kMaxRequests = kMaxCostPerProcess / kMemoryCostOfTest2Req; 1321 size_t kMaxRequests = kMaxCostPerProcess / kMemoryCostOfTest2Req;
1329 1322
1330 // This second filter is used to emulate a second process. 1323 // This second filter is used to emulate a second process.
1331 scoped_refptr<ForwardingFilter> second_filter = new ForwardingFilter( 1324 scoped_refptr<ForwardingFilter> second_filter = new ForwardingFilter(
1332 this, browser_context_->GetResourceContext(), 1325 this, browser_context_->GetResourceContext());
1333 browser_context_->GetRequestContext());
1334 1326
1335 // Saturate the number of outstanding requests for our process. 1327 // Saturate the number of outstanding requests for our process.
1336 for (size_t i = 0; i < kMaxRequests; ++i) { 1328 for (size_t i = 0; i < kMaxRequests; ++i) {
1337 MakeTestRequest(filter_.get(), 0, i + 1, 1329 MakeTestRequest(filter_.get(), 0, i + 1,
1338 net::URLRequestTestJob::test_url_2()); 1330 net::URLRequestTestJob::test_url_2());
1339 } 1331 }
1340 1332
1341 // Issue two more requests for our process -- these should fail immediately. 1333 // Issue two more requests for our process -- these should fail immediately.
1342 MakeTestRequest(filter_.get(), 0, kMaxRequests + 1, 1334 MakeTestRequest(filter_.get(), 0, kMaxRequests + 1,
1343 net::URLRequestTestJob::test_url_2()); 1335 net::URLRequestTestJob::test_url_2());
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1387 // that the global limit is honored. 1379 // that the global limit is honored.
1388 TEST_F(ResourceDispatcherHostTest, TooManyOutstandingRequests) { 1380 TEST_F(ResourceDispatcherHostTest, TooManyOutstandingRequests) {
1389 // Tighten the bound on the ResourceDispatcherHost, to speed things up. 1381 // Tighten the bound on the ResourceDispatcherHost, to speed things up.
1390 const size_t kMaxRequestsPerProcess = 2; 1382 const size_t kMaxRequestsPerProcess = 2;
1391 host_.set_max_num_in_flight_requests_per_process(kMaxRequestsPerProcess); 1383 host_.set_max_num_in_flight_requests_per_process(kMaxRequestsPerProcess);
1392 const size_t kMaxRequests = 3; 1384 const size_t kMaxRequests = 3;
1393 host_.set_max_num_in_flight_requests(kMaxRequests); 1385 host_.set_max_num_in_flight_requests(kMaxRequests);
1394 1386
1395 // Needed to emulate additional processes. 1387 // Needed to emulate additional processes.
1396 scoped_refptr<ForwardingFilter> second_filter = new ForwardingFilter( 1388 scoped_refptr<ForwardingFilter> second_filter = new ForwardingFilter(
1397 this, browser_context_->GetResourceContext(), 1389 this, browser_context_->GetResourceContext());
1398 browser_context_->GetRequestContext());
1399 scoped_refptr<ForwardingFilter> third_filter = new ForwardingFilter( 1390 scoped_refptr<ForwardingFilter> third_filter = new ForwardingFilter(
1400 this, browser_context_->GetResourceContext(), 1391 this, browser_context_->GetResourceContext());
1401 browser_context_->GetRequestContext());
1402 1392
1403 // Saturate the number of outstanding requests for our process. 1393 // Saturate the number of outstanding requests for our process.
1404 for (size_t i = 0; i < kMaxRequestsPerProcess; ++i) { 1394 for (size_t i = 0; i < kMaxRequestsPerProcess; ++i) {
1405 MakeTestRequest(filter_.get(), 0, i + 1, 1395 MakeTestRequest(filter_.get(), 0, i + 1,
1406 net::URLRequestTestJob::test_url_2()); 1396 net::URLRequestTestJob::test_url_2());
1407 } 1397 }
1408 1398
1409 // Issue another request for our process -- this should fail immediately. 1399 // Issue another request for our process -- this should fail immediately.
1410 MakeTestRequest(filter_.get(), 0, kMaxRequestsPerProcess + 1, 1400 MakeTestRequest(filter_.get(), 0, kMaxRequestsPerProcess + 1,
1411 net::URLRequestTestJob::test_url_2()); 1401 net::URLRequestTestJob::test_url_2());
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
1731 TransfersAllNavigationsContentBrowserClient new_client; 1721 TransfersAllNavigationsContentBrowserClient new_client;
1732 ContentBrowserClient* old_client = SetBrowserClientForTesting(&new_client); 1722 ContentBrowserClient* old_client = SetBrowserClientForTesting(&new_client);
1733 1723
1734 MakeTestRequest(render_view_id, request_id, GURL("http://example.com/blah")); 1724 MakeTestRequest(render_view_id, request_id, GURL("http://example.com/blah"));
1735 1725
1736 // Restore. 1726 // Restore.
1737 SetBrowserClientForTesting(old_client); 1727 SetBrowserClientForTesting(old_client);
1738 1728
1739 // This second filter is used to emulate a second process. 1729 // This second filter is used to emulate a second process.
1740 scoped_refptr<ForwardingFilter> second_filter = new ForwardingFilter( 1730 scoped_refptr<ForwardingFilter> second_filter = new ForwardingFilter(
1741 this, browser_context_->GetResourceContext(), 1731 this, browser_context_->GetResourceContext());
1742 browser_context_->GetRequestContext());
1743 1732
1744 int new_render_view_id = 1; 1733 int new_render_view_id = 1;
1745 int new_request_id = 2; 1734 int new_request_id = 2;
1746 1735
1747 const std::string kResponseBody = "hello world"; 1736 const std::string kResponseBody = "hello world";
1748 SetResponse("HTTP/1.1 200 OK\n" 1737 SetResponse("HTTP/1.1 200 OK\n"
1749 "Content-Type: text/plain\n\n", 1738 "Content-Type: text/plain\n\n",
1750 kResponseBody); 1739 kResponseBody);
1751 1740
1752 ResourceHostMsg_Request request = 1741 ResourceHostMsg_Request request =
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1793 TransfersAllNavigationsContentBrowserClient new_client; 1782 TransfersAllNavigationsContentBrowserClient new_client;
1794 ContentBrowserClient* old_client = SetBrowserClientForTesting(&new_client); 1783 ContentBrowserClient* old_client = SetBrowserClientForTesting(&new_client);
1795 1784
1796 MakeTestRequest(render_view_id, request_id, GURL("http://example.com/blah")); 1785 MakeTestRequest(render_view_id, request_id, GURL("http://example.com/blah"));
1797 1786
1798 // Restore. 1787 // Restore.
1799 SetBrowserClientForTesting(old_client); 1788 SetBrowserClientForTesting(old_client);
1800 1789
1801 // This second filter is used to emulate a second process. 1790 // This second filter is used to emulate a second process.
1802 scoped_refptr<ForwardingFilter> second_filter = new ForwardingFilter( 1791 scoped_refptr<ForwardingFilter> second_filter = new ForwardingFilter(
1803 this, browser_context_->GetResourceContext(), 1792 this, browser_context_->GetResourceContext());
1804 browser_context_->GetRequestContext());
1805 1793
1806 int new_render_view_id = 1; 1794 int new_render_view_id = 1;
1807 int new_request_id = 2; 1795 int new_request_id = 2;
1808 1796
1809 // Delay the start of the next request so that we can setup the response for 1797 // Delay the start of the next request so that we can setup the response for
1810 // the next URL. 1798 // the next URL.
1811 SetDelayedStartJobGeneration(true); 1799 SetDelayedStartJobGeneration(true);
1812 1800
1813 SetResponse("HTTP/1.1 302 Found\n" 1801 SetResponse("HTTP/1.1 302 Found\n"
1814 "Location: http://other.com/blerg\n\n"); 1802 "Location: http://other.com/blerg\n\n");
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
2010 } 1998 }
2011 1999
2012 base::MessageLoop::current()->RunUntilIdle(); 2000 base::MessageLoop::current()->RunUntilIdle();
2013 2001
2014 msgs.clear(); 2002 msgs.clear();
2015 accum_.GetClassifiedMessages(&msgs); 2003 accum_.GetClassifiedMessages(&msgs);
2016 } 2004 }
2017 } 2005 }
2018 2006
2019 } // namespace content 2007 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698