Chromium Code Reviews| OLD | NEW | 
|---|---|
| 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 <utility> | 7 #include <utility> | 
| 8 | 8 | 
| 9 #include "base/callback_helpers.h" | 9 #include "base/callback_helpers.h" | 
| 10 #include "chrome/browser/devtools/devtools_network_controller.h" | 10 #include "chrome/browser/devtools/devtools_network_controller.h" | 
| 11 #include "chrome/browser/devtools/devtools_network_interceptor.h" | 11 #include "chrome/browser/devtools/devtools_network_interceptor.h" | 
| 12 #include "chrome/browser/devtools/devtools_network_upload_data_stream.h" | 12 #include "chrome/browser/devtools/devtools_network_upload_data_stream.h" | 
| 13 #include "net/base/load_timing_info.h" | 13 #include "net/base/load_timing_info.h" | 
| 14 #include "net/base/net_errors.h" | 14 #include "net/base/net_errors.h" | 
| 15 #include "net/http/http_network_transaction.h" | 15 #include "net/http/http_network_transaction.h" | 
| 16 #include "net/http/http_request_info.h" | 16 #include "net/http/http_request_info.h" | 
| 17 #include "net/socket/connection_attempts.h" | 17 #include "net/socket/connection_attempts.h" | 
| 18 | 18 | 
| 19 // Keep in sync with X_DevTools_Emulate_Network_Conditions_Client_Id defined in | 19 // Keep in sync with X_DevTools_Emulate_Network_Conditions_Client_Id defined in | 
| 20 // HTTPNames.in. | 20 // HTTPNames.json5. | 
| 21 const char | 21 const char | 
| 22 DevToolsNetworkTransaction::kDevToolsEmulateNetworkConditionsClientId[] = | 22 DevToolsNetworkTransaction::kDevToolsEmulateNetworkConditionsClientId[] = | 
| 23 "X-DevTools-Emulate-Network-Conditions-Client-Id"; | 23 "X-DevTools-Emulate-Network-Conditions-Client-Id"; | 
| 24 | 24 | 
| 25 // Keep in sync with X_DevTools_Requestt_Id defined in HTTPNames.json5. | |
| 
 
Sami
2017/02/27 12:39:07
typo: request
 
alex clarke (OOO till 29th)
2017/02/27 13:51:16
Done.
 
 | |
| 26 const char DevToolsNetworkTransaction::kDevToolsRequestId[] = | |
| 27 "X-DevTools-Request-Id"; | |
| 28 | |
| 25 DevToolsNetworkTransaction::DevToolsNetworkTransaction( | 29 DevToolsNetworkTransaction::DevToolsNetworkTransaction( | 
| 26 DevToolsNetworkController* controller, | 30 DevToolsNetworkController* controller, | 
| 27 std::unique_ptr<net::HttpTransaction> network_transaction) | 31 std::unique_ptr<net::HttpTransaction> network_transaction) | 
| 28 : throttled_byte_count_(0), | 32 : throttled_byte_count_(0), | 
| 29 controller_(controller), | 33 controller_(controller), | 
| 30 network_transaction_(std::move(network_transaction)), | 34 network_transaction_(std::move(network_transaction)), | 
| 31 request_(nullptr), | 35 request_(nullptr), | 
| 32 failed_(false) { | 36 failed_(false) { | 
| 33 DCHECK(controller); | 37 DCHECK(controller); | 
| 34 } | 38 } | 
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 106 } | 110 } | 
| 107 | 111 | 
| 108 int DevToolsNetworkTransaction::Start(const net::HttpRequestInfo* request, | 112 int DevToolsNetworkTransaction::Start(const net::HttpRequestInfo* request, | 
| 109 const net::CompletionCallback& callback, | 113 const net::CompletionCallback& callback, | 
| 110 const net::NetLogWithSource& net_log) { | 114 const net::NetLogWithSource& net_log) { | 
| 111 DCHECK(request); | 115 DCHECK(request); | 
| 112 request_ = request; | 116 request_ = request; | 
| 113 | 117 | 
| 114 std::string client_id; | 118 std::string client_id; | 
| 115 bool has_devtools_client_id = request_->extra_headers.HasHeader( | 119 bool has_devtools_client_id = request_->extra_headers.HasHeader( | 
| 116 kDevToolsEmulateNetworkConditionsClientId); | 120 kDevToolsEmulateNetworkConditionsClientId); | 
| 
 
Sami
2017/02/27 12:39:07
Should we also check for kDevToolsRequestId?
 
alex clarke (OOO till 29th)
2017/02/27 13:51:16
Possibly yes. Pavel WDYT?
 
 | |
| 117 if (has_devtools_client_id) { | 121 if (has_devtools_client_id) { | 
| 118 custom_request_.reset(new net::HttpRequestInfo(*request_)); | 122 custom_request_.reset(new net::HttpRequestInfo(*request_)); | 
| 119 custom_request_->extra_headers.GetHeader( | 123 custom_request_->extra_headers.GetHeader( | 
| 120 kDevToolsEmulateNetworkConditionsClientId, &client_id); | 124 kDevToolsEmulateNetworkConditionsClientId, &client_id); | 
| 121 custom_request_->extra_headers.RemoveHeader( | 125 custom_request_->extra_headers.RemoveHeader( | 
| 122 kDevToolsEmulateNetworkConditionsClientId); | 126 kDevToolsEmulateNetworkConditionsClientId); | 
| 127 custom_request_->extra_headers.RemoveHeader(kDevToolsRequestId); | |
| 123 | 128 | 
| 124 if (request_->upload_data_stream) { | 129 if (request_->upload_data_stream) { | 
| 125 custom_upload_data_stream_.reset( | 130 custom_upload_data_stream_.reset( | 
| 126 new DevToolsNetworkUploadDataStream(request_->upload_data_stream)); | 131 new DevToolsNetworkUploadDataStream(request_->upload_data_stream)); | 
| 127 custom_request_->upload_data_stream = custom_upload_data_stream_.get(); | 132 custom_request_->upload_data_stream = custom_upload_data_stream_.get(); | 
| 128 } | 133 } | 
| 129 | 134 | 
| 130 request_ = custom_request_.get(); | 135 request_ = custom_request_.get(); | 
| 131 } | 136 } | 
| 132 | 137 | 
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 291 if (CheckFailed()) | 296 if (CheckFailed()) | 
| 292 return net::ERR_INTERNET_DISCONNECTED; | 297 return net::ERR_INTERNET_DISCONNECTED; | 
| 293 return network_transaction_->ResumeNetworkStart(); | 298 return network_transaction_->ResumeNetworkStart(); | 
| 294 } | 299 } | 
| 295 | 300 | 
| 296 void | 301 void | 
| 297 DevToolsNetworkTransaction::GetConnectionAttempts(net::ConnectionAttempts* out) | 302 DevToolsNetworkTransaction::GetConnectionAttempts(net::ConnectionAttempts* out) | 
| 298 const { | 303 const { | 
| 299 network_transaction_->GetConnectionAttempts(out); | 304 network_transaction_->GetConnectionAttempts(out); | 
| 300 } | 305 } | 
| OLD | NEW |