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

Side by Side Diff: chrome/browser/devtools/devtools_network_transaction.cc

Issue 1461403003: [DevTools] Call directly into underlying http transaction when throttling is disabled. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: wrong order Created 5 years 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "chrome/browser/devtools/devtools_network_transaction.h" 5 #include "chrome/browser/devtools/devtools_network_transaction.h"
6 6
7 #include "chrome/browser/devtools/devtools_network_controller.h" 7 #include "chrome/browser/devtools/devtools_network_controller.h"
8 #include "chrome/browser/devtools/devtools_network_interceptor.h" 8 #include "chrome/browser/devtools/devtools_network_interceptor.h"
9 #include "net/base/load_timing_info.h" 9 #include "net/base/load_timing_info.h"
10 #include "net/base/net_errors.h" 10 #include "net/base/net_errors.h"
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 interceptor_ = controller_->GetInterceptor(client_id); 143 interceptor_ = controller_->GetInterceptor(client_id);
144 144
145 if (interceptor_ && interceptor_->ShouldFail()) { 145 if (interceptor_ && interceptor_->ShouldFail()) {
146 failed_ = true; 146 failed_ = true;
147 network_transaction_->SetBeforeNetworkStartCallback( 147 network_transaction_->SetBeforeNetworkStartCallback(
148 BeforeNetworkStartCallback()); 148 BeforeNetworkStartCallback());
149 interceptor_.reset(); 149 interceptor_.reset();
150 return net::ERR_INTERNET_DISCONNECTED; 150 return net::ERR_INTERNET_DISCONNECTED;
151 } 151 }
152 152
153 if (interceptor_) 153 if (!interceptor_)
154 interceptor_->AddThrottable(this); 154 return network_transaction_->Start(request_, callback, net_log);
155
156 interceptor_->AddThrottable(this);
155 int rv = network_transaction_->Start(request_, proxy_callback_, net_log); 157 int rv = network_transaction_->Start(request_, proxy_callback_, net_log);
156 return SetupCallback(callback, rv, START); 158 return SetupCallback(callback, rv, START);
157 } 159 }
158 160
159 void DevToolsNetworkTransaction::ProcessRequest(std::string* client_id) { 161 void DevToolsNetworkTransaction::ProcessRequest(std::string* client_id) {
160 DCHECK(request_); 162 DCHECK(request_);
161 bool has_devtools_client_id = request_->extra_headers.HasHeader( 163 bool has_devtools_client_id = request_->extra_headers.HasHeader(
162 kDevToolsEmulateNetworkConditionsClientId); 164 kDevToolsEmulateNetworkConditionsClientId);
163 if (!has_devtools_client_id) 165 if (!has_devtools_client_id)
164 return; 166 return;
165 167
166 custom_request_.reset(new net::HttpRequestInfo(*request_)); 168 custom_request_.reset(new net::HttpRequestInfo(*request_));
167 custom_request_->extra_headers.GetHeader( 169 custom_request_->extra_headers.GetHeader(
168 kDevToolsEmulateNetworkConditionsClientId, client_id); 170 kDevToolsEmulateNetworkConditionsClientId, client_id);
169 custom_request_->extra_headers.RemoveHeader( 171 custom_request_->extra_headers.RemoveHeader(
170 kDevToolsEmulateNetworkConditionsClientId); 172 kDevToolsEmulateNetworkConditionsClientId);
171 request_ = custom_request_.get(); 173 request_ = custom_request_.get();
172 } 174 }
173 175
174 int DevToolsNetworkTransaction::RestartIgnoringLastError( 176 int DevToolsNetworkTransaction::RestartIgnoringLastError(
175 const net::CompletionCallback& callback) { 177 const net::CompletionCallback& callback) {
176 if (failed_) 178 if (failed_)
177 return net::ERR_INTERNET_DISCONNECTED; 179 return net::ERR_INTERNET_DISCONNECTED;
180 if (!interceptor_)
181 return network_transaction_->RestartIgnoringLastError(callback);
178 int rv = network_transaction_->RestartIgnoringLastError(proxy_callback_); 182 int rv = network_transaction_->RestartIgnoringLastError(proxy_callback_);
179 return SetupCallback(callback, rv, RESTART_IGNORING_LAST_ERROR); 183 return SetupCallback(callback, rv, RESTART_IGNORING_LAST_ERROR);
180 } 184 }
181 185
182 int DevToolsNetworkTransaction::RestartWithCertificate( 186 int DevToolsNetworkTransaction::RestartWithCertificate(
183 net::X509Certificate* client_cert, 187 net::X509Certificate* client_cert,
184 net::SSLPrivateKey* client_private_key, 188 net::SSLPrivateKey* client_private_key,
185 const net::CompletionCallback& callback) { 189 const net::CompletionCallback& callback) {
186 if (failed_) 190 if (failed_)
187 return net::ERR_INTERNET_DISCONNECTED; 191 return net::ERR_INTERNET_DISCONNECTED;
192 if (!interceptor_) {
193 return network_transaction_->RestartWithCertificate(
194 client_cert, client_private_key, callback);
195 }
188 int rv = network_transaction_->RestartWithCertificate( 196 int rv = network_transaction_->RestartWithCertificate(
189 client_cert, client_private_key, proxy_callback_); 197 client_cert, client_private_key, proxy_callback_);
190 return SetupCallback(callback, rv, RESTART_WITH_CERTIFICATE); 198 return SetupCallback(callback, rv, RESTART_WITH_CERTIFICATE);
191 } 199 }
192 200
193 int DevToolsNetworkTransaction::RestartWithAuth( 201 int DevToolsNetworkTransaction::RestartWithAuth(
194 const net::AuthCredentials& credentials, 202 const net::AuthCredentials& credentials,
195 const net::CompletionCallback& callback) { 203 const net::CompletionCallback& callback) {
196 if (failed_) 204 if (failed_)
197 return net::ERR_INTERNET_DISCONNECTED; 205 return net::ERR_INTERNET_DISCONNECTED;
206 if (!interceptor_)
207 return network_transaction_->RestartWithAuth(credentials, callback);
198 int rv = network_transaction_->RestartWithAuth(credentials, proxy_callback_); 208 int rv = network_transaction_->RestartWithAuth(credentials, proxy_callback_);
199 return SetupCallback(callback, rv, RESTART_WITH_AUTH); 209 return SetupCallback(callback, rv, RESTART_WITH_AUTH);
200 } 210 }
201 211
202 bool DevToolsNetworkTransaction::IsReadyToRestartForAuth() { 212 bool DevToolsNetworkTransaction::IsReadyToRestartForAuth() {
203 return network_transaction_->IsReadyToRestartForAuth(); 213 return network_transaction_->IsReadyToRestartForAuth();
204 } 214 }
205 215
206 int DevToolsNetworkTransaction::Read( 216 int DevToolsNetworkTransaction::Read(
207 net::IOBuffer* buf, 217 net::IOBuffer* buf,
208 int buf_len, 218 int buf_len,
209 const net::CompletionCallback& callback) { 219 const net::CompletionCallback& callback) {
210 if (failed_) 220 if (failed_)
211 return net::ERR_INTERNET_DISCONNECTED; 221 return net::ERR_INTERNET_DISCONNECTED;
222 if (!interceptor_)
223 return network_transaction_->Read(buf, buf_len, callback);
212 int rv = network_transaction_->Read(buf, buf_len, proxy_callback_); 224 int rv = network_transaction_->Read(buf, buf_len, proxy_callback_);
213 return SetupCallback(callback, rv, READ); 225 return SetupCallback(callback, rv, READ);
214 } 226 }
215 227
216 void DevToolsNetworkTransaction::StopCaching() { 228 void DevToolsNetworkTransaction::StopCaching() {
217 network_transaction_->StopCaching(); 229 network_transaction_->StopCaching();
218 } 230 }
219 231
220 bool DevToolsNetworkTransaction::GetFullRequestHeaders( 232 bool DevToolsNetworkTransaction::GetFullRequestHeaders(
221 net::HttpRequestHeaders* headers) const { 233 net::HttpRequestHeaders* headers) const {
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 } 289 }
278 290
279 void DevToolsNetworkTransaction::SetBeforeProxyHeadersSentCallback( 291 void DevToolsNetworkTransaction::SetBeforeProxyHeadersSentCallback(
280 const BeforeProxyHeadersSentCallback& callback) { 292 const BeforeProxyHeadersSentCallback& callback) {
281 network_transaction_->SetBeforeProxyHeadersSentCallback(callback); 293 network_transaction_->SetBeforeProxyHeadersSentCallback(callback);
282 } 294 }
283 295
284 int DevToolsNetworkTransaction::ResumeNetworkStart() { 296 int DevToolsNetworkTransaction::ResumeNetworkStart() {
285 if (failed_) 297 if (failed_)
286 return net::ERR_INTERNET_DISCONNECTED; 298 return net::ERR_INTERNET_DISCONNECTED;
299 if (!interceptor_)
300 return network_transaction_->ResumeNetworkStart();
287 return network_transaction_->ResumeNetworkStart(); 301 return network_transaction_->ResumeNetworkStart();
288 } 302 }
289 303
290 void 304 void
291 DevToolsNetworkTransaction::GetConnectionAttempts(net::ConnectionAttempts* out) 305 DevToolsNetworkTransaction::GetConnectionAttempts(net::ConnectionAttempts* out)
292 const { 306 const {
293 network_transaction_->GetConnectionAttempts(out); 307 network_transaction_->GetConnectionAttempts(out);
294 } 308 }
295 309
296 void DevToolsNetworkTransaction::ThrottleFinished() { 310 void DevToolsNetworkTransaction::ThrottleFinished() {
297 DCHECK(!callback_.is_null()); 311 DCHECK(!callback_.is_null());
298 DCHECK(callback_type_ == READ || callback_type_ == START); 312 DCHECK(callback_type_ == READ || callback_type_ == START);
299 net::CompletionCallback callback = callback_; 313 net::CompletionCallback callback = callback_;
300 callback_.Reset(); 314 callback_.Reset();
301 callback_type_ = NONE; 315 callback_type_ = NONE;
302 callback.Run(throttled_result_); 316 callback.Run(throttled_result_);
303 } 317 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698