| OLD | NEW |
| 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 "build/build_config.h" | 5 #include "build/build_config.h" |
| 6 | 6 |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 #include <windows.h> | 8 #include <windows.h> |
| 9 #include <shlobj.h> | 9 #include <shlobj.h> |
| 10 #endif | 10 #endif |
| (...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 360 EXPECT_EQ(USER_CALLBACK, block_mode_); | 360 EXPECT_EQ(USER_CALLBACK, block_mode_); |
| 361 return stage_blocked_for_callback_; | 361 return stage_blocked_for_callback_; |
| 362 } | 362 } |
| 363 | 363 |
| 364 private: | 364 private: |
| 365 void RunCallback(int response, const CompletionCallback& callback); | 365 void RunCallback(int response, const CompletionCallback& callback); |
| 366 void RunAuthCallback(AuthRequiredResponse response, | 366 void RunAuthCallback(AuthRequiredResponse response, |
| 367 const AuthCallback& callback); | 367 const AuthCallback& callback); |
| 368 | 368 |
| 369 // TestNetworkDelegate implementation. | 369 // TestNetworkDelegate implementation. |
| 370 virtual int OnBeforeURLRequest(URLRequest* request, | 370 int OnBeforeURLRequest(URLRequest* request, |
| 371 const CompletionCallback& callback, | 371 const CompletionCallback& callback, |
| 372 GURL* new_url) override; | 372 GURL* new_url) override; |
| 373 | 373 |
| 374 virtual int OnBeforeSendHeaders(URLRequest* request, | 374 int OnBeforeSendHeaders(URLRequest* request, |
| 375 const CompletionCallback& callback, | 375 const CompletionCallback& callback, |
| 376 HttpRequestHeaders* headers) override; | 376 HttpRequestHeaders* headers) override; |
| 377 | 377 |
| 378 virtual int OnHeadersReceived( | 378 int OnHeadersReceived( |
| 379 URLRequest* request, | 379 URLRequest* request, |
| 380 const CompletionCallback& callback, | 380 const CompletionCallback& callback, |
| 381 const HttpResponseHeaders* original_response_headers, | 381 const HttpResponseHeaders* original_response_headers, |
| 382 scoped_refptr<HttpResponseHeaders>* override_response_headers, | 382 scoped_refptr<HttpResponseHeaders>* override_response_headers, |
| 383 GURL* allowed_unsafe_redirect_url) override; | 383 GURL* allowed_unsafe_redirect_url) override; |
| 384 | 384 |
| 385 virtual NetworkDelegate::AuthRequiredResponse OnAuthRequired( | 385 NetworkDelegate::AuthRequiredResponse OnAuthRequired( |
| 386 URLRequest* request, | 386 URLRequest* request, |
| 387 const AuthChallengeInfo& auth_info, | 387 const AuthChallengeInfo& auth_info, |
| 388 const AuthCallback& callback, | 388 const AuthCallback& callback, |
| 389 AuthCredentials* credentials) override; | 389 AuthCredentials* credentials) override; |
| 390 | 390 |
| 391 // Resets the callbacks and |stage_blocked_for_callback_|. | 391 // Resets the callbacks and |stage_blocked_for_callback_|. |
| 392 void Reset(); | 392 void Reset(); |
| 393 | 393 |
| 394 // Checks whether we should block in |stage|. If yes, returns an error code | 394 // Checks whether we should block in |stage|. If yes, returns an error code |
| 395 // and optionally sets up callback based on |block_mode_|. If no, returns OK. | 395 // and optionally sets up callback based on |block_mode_|. If no, returns OK. |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 589 class TestURLRequestContextWithProxy : public TestURLRequestContext { | 589 class TestURLRequestContextWithProxy : public TestURLRequestContext { |
| 590 public: | 590 public: |
| 591 // Does not own |delegate|. | 591 // Does not own |delegate|. |
| 592 TestURLRequestContextWithProxy(const std::string& proxy, | 592 TestURLRequestContextWithProxy(const std::string& proxy, |
| 593 NetworkDelegate* delegate) | 593 NetworkDelegate* delegate) |
| 594 : TestURLRequestContext(true) { | 594 : TestURLRequestContext(true) { |
| 595 context_storage_.set_proxy_service(ProxyService::CreateFixed(proxy)); | 595 context_storage_.set_proxy_service(ProxyService::CreateFixed(proxy)); |
| 596 set_network_delegate(delegate); | 596 set_network_delegate(delegate); |
| 597 Init(); | 597 Init(); |
| 598 } | 598 } |
| 599 virtual ~TestURLRequestContextWithProxy() {} | 599 ~TestURLRequestContextWithProxy() override {} |
| 600 }; | 600 }; |
| 601 | 601 |
| 602 } // namespace | 602 } // namespace |
| 603 | 603 |
| 604 // Inherit PlatformTest since we require the autorelease pool on Mac OS X. | 604 // Inherit PlatformTest since we require the autorelease pool on Mac OS X. |
| 605 class URLRequestTest : public PlatformTest { | 605 class URLRequestTest : public PlatformTest { |
| 606 public: | 606 public: |
| 607 URLRequestTest() : default_context_(true) { | 607 URLRequestTest() : default_context_(true) { |
| 608 default_context_.set_network_delegate(&default_network_delegate_); | 608 default_context_.set_network_delegate(&default_network_delegate_); |
| 609 default_context_.set_net_log(&net_log_); | 609 default_context_.set_net_log(&net_log_); |
| (...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1098 DeleteFile(lnk_path.c_str()); | 1098 DeleteFile(lnk_path.c_str()); |
| 1099 } | 1099 } |
| 1100 #endif // defined(OS_WIN) | 1100 #endif // defined(OS_WIN) |
| 1101 | 1101 |
| 1102 // Custom URLRequestJobs for use with interceptor tests | 1102 // Custom URLRequestJobs for use with interceptor tests |
| 1103 class RestartTestJob : public URLRequestTestJob { | 1103 class RestartTestJob : public URLRequestTestJob { |
| 1104 public: | 1104 public: |
| 1105 RestartTestJob(URLRequest* request, NetworkDelegate* network_delegate) | 1105 RestartTestJob(URLRequest* request, NetworkDelegate* network_delegate) |
| 1106 : URLRequestTestJob(request, network_delegate, true) {} | 1106 : URLRequestTestJob(request, network_delegate, true) {} |
| 1107 protected: | 1107 protected: |
| 1108 virtual void StartAsync() override { | 1108 void StartAsync() override { this->NotifyRestartRequired(); } |
| 1109 this->NotifyRestartRequired(); | |
| 1110 } | |
| 1111 private: | 1109 private: |
| 1112 virtual ~RestartTestJob() {} | 1110 ~RestartTestJob() override {} |
| 1113 }; | 1111 }; |
| 1114 | 1112 |
| 1115 class CancelTestJob : public URLRequestTestJob { | 1113 class CancelTestJob : public URLRequestTestJob { |
| 1116 public: | 1114 public: |
| 1117 explicit CancelTestJob(URLRequest* request, NetworkDelegate* network_delegate) | 1115 explicit CancelTestJob(URLRequest* request, NetworkDelegate* network_delegate) |
| 1118 : URLRequestTestJob(request, network_delegate, true) {} | 1116 : URLRequestTestJob(request, network_delegate, true) {} |
| 1119 protected: | 1117 protected: |
| 1120 virtual void StartAsync() override { | 1118 void StartAsync() override { request_->Cancel(); } |
| 1121 request_->Cancel(); | |
| 1122 } | |
| 1123 private: | 1119 private: |
| 1124 virtual ~CancelTestJob() {} | 1120 ~CancelTestJob() override {} |
| 1125 }; | 1121 }; |
| 1126 | 1122 |
| 1127 class CancelThenRestartTestJob : public URLRequestTestJob { | 1123 class CancelThenRestartTestJob : public URLRequestTestJob { |
| 1128 public: | 1124 public: |
| 1129 explicit CancelThenRestartTestJob(URLRequest* request, | 1125 explicit CancelThenRestartTestJob(URLRequest* request, |
| 1130 NetworkDelegate* network_delegate) | 1126 NetworkDelegate* network_delegate) |
| 1131 : URLRequestTestJob(request, network_delegate, true) { | 1127 : URLRequestTestJob(request, network_delegate, true) { |
| 1132 } | 1128 } |
| 1133 protected: | 1129 protected: |
| 1134 virtual void StartAsync() override { | 1130 void StartAsync() override { |
| 1135 request_->Cancel(); | 1131 request_->Cancel(); |
| 1136 this->NotifyRestartRequired(); | 1132 this->NotifyRestartRequired(); |
| 1137 } | 1133 } |
| 1138 private: | 1134 private: |
| 1139 virtual ~CancelThenRestartTestJob() {} | 1135 ~CancelThenRestartTestJob() override {} |
| 1140 }; | 1136 }; |
| 1141 | 1137 |
| 1142 // An Interceptor for use with interceptor tests | 1138 // An Interceptor for use with interceptor tests |
| 1143 class TestInterceptor : URLRequest::Interceptor { | 1139 class TestInterceptor : URLRequest::Interceptor { |
| 1144 public: | 1140 public: |
| 1145 TestInterceptor() | 1141 TestInterceptor() |
| 1146 : intercept_main_request_(false), restart_main_request_(false), | 1142 : intercept_main_request_(false), restart_main_request_(false), |
| 1147 cancel_main_request_(false), cancel_then_restart_main_request_(false), | 1143 cancel_main_request_(false), cancel_then_restart_main_request_(false), |
| 1148 simulate_main_network_error_(false), | 1144 simulate_main_network_error_(false), |
| 1149 intercept_redirect_(false), cancel_redirect_request_(false), | 1145 intercept_redirect_(false), cancel_redirect_request_(false), |
| 1150 intercept_final_response_(false), cancel_final_request_(false), | 1146 intercept_final_response_(false), cancel_final_request_(false), |
| 1151 did_intercept_main_(false), did_restart_main_(false), | 1147 did_intercept_main_(false), did_restart_main_(false), |
| 1152 did_cancel_main_(false), did_cancel_then_restart_main_(false), | 1148 did_cancel_main_(false), did_cancel_then_restart_main_(false), |
| 1153 did_simulate_error_main_(false), | 1149 did_simulate_error_main_(false), |
| 1154 did_intercept_redirect_(false), did_cancel_redirect_(false), | 1150 did_intercept_redirect_(false), did_cancel_redirect_(false), |
| 1155 did_intercept_final_(false), did_cancel_final_(false) { | 1151 did_intercept_final_(false), did_cancel_final_(false) { |
| 1156 URLRequest::Deprecated::RegisterRequestInterceptor(this); | 1152 URLRequest::Deprecated::RegisterRequestInterceptor(this); |
| 1157 } | 1153 } |
| 1158 | 1154 |
| 1159 virtual ~TestInterceptor() { | 1155 ~TestInterceptor() override { |
| 1160 URLRequest::Deprecated::UnregisterRequestInterceptor(this); | 1156 URLRequest::Deprecated::UnregisterRequestInterceptor(this); |
| 1161 } | 1157 } |
| 1162 | 1158 |
| 1163 virtual URLRequestJob* MaybeIntercept( | 1159 URLRequestJob* MaybeIntercept(URLRequest* request, |
| 1164 URLRequest* request, | 1160 NetworkDelegate* network_delegate) override { |
| 1165 NetworkDelegate* network_delegate) override { | |
| 1166 if (restart_main_request_) { | 1161 if (restart_main_request_) { |
| 1167 restart_main_request_ = false; | 1162 restart_main_request_ = false; |
| 1168 did_restart_main_ = true; | 1163 did_restart_main_ = true; |
| 1169 return new RestartTestJob(request, network_delegate); | 1164 return new RestartTestJob(request, network_delegate); |
| 1170 } | 1165 } |
| 1171 if (cancel_main_request_) { | 1166 if (cancel_main_request_) { |
| 1172 cancel_main_request_ = false; | 1167 cancel_main_request_ = false; |
| 1173 did_cancel_main_ = true; | 1168 did_cancel_main_ = true; |
| 1174 return new CancelTestJob(request, network_delegate); | 1169 return new CancelTestJob(request, network_delegate); |
| 1175 } | 1170 } |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1190 did_intercept_main_ = true; | 1185 did_intercept_main_ = true; |
| 1191 URLRequestTestJob* job = new URLRequestTestJob(request, | 1186 URLRequestTestJob* job = new URLRequestTestJob(request, |
| 1192 network_delegate, | 1187 network_delegate, |
| 1193 main_headers_, | 1188 main_headers_, |
| 1194 main_data_, | 1189 main_data_, |
| 1195 true); | 1190 true); |
| 1196 job->set_load_timing_info(main_request_load_timing_info_); | 1191 job->set_load_timing_info(main_request_load_timing_info_); |
| 1197 return job; | 1192 return job; |
| 1198 } | 1193 } |
| 1199 | 1194 |
| 1200 virtual URLRequestJob* MaybeInterceptRedirect( | 1195 URLRequestJob* MaybeInterceptRedirect(URLRequest* request, |
| 1201 URLRequest* request, | 1196 NetworkDelegate* network_delegate, |
| 1202 NetworkDelegate* network_delegate, | 1197 const GURL& location) override { |
| 1203 const GURL& location) override { | |
| 1204 if (cancel_redirect_request_) { | 1198 if (cancel_redirect_request_) { |
| 1205 cancel_redirect_request_ = false; | 1199 cancel_redirect_request_ = false; |
| 1206 did_cancel_redirect_ = true; | 1200 did_cancel_redirect_ = true; |
| 1207 return new CancelTestJob(request, network_delegate); | 1201 return new CancelTestJob(request, network_delegate); |
| 1208 } | 1202 } |
| 1209 if (!intercept_redirect_) | 1203 if (!intercept_redirect_) |
| 1210 return NULL; | 1204 return NULL; |
| 1211 intercept_redirect_ = false; | 1205 intercept_redirect_ = false; |
| 1212 did_intercept_redirect_ = true; | 1206 did_intercept_redirect_ = true; |
| 1213 return new URLRequestTestJob(request, | 1207 return new URLRequestTestJob(request, |
| 1214 network_delegate, | 1208 network_delegate, |
| 1215 redirect_headers_, | 1209 redirect_headers_, |
| 1216 redirect_data_, | 1210 redirect_data_, |
| 1217 true); | 1211 true); |
| 1218 } | 1212 } |
| 1219 | 1213 |
| 1220 virtual URLRequestJob* MaybeInterceptResponse( | 1214 URLRequestJob* MaybeInterceptResponse( |
| 1221 URLRequest* request, NetworkDelegate* network_delegate) override { | 1215 URLRequest* request, |
| 1216 NetworkDelegate* network_delegate) override { |
| 1222 if (cancel_final_request_) { | 1217 if (cancel_final_request_) { |
| 1223 cancel_final_request_ = false; | 1218 cancel_final_request_ = false; |
| 1224 did_cancel_final_ = true; | 1219 did_cancel_final_ = true; |
| 1225 return new CancelTestJob(request, network_delegate); | 1220 return new CancelTestJob(request, network_delegate); |
| 1226 } | 1221 } |
| 1227 if (!intercept_final_response_) | 1222 if (!intercept_final_response_) |
| 1228 return NULL; | 1223 return NULL; |
| 1229 intercept_final_response_ = false; | 1224 intercept_final_response_ = false; |
| 1230 did_intercept_final_ = true; | 1225 did_intercept_final_ = true; |
| 1231 return new URLRequestTestJob(request, | 1226 return new URLRequestTestJob(request, |
| (...skipping 1157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2389 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); | 2384 EXPECT_EQ(0, network_delegate.blocked_set_cookie_count()); |
| 2390 } | 2385 } |
| 2391 } | 2386 } |
| 2392 | 2387 |
| 2393 // FixedDateNetworkDelegate swaps out the server's HTTP Date response header | 2388 // FixedDateNetworkDelegate swaps out the server's HTTP Date response header |
| 2394 // value for the |fixed_date| argument given to the constructor. | 2389 // value for the |fixed_date| argument given to the constructor. |
| 2395 class FixedDateNetworkDelegate : public TestNetworkDelegate { | 2390 class FixedDateNetworkDelegate : public TestNetworkDelegate { |
| 2396 public: | 2391 public: |
| 2397 explicit FixedDateNetworkDelegate(const std::string& fixed_date) | 2392 explicit FixedDateNetworkDelegate(const std::string& fixed_date) |
| 2398 : fixed_date_(fixed_date) {} | 2393 : fixed_date_(fixed_date) {} |
| 2399 virtual ~FixedDateNetworkDelegate() {} | 2394 ~FixedDateNetworkDelegate() override {} |
| 2400 | 2395 |
| 2401 // NetworkDelegate implementation | 2396 // NetworkDelegate implementation |
| 2402 virtual int OnHeadersReceived( | 2397 int OnHeadersReceived( |
| 2403 URLRequest* request, | 2398 URLRequest* request, |
| 2404 const CompletionCallback& callback, | 2399 const CompletionCallback& callback, |
| 2405 const HttpResponseHeaders* original_response_headers, | 2400 const HttpResponseHeaders* original_response_headers, |
| 2406 scoped_refptr<HttpResponseHeaders>* override_response_headers, | 2401 scoped_refptr<HttpResponseHeaders>* override_response_headers, |
| 2407 GURL* allowed_unsafe_redirect_url) override; | 2402 GURL* allowed_unsafe_redirect_url) override; |
| 2408 | 2403 |
| 2409 private: | 2404 private: |
| 2410 std::string fixed_date_; | 2405 std::string fixed_date_; |
| 2411 | 2406 |
| 2412 DISALLOW_COPY_AND_ASSIGN(FixedDateNetworkDelegate); | 2407 DISALLOW_COPY_AND_ASSIGN(FixedDateNetworkDelegate); |
| (...skipping 1571 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3984 | 3979 |
| 3985 DISALLOW_COPY_AND_ASSIGN(AsyncDelegateLogger); | 3980 DISALLOW_COPY_AND_ASSIGN(AsyncDelegateLogger); |
| 3986 }; | 3981 }; |
| 3987 | 3982 |
| 3988 // NetworkDelegate that logs delegate information before a request is started, | 3983 // NetworkDelegate that logs delegate information before a request is started, |
| 3989 // before headers are sent, when headers are read, and when auth information | 3984 // before headers are sent, when headers are read, and when auth information |
| 3990 // is requested. Uses AsyncDelegateLogger. | 3985 // is requested. Uses AsyncDelegateLogger. |
| 3991 class AsyncLoggingNetworkDelegate : public TestNetworkDelegate { | 3986 class AsyncLoggingNetworkDelegate : public TestNetworkDelegate { |
| 3992 public: | 3987 public: |
| 3993 AsyncLoggingNetworkDelegate() {} | 3988 AsyncLoggingNetworkDelegate() {} |
| 3994 virtual ~AsyncLoggingNetworkDelegate() {} | 3989 ~AsyncLoggingNetworkDelegate() override {} |
| 3995 | 3990 |
| 3996 // NetworkDelegate implementation. | 3991 // NetworkDelegate implementation. |
| 3997 virtual int OnBeforeURLRequest(URLRequest* request, | 3992 int OnBeforeURLRequest(URLRequest* request, |
| 3998 const CompletionCallback& callback, | 3993 const CompletionCallback& callback, |
| 3999 GURL* new_url) override { | 3994 GURL* new_url) override { |
| 4000 TestNetworkDelegate::OnBeforeURLRequest(request, callback, new_url); | 3995 TestNetworkDelegate::OnBeforeURLRequest(request, callback, new_url); |
| 4001 return RunCallbackAsynchronously(request, callback); | 3996 return RunCallbackAsynchronously(request, callback); |
| 4002 } | 3997 } |
| 4003 | 3998 |
| 4004 virtual int OnBeforeSendHeaders(URLRequest* request, | 3999 int OnBeforeSendHeaders(URLRequest* request, |
| 4005 const CompletionCallback& callback, | 4000 const CompletionCallback& callback, |
| 4006 HttpRequestHeaders* headers) override { | 4001 HttpRequestHeaders* headers) override { |
| 4007 TestNetworkDelegate::OnBeforeSendHeaders(request, callback, headers); | 4002 TestNetworkDelegate::OnBeforeSendHeaders(request, callback, headers); |
| 4008 return RunCallbackAsynchronously(request, callback); | 4003 return RunCallbackAsynchronously(request, callback); |
| 4009 } | 4004 } |
| 4010 | 4005 |
| 4011 virtual int OnHeadersReceived( | 4006 int OnHeadersReceived( |
| 4012 URLRequest* request, | 4007 URLRequest* request, |
| 4013 const CompletionCallback& callback, | 4008 const CompletionCallback& callback, |
| 4014 const HttpResponseHeaders* original_response_headers, | 4009 const HttpResponseHeaders* original_response_headers, |
| 4015 scoped_refptr<HttpResponseHeaders>* override_response_headers, | 4010 scoped_refptr<HttpResponseHeaders>* override_response_headers, |
| 4016 GURL* allowed_unsafe_redirect_url) override { | 4011 GURL* allowed_unsafe_redirect_url) override { |
| 4017 TestNetworkDelegate::OnHeadersReceived(request, | 4012 TestNetworkDelegate::OnHeadersReceived(request, |
| 4018 callback, | 4013 callback, |
| 4019 original_response_headers, | 4014 original_response_headers, |
| 4020 override_response_headers, | 4015 override_response_headers, |
| 4021 allowed_unsafe_redirect_url); | 4016 allowed_unsafe_redirect_url); |
| 4022 return RunCallbackAsynchronously(request, callback); | 4017 return RunCallbackAsynchronously(request, callback); |
| 4023 } | 4018 } |
| 4024 | 4019 |
| 4025 virtual NetworkDelegate::AuthRequiredResponse OnAuthRequired( | 4020 NetworkDelegate::AuthRequiredResponse OnAuthRequired( |
| 4026 URLRequest* request, | 4021 URLRequest* request, |
| 4027 const AuthChallengeInfo& auth_info, | 4022 const AuthChallengeInfo& auth_info, |
| 4028 const AuthCallback& callback, | 4023 const AuthCallback& callback, |
| 4029 AuthCredentials* credentials) override { | 4024 AuthCredentials* credentials) override { |
| 4030 AsyncDelegateLogger::Run( | 4025 AsyncDelegateLogger::Run( |
| 4031 request, | 4026 request, |
| 4032 LOAD_STATE_WAITING_FOR_DELEGATE, | 4027 LOAD_STATE_WAITING_FOR_DELEGATE, |
| 4033 LOAD_STATE_WAITING_FOR_DELEGATE, | 4028 LOAD_STATE_WAITING_FOR_DELEGATE, |
| 4034 LOAD_STATE_WAITING_FOR_DELEGATE, | 4029 LOAD_STATE_WAITING_FOR_DELEGATE, |
| 4035 base::Bind(&AsyncLoggingNetworkDelegate::SetAuthAndResume, | 4030 base::Bind(&AsyncLoggingNetworkDelegate::SetAuthAndResume, |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4076 | 4071 |
| 4077 explicit AsyncLoggingUrlRequestDelegate(CancelStage cancel_stage) | 4072 explicit AsyncLoggingUrlRequestDelegate(CancelStage cancel_stage) |
| 4078 : cancel_stage_(cancel_stage) { | 4073 : cancel_stage_(cancel_stage) { |
| 4079 if (cancel_stage == CANCEL_ON_RECEIVED_REDIRECT) | 4074 if (cancel_stage == CANCEL_ON_RECEIVED_REDIRECT) |
| 4080 set_cancel_in_received_redirect(true); | 4075 set_cancel_in_received_redirect(true); |
| 4081 else if (cancel_stage == CANCEL_ON_RESPONSE_STARTED) | 4076 else if (cancel_stage == CANCEL_ON_RESPONSE_STARTED) |
| 4082 set_cancel_in_response_started(true); | 4077 set_cancel_in_response_started(true); |
| 4083 else if (cancel_stage == CANCEL_ON_READ_COMPLETED) | 4078 else if (cancel_stage == CANCEL_ON_READ_COMPLETED) |
| 4084 set_cancel_in_received_data(true); | 4079 set_cancel_in_received_data(true); |
| 4085 } | 4080 } |
| 4086 virtual ~AsyncLoggingUrlRequestDelegate() {} | 4081 ~AsyncLoggingUrlRequestDelegate() override {} |
| 4087 | 4082 |
| 4088 // URLRequest::Delegate implementation: | 4083 // URLRequest::Delegate implementation: |
| 4089 void virtual OnReceivedRedirect(URLRequest* request, | 4084 void OnReceivedRedirect(URLRequest* request, |
| 4090 const RedirectInfo& redirect_info, | 4085 const RedirectInfo& redirect_info, |
| 4091 bool* defer_redirect) override { | 4086 bool* defer_redirect) override { |
| 4092 *defer_redirect = true; | 4087 *defer_redirect = true; |
| 4093 AsyncDelegateLogger::Run( | 4088 AsyncDelegateLogger::Run( |
| 4094 request, | 4089 request, |
| 4095 LOAD_STATE_WAITING_FOR_DELEGATE, | 4090 LOAD_STATE_WAITING_FOR_DELEGATE, |
| 4096 LOAD_STATE_WAITING_FOR_DELEGATE, | 4091 LOAD_STATE_WAITING_FOR_DELEGATE, |
| 4097 LOAD_STATE_WAITING_FOR_DELEGATE, | 4092 LOAD_STATE_WAITING_FOR_DELEGATE, |
| 4098 base::Bind( | 4093 base::Bind( |
| 4099 &AsyncLoggingUrlRequestDelegate::OnReceivedRedirectLoggingComplete, | 4094 &AsyncLoggingUrlRequestDelegate::OnReceivedRedirectLoggingComplete, |
| 4100 base::Unretained(this), request, redirect_info)); | 4095 base::Unretained(this), request, redirect_info)); |
| 4101 } | 4096 } |
| 4102 | 4097 |
| 4103 virtual void OnResponseStarted(URLRequest* request) override { | 4098 void OnResponseStarted(URLRequest* request) override { |
| 4104 AsyncDelegateLogger::Run( | 4099 AsyncDelegateLogger::Run( |
| 4105 request, | 4100 request, |
| 4106 LOAD_STATE_WAITING_FOR_DELEGATE, | 4101 LOAD_STATE_WAITING_FOR_DELEGATE, |
| 4107 LOAD_STATE_WAITING_FOR_DELEGATE, | 4102 LOAD_STATE_WAITING_FOR_DELEGATE, |
| 4108 LOAD_STATE_WAITING_FOR_DELEGATE, | 4103 LOAD_STATE_WAITING_FOR_DELEGATE, |
| 4109 base::Bind( | 4104 base::Bind( |
| 4110 &AsyncLoggingUrlRequestDelegate::OnResponseStartedLoggingComplete, | 4105 &AsyncLoggingUrlRequestDelegate::OnResponseStartedLoggingComplete, |
| 4111 base::Unretained(this), request)); | 4106 base::Unretained(this), request)); |
| 4112 } | 4107 } |
| 4113 | 4108 |
| 4114 virtual void OnReadCompleted(URLRequest* request, | 4109 void OnReadCompleted(URLRequest* request, int bytes_read) override { |
| 4115 int bytes_read) override { | |
| 4116 AsyncDelegateLogger::Run( | 4110 AsyncDelegateLogger::Run( |
| 4117 request, | 4111 request, |
| 4118 LOAD_STATE_IDLE, | 4112 LOAD_STATE_IDLE, |
| 4119 LOAD_STATE_IDLE, | 4113 LOAD_STATE_IDLE, |
| 4120 LOAD_STATE_IDLE, | 4114 LOAD_STATE_IDLE, |
| 4121 base::Bind( | 4115 base::Bind( |
| 4122 &AsyncLoggingUrlRequestDelegate::AfterReadCompletedLoggingComplete, | 4116 &AsyncLoggingUrlRequestDelegate::AfterReadCompletedLoggingComplete, |
| 4123 base::Unretained(this), request, bytes_read)); | 4117 base::Unretained(this), request, bytes_read)); |
| 4124 } | 4118 } |
| 4125 | 4119 |
| (...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4571 entries, log_position + 1, NetLog::TYPE_URL_REQUEST_DELEGATE)); | 4565 entries, log_position + 1, NetLog::TYPE_URL_REQUEST_DELEGATE)); |
| 4572 } | 4566 } |
| 4573 } | 4567 } |
| 4574 | 4568 |
| 4575 namespace { | 4569 namespace { |
| 4576 | 4570 |
| 4577 const char kExtraHeader[] = "Allow-Snafu"; | 4571 const char kExtraHeader[] = "Allow-Snafu"; |
| 4578 const char kExtraValue[] = "fubar"; | 4572 const char kExtraValue[] = "fubar"; |
| 4579 | 4573 |
| 4580 class RedirectWithAdditionalHeadersDelegate : public TestDelegate { | 4574 class RedirectWithAdditionalHeadersDelegate : public TestDelegate { |
| 4581 virtual void OnReceivedRedirect(URLRequest* request, | 4575 void OnReceivedRedirect(URLRequest* request, |
| 4582 const RedirectInfo& redirect_info, | 4576 const RedirectInfo& redirect_info, |
| 4583 bool* defer_redirect) override { | 4577 bool* defer_redirect) override { |
| 4584 TestDelegate::OnReceivedRedirect(request, redirect_info, defer_redirect); | 4578 TestDelegate::OnReceivedRedirect(request, redirect_info, defer_redirect); |
| 4585 request->SetExtraRequestHeaderByName(kExtraHeader, kExtraValue, false); | 4579 request->SetExtraRequestHeaderByName(kExtraHeader, kExtraValue, false); |
| 4586 } | 4580 } |
| 4587 }; | 4581 }; |
| 4588 | 4582 |
| 4589 } // namespace | 4583 } // namespace |
| 4590 | 4584 |
| 4591 TEST_F(URLRequestTestHTTP, RedirectWithAdditionalHeadersTest) { | 4585 TEST_F(URLRequestTestHTTP, RedirectWithAdditionalHeadersTest) { |
| 4592 ASSERT_TRUE(test_server_.Start()); | 4586 ASSERT_TRUE(test_server_.Start()); |
| 4593 | 4587 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 4608 EXPECT_FALSE(req->is_pending()); | 4602 EXPECT_FALSE(req->is_pending()); |
| 4609 EXPECT_FALSE(req->is_redirecting()); | 4603 EXPECT_FALSE(req->is_redirecting()); |
| 4610 EXPECT_EQ(kExtraValue, d.data_received()); | 4604 EXPECT_EQ(kExtraValue, d.data_received()); |
| 4611 } | 4605 } |
| 4612 | 4606 |
| 4613 namespace { | 4607 namespace { |
| 4614 | 4608 |
| 4615 const char kExtraHeaderToRemove[] = "To-Be-Removed"; | 4609 const char kExtraHeaderToRemove[] = "To-Be-Removed"; |
| 4616 | 4610 |
| 4617 class RedirectWithHeaderRemovalDelegate : public TestDelegate { | 4611 class RedirectWithHeaderRemovalDelegate : public TestDelegate { |
| 4618 virtual void OnReceivedRedirect(URLRequest* request, | 4612 void OnReceivedRedirect(URLRequest* request, |
| 4619 const RedirectInfo& redirect_info, | 4613 const RedirectInfo& redirect_info, |
| 4620 bool* defer_redirect) override { | 4614 bool* defer_redirect) override { |
| 4621 TestDelegate::OnReceivedRedirect(request, redirect_info, defer_redirect); | 4615 TestDelegate::OnReceivedRedirect(request, redirect_info, defer_redirect); |
| 4622 request->RemoveRequestHeaderByName(kExtraHeaderToRemove); | 4616 request->RemoveRequestHeaderByName(kExtraHeaderToRemove); |
| 4623 } | 4617 } |
| 4624 }; | 4618 }; |
| 4625 | 4619 |
| 4626 } // namespace | 4620 } // namespace |
| 4627 | 4621 |
| 4628 TEST_F(URLRequestTestHTTP, RedirectWithHeaderRemovalTest) { | 4622 TEST_F(URLRequestTestHTTP, RedirectWithHeaderRemovalTest) { |
| 4629 ASSERT_TRUE(test_server_.Start()); | 4623 ASSERT_TRUE(test_server_.Start()); |
| 4630 | 4624 |
| (...skipping 2173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6804 &received_cors_header)); | 6798 &received_cors_header)); |
| 6805 EXPECT_EQ(kOriginHeaderValue, received_cors_header); | 6799 EXPECT_EQ(kOriginHeaderValue, received_cors_header); |
| 6806 } | 6800 } |
| 6807 | 6801 |
| 6808 namespace { | 6802 namespace { |
| 6809 | 6803 |
| 6810 class SSLClientAuthTestDelegate : public TestDelegate { | 6804 class SSLClientAuthTestDelegate : public TestDelegate { |
| 6811 public: | 6805 public: |
| 6812 SSLClientAuthTestDelegate() : on_certificate_requested_count_(0) { | 6806 SSLClientAuthTestDelegate() : on_certificate_requested_count_(0) { |
| 6813 } | 6807 } |
| 6814 virtual void OnCertificateRequested( | 6808 void OnCertificateRequested(URLRequest* request, |
| 6815 URLRequest* request, | 6809 SSLCertRequestInfo* cert_request_info) override { |
| 6816 SSLCertRequestInfo* cert_request_info) override { | |
| 6817 on_certificate_requested_count_++; | 6810 on_certificate_requested_count_++; |
| 6818 base::MessageLoop::current()->Quit(); | 6811 base::MessageLoop::current()->Quit(); |
| 6819 } | 6812 } |
| 6820 int on_certificate_requested_count() { | 6813 int on_certificate_requested_count() { |
| 6821 return on_certificate_requested_count_; | 6814 return on_certificate_requested_count_; |
| 6822 } | 6815 } |
| 6823 private: | 6816 private: |
| 6824 int on_certificate_requested_count_; | 6817 int on_certificate_requested_count_; |
| 6825 }; | 6818 }; |
| 6826 | 6819 |
| (...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7085 online_rev_checking_(online_rev_checking), | 7078 online_rev_checking_(online_rev_checking), |
| 7086 rev_checking_required_local_anchors_( | 7079 rev_checking_required_local_anchors_( |
| 7087 rev_checking_required_local_anchors), | 7080 rev_checking_required_local_anchors), |
| 7088 fallback_min_version_(0) {} | 7081 fallback_min_version_(0) {} |
| 7089 | 7082 |
| 7090 void set_fallback_min_version(uint16 version) { | 7083 void set_fallback_min_version(uint16 version) { |
| 7091 fallback_min_version_ = version; | 7084 fallback_min_version_ = version; |
| 7092 } | 7085 } |
| 7093 | 7086 |
| 7094 // SSLConfigService: | 7087 // SSLConfigService: |
| 7095 virtual void GetSSLConfig(SSLConfig* config) override { | 7088 void GetSSLConfig(SSLConfig* config) override { |
| 7096 *config = SSLConfig(); | 7089 *config = SSLConfig(); |
| 7097 config->rev_checking_enabled = online_rev_checking_; | 7090 config->rev_checking_enabled = online_rev_checking_; |
| 7098 config->verify_ev_cert = ev_enabled_; | 7091 config->verify_ev_cert = ev_enabled_; |
| 7099 config->rev_checking_required_local_anchors = | 7092 config->rev_checking_required_local_anchors = |
| 7100 rev_checking_required_local_anchors_; | 7093 rev_checking_required_local_anchors_; |
| 7101 if (fallback_min_version_) { | 7094 if (fallback_min_version_) { |
| 7102 config->version_fallback_min = fallback_min_version_; | 7095 config->version_fallback_min = fallback_min_version_; |
| 7103 } | 7096 } |
| 7104 } | 7097 } |
| 7105 | 7098 |
| 7106 protected: | 7099 protected: |
| 7107 virtual ~TestSSLConfigService() {} | 7100 ~TestSSLConfigService() override {} |
| 7108 | 7101 |
| 7109 private: | 7102 private: |
| 7110 const bool ev_enabled_; | 7103 const bool ev_enabled_; |
| 7111 const bool online_rev_checking_; | 7104 const bool online_rev_checking_; |
| 7112 const bool rev_checking_required_local_anchors_; | 7105 const bool rev_checking_required_local_anchors_; |
| 7113 uint16 fallback_min_version_; | 7106 uint16 fallback_min_version_; |
| 7114 }; | 7107 }; |
| 7115 | 7108 |
| 7116 class FallbackTestURLRequestContext : public TestURLRequestContext { | 7109 class FallbackTestURLRequestContext : public TestURLRequestContext { |
| 7117 public: | 7110 public: |
| (...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7657 EXPECT_EQ(ExpectedCertStatusForFailedOnlineRevocationCheck(), | 7650 EXPECT_EQ(ExpectedCertStatusForFailedOnlineRevocationCheck(), |
| 7658 cert_status & CERT_STATUS_ALL_ERRORS); | 7651 cert_status & CERT_STATUS_ALL_ERRORS); |
| 7659 | 7652 |
| 7660 // Without a positive OCSP response, we shouldn't show the EV status. | 7653 // Without a positive OCSP response, we shouldn't show the EV status. |
| 7661 EXPECT_FALSE(cert_status & CERT_STATUS_IS_EV); | 7654 EXPECT_FALSE(cert_status & CERT_STATUS_IS_EV); |
| 7662 EXPECT_TRUE(cert_status & CERT_STATUS_REV_CHECKING_ENABLED); | 7655 EXPECT_TRUE(cert_status & CERT_STATUS_REV_CHECKING_ENABLED); |
| 7663 } | 7656 } |
| 7664 | 7657 |
| 7665 class HTTPSHardFailTest : public HTTPSOCSPTest { | 7658 class HTTPSHardFailTest : public HTTPSOCSPTest { |
| 7666 protected: | 7659 protected: |
| 7667 virtual void SetupContext(URLRequestContext* context) override { | 7660 void SetupContext(URLRequestContext* context) override { |
| 7668 context->set_ssl_config_service( | 7661 context->set_ssl_config_service( |
| 7669 new TestSSLConfigService(false /* check for EV */, | 7662 new TestSSLConfigService(false /* check for EV */, |
| 7670 false /* online revocation checking */, | 7663 false /* online revocation checking */, |
| 7671 true /* require rev. checking for local | 7664 true /* require rev. checking for local |
| 7672 anchors */)); | 7665 anchors */)); |
| 7673 } | 7666 } |
| 7674 }; | 7667 }; |
| 7675 | 7668 |
| 7676 | 7669 |
| 7677 TEST_F(HTTPSHardFailTest, FailsOnOCSPInvalid) { | 7670 TEST_F(HTTPSHardFailTest, FailsOnOCSPInvalid) { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 7695 | 7688 |
| 7696 EXPECT_EQ(CERT_STATUS_REVOKED, | 7689 EXPECT_EQ(CERT_STATUS_REVOKED, |
| 7697 cert_status & CERT_STATUS_REVOKED); | 7690 cert_status & CERT_STATUS_REVOKED); |
| 7698 | 7691 |
| 7699 // Without a positive OCSP response, we shouldn't show the EV status. | 7692 // Without a positive OCSP response, we shouldn't show the EV status. |
| 7700 EXPECT_TRUE(cert_status & CERT_STATUS_REV_CHECKING_ENABLED); | 7693 EXPECT_TRUE(cert_status & CERT_STATUS_REV_CHECKING_ENABLED); |
| 7701 } | 7694 } |
| 7702 | 7695 |
| 7703 class HTTPSEVCRLSetTest : public HTTPSOCSPTest { | 7696 class HTTPSEVCRLSetTest : public HTTPSOCSPTest { |
| 7704 protected: | 7697 protected: |
| 7705 virtual void SetupContext(URLRequestContext* context) override { | 7698 void SetupContext(URLRequestContext* context) override { |
| 7706 context->set_ssl_config_service( | 7699 context->set_ssl_config_service( |
| 7707 new TestSSLConfigService(true /* check for EV */, | 7700 new TestSSLConfigService(true /* check for EV */, |
| 7708 false /* online revocation checking */, | 7701 false /* online revocation checking */, |
| 7709 false /* require rev. checking for local | 7702 false /* require rev. checking for local |
| 7710 anchors */)); | 7703 anchors */)); |
| 7711 } | 7704 } |
| 7712 }; | 7705 }; |
| 7713 | 7706 |
| 7714 TEST_F(HTTPSEVCRLSetTest, MissingCRLSetAndInvalidOCSP) { | 7707 TEST_F(HTTPSEVCRLSetTest, MissingCRLSetAndInvalidOCSP) { |
| 7715 if (!SystemSupportsOCSP()) { | 7708 if (!SystemSupportsOCSP()) { |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7880 DoConnection(ssl_options, &cert_status); | 7873 DoConnection(ssl_options, &cert_status); |
| 7881 | 7874 |
| 7882 EXPECT_EQ(0u, cert_status & CERT_STATUS_ALL_ERRORS); | 7875 EXPECT_EQ(0u, cert_status & CERT_STATUS_ALL_ERRORS); |
| 7883 | 7876 |
| 7884 EXPECT_FALSE(cert_status & CERT_STATUS_IS_EV); | 7877 EXPECT_FALSE(cert_status & CERT_STATUS_IS_EV); |
| 7885 EXPECT_FALSE(cert_status & CERT_STATUS_REV_CHECKING_ENABLED); | 7878 EXPECT_FALSE(cert_status & CERT_STATUS_REV_CHECKING_ENABLED); |
| 7886 } | 7879 } |
| 7887 | 7880 |
| 7888 class HTTPSCRLSetTest : public HTTPSOCSPTest { | 7881 class HTTPSCRLSetTest : public HTTPSOCSPTest { |
| 7889 protected: | 7882 protected: |
| 7890 virtual void SetupContext(URLRequestContext* context) override { | 7883 void SetupContext(URLRequestContext* context) override { |
| 7891 context->set_ssl_config_service( | 7884 context->set_ssl_config_service( |
| 7892 new TestSSLConfigService(false /* check for EV */, | 7885 new TestSSLConfigService(false /* check for EV */, |
| 7893 false /* online revocation checking */, | 7886 false /* online revocation checking */, |
| 7894 false /* require rev. checking for local | 7887 false /* require rev. checking for local |
| 7895 anchors */)); | 7888 anchors */)); |
| 7896 } | 7889 } |
| 7897 }; | 7890 }; |
| 7898 | 7891 |
| 7899 TEST_F(HTTPSCRLSetTest, ExpiredCRLSet) { | 7892 TEST_F(HTTPSCRLSetTest, ExpiredCRLSet) { |
| 7900 SpawnedTestServer::SSLOptions ssl_options( | 7893 SpawnedTestServer::SSLOptions ssl_options( |
| (...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8283 | 8276 |
| 8284 EXPECT_FALSE(r->is_pending()); | 8277 EXPECT_FALSE(r->is_pending()); |
| 8285 EXPECT_EQ(1, d->response_started_count()); | 8278 EXPECT_EQ(1, d->response_started_count()); |
| 8286 EXPECT_FALSE(d->received_data_before_response()); | 8279 EXPECT_FALSE(d->received_data_before_response()); |
| 8287 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); | 8280 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); |
| 8288 } | 8281 } |
| 8289 } | 8282 } |
| 8290 #endif // !defined(DISABLE_FTP_SUPPORT) | 8283 #endif // !defined(DISABLE_FTP_SUPPORT) |
| 8291 | 8284 |
| 8292 } // namespace net | 8285 } // namespace net |
| OLD | NEW |