| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "ios/web/net/request_tracker_impl.h" | 5 #include "ios/web/net/request_tracker_impl.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/mac/scoped_nsobject.h" | 10 #include "base/mac/scoped_nsobject.h" |
| 11 #include "base/macros.h" | 11 #include "base/macros.h" |
| 12 #include "base/memory/ptr_util.h" |
| 12 #include "base/memory/scoped_vector.h" | 13 #include "base/memory/scoped_vector.h" |
| 13 #include "base/message_loop/message_loop.h" | 14 #include "base/message_loop/message_loop.h" |
| 14 #include "base/strings/sys_string_conversions.h" | 15 #include "base/strings/sys_string_conversions.h" |
| 15 #include "ios/web/public/cert_policy.h" | 16 #include "ios/web/public/cert_policy.h" |
| 16 #include "ios/web/public/certificate_policy_cache.h" | 17 #include "ios/web/public/certificate_policy_cache.h" |
| 17 #include "ios/web/public/ssl_status.h" | 18 #include "ios/web/public/ssl_status.h" |
| 18 #include "ios/web/public/test/test_browser_state.h" | 19 #include "ios/web/public/test/test_browser_state.h" |
| 19 #include "ios/web/public/test/test_web_thread.h" | 20 #include "ios/web/public/test/test_web_thread.h" |
| 20 #include "net/cert/x509_certificate.h" | 21 #include "net/cert/x509_certificate.h" |
| 21 #include "net/http/http_response_headers.h" | 22 #include "net/http/http_response_headers.h" |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 229 DCHECK_CURRENTLY_ON(web::WebThread::UI); | 230 DCHECK_CURRENTLY_ON(web::WebThread::UI); |
| 230 tracker_->FinishPageLoad(url, false); | 231 tracker_->FinishPageLoad(url, false); |
| 231 receiver_.get()->value_ = 0.0f; | 232 receiver_.get()->value_ = 0.0f; |
| 232 receiver_.get()->max_ = 0.0f; | 233 receiver_.get()->max_ = 0.0f; |
| 233 loop_.RunUntilIdle(); | 234 loop_.RunUntilIdle(); |
| 234 } | 235 } |
| 235 | 236 |
| 236 net::TestJobInterceptor* AddInterceptorToRequest(size_t i) { | 237 net::TestJobInterceptor* AddInterceptorToRequest(size_t i) { |
| 237 // |interceptor| will be deleted from |job_factory_|'s destructor. | 238 // |interceptor| will be deleted from |job_factory_|'s destructor. |
| 238 net::TestJobInterceptor* protocol_handler = new net::TestJobInterceptor(); | 239 net::TestJobInterceptor* protocol_handler = new net::TestJobInterceptor(); |
| 239 job_factory_.SetProtocolHandler("http", make_scoped_ptr(protocol_handler)); | 240 job_factory_.SetProtocolHandler("http", base::WrapUnique(protocol_handler)); |
| 240 contexts_[i]->set_job_factory(&job_factory_); | 241 contexts_[i]->set_job_factory(&job_factory_); |
| 241 return protocol_handler; | 242 return protocol_handler; |
| 242 } | 243 } |
| 243 | 244 |
| 244 private: | 245 private: |
| 245 net::URLRequest* GetInternalRequest(size_t i, bool secure) { | 246 net::URLRequest* GetInternalRequest(size_t i, bool secure) { |
| 246 GURL url; | 247 GURL url; |
| 247 if (secure) | 248 if (secure) |
| 248 url = GetSecureURL(requests_.size()); | 249 url = GetSecureURL(requests_.size()); |
| 249 else | 250 else |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 433 "content-disposition: attachment; filename=\"name.pdf\"\n" | 434 "content-disposition: attachment; filename=\"name.pdf\"\n" |
| 434 "X-Auto-Login: Hello World\n\n"; | 435 "X-Auto-Login: Hello World\n\n"; |
| 435 for (size_t i = 0; i < headers.length(); i++) { | 436 for (size_t i = 0; i < headers.length(); i++) { |
| 436 if (headers.data()[i] == '\n') | 437 if (headers.data()[i] == '\n') |
| 437 const_cast<char*>(headers.data())[i] = '\0'; | 438 const_cast<char*>(headers.data())[i] = '\0'; |
| 438 } | 439 } |
| 439 net::URLRequest* request = GetRequest(0); | 440 net::URLRequest* request = GetRequest(0); |
| 440 // TODO(mmenke): This is really bizarre. Do something more reasonable. | 441 // TODO(mmenke): This is really bizarre. Do something more reasonable. |
| 441 const_cast<net::HttpResponseInfo&>(request->response_info()).headers = | 442 const_cast<net::HttpResponseInfo&>(request->response_info()).headers = |
| 442 new net::HttpResponseHeaders(headers); | 443 new net::HttpResponseHeaders(headers); |
| 443 scoped_ptr<net::URLRequestTestJob> job(new net::URLRequestTestJob( | 444 std::unique_ptr<net::URLRequestTestJob> job(new net::URLRequestTestJob( |
| 444 request, request->context()->network_delegate(), headers, "", false)); | 445 request, request->context()->network_delegate(), headers, "", false)); |
| 445 AddInterceptorToRequest(0)->set_main_intercept_job(std::move(job)); | 446 AddInterceptorToRequest(0)->set_main_intercept_job(std::move(job)); |
| 446 request->Start(); | 447 request->Start(); |
| 447 | 448 |
| 448 tracker_->StartRequest(request); | 449 tracker_->StartRequest(request); |
| 449 tracker_->CaptureHeaders(request); | 450 tracker_->CaptureHeaders(request); |
| 450 tracker_->StopRequest(request); | 451 tracker_->StopRequest(request); |
| 451 loop_.RunUntilIdle(); | 452 loop_.RunUntilIdle(); |
| 452 EXPECT_TRUE([receiver_ headers]->HasHeaderValue("X-Auto-Login", | 453 EXPECT_TRUE([receiver_ headers]->HasHeaderValue("X-Auto-Login", |
| 453 "Hello World")); | 454 "Hello World")); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 504 base::Bind(&TwoStartsSSLCallback, | 505 base::Bind(&TwoStartsSSLCallback, |
| 505 &request_0_called)); | 506 &request_0_called)); |
| 506 tracker_->OnSSLCertificateError(GetSecureRequest(1), ssl_info, true, | 507 tracker_->OnSSLCertificateError(GetSecureRequest(1), ssl_info, true, |
| 507 base::Bind(&TwoStartsSSLCallback, | 508 base::Bind(&TwoStartsSSLCallback, |
| 508 &request_1_called)); | 509 &request_1_called)); |
| 509 EXPECT_TRUE(request_0_called); | 510 EXPECT_TRUE(request_0_called); |
| 510 EXPECT_TRUE(request_1_called); | 511 EXPECT_TRUE(request_1_called); |
| 511 } | 512 } |
| 512 | 513 |
| 513 } // namespace | 514 } // namespace |
| OLD | NEW |