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

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

Issue 1411183009: [DevTools] Narrow down DevToolsNetworkInterceptor::Throttable. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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 | « chrome/browser/devtools/devtools_network_transaction.h ('k') | 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 20 matching lines...) Expand all
31 proxy_callback_(base::Bind(&DevToolsNetworkTransaction::OnCallback, 31 proxy_callback_(base::Bind(&DevToolsNetworkTransaction::OnCallback,
32 base::Unretained(this))) { 32 base::Unretained(this))) {
33 DCHECK(controller); 33 DCHECK(controller);
34 } 34 }
35 35
36 DevToolsNetworkTransaction::~DevToolsNetworkTransaction() { 36 DevToolsNetworkTransaction::~DevToolsNetworkTransaction() {
37 if (interceptor_) 37 if (interceptor_)
38 interceptor_->RemoveThrottable(this); 38 interceptor_->RemoveThrottable(this);
39 } 39 }
40 40
41 bool DevToolsNetworkTransaction::HasStarted() {
42 return !!request_;
43 }
44
45 bool DevToolsNetworkTransaction::HasFailed() {
46 return failed_;
47 }
48
49 int64_t DevToolsNetworkTransaction::ThrottledByteCount() { 41 int64_t DevToolsNetworkTransaction::ThrottledByteCount() {
50 return throttled_byte_count_; 42 return throttled_byte_count_;
51 } 43 }
52 44
53 void DevToolsNetworkTransaction::Throttled(int64_t count) { 45 void DevToolsNetworkTransaction::Throttled(int64_t count) {
54 throttled_byte_count_ -= count; 46 throttled_byte_count_ -= count;
55 } 47 }
56 48
57 void DevToolsNetworkTransaction::GetSendEndTiming(base::TimeTicks* send_end) { 49 void DevToolsNetworkTransaction::GetSendEndTiming(base::TimeTicks* send_end) {
58 net::LoadTimingInfo load_timing_info; 50 net::LoadTimingInfo load_timing_info;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 Throttle(result); 112 Throttle(result);
121 return net::ERR_IO_PENDING; 113 return net::ERR_IO_PENDING;
122 } 114 }
123 115
124 void DevToolsNetworkTransaction::Fail() { 116 void DevToolsNetworkTransaction::Fail() {
125 DCHECK(request_); 117 DCHECK(request_);
126 DCHECK(!failed_); 118 DCHECK(!failed_);
127 failed_ = true; 119 failed_ = true;
128 network_transaction_->SetBeforeNetworkStartCallback( 120 network_transaction_->SetBeforeNetworkStartCallback(
129 BeforeNetworkStartCallback()); 121 BeforeNetworkStartCallback());
122 if (interceptor_) {
123 interceptor_->RemoveThrottable(this);
124 interceptor_.reset();
125 }
130 if (callback_.is_null()) 126 if (callback_.is_null())
131 return; 127 return;
132 net::CompletionCallback callback = callback_; 128 net::CompletionCallback callback = callback_;
133 callback_.Reset(); 129 callback_.Reset();
134 callback_type_ = NONE; 130 callback_type_ = NONE;
135 callback.Run(net::ERR_INTERNET_DISCONNECTED); 131 callback.Run(net::ERR_INTERNET_DISCONNECTED);
136 } 132 }
137 133
138 int DevToolsNetworkTransaction::Start( 134 int DevToolsNetworkTransaction::Start(
139 const net::HttpRequestInfo* request, 135 const net::HttpRequestInfo* request,
140 const net::CompletionCallback& callback, 136 const net::CompletionCallback& callback,
141 const net::BoundNetLog& net_log) { 137 const net::BoundNetLog& net_log) {
142 DCHECK(request); 138 DCHECK(request);
143 request_ = request; 139 request_ = request;
144 140
145 std::string client_id; 141 std::string client_id;
146 ProcessRequest(&client_id); 142 ProcessRequest(&client_id);
147 interceptor_ = controller_->GetInterceptor(client_id); 143 interceptor_ = controller_->GetInterceptor(client_id);
148 if (interceptor_)
149 interceptor_->AddThrottable(this);
150 144
151 if (interceptor_ && interceptor_->ShouldFail()) { 145 if (interceptor_ && interceptor_->ShouldFail()) {
152 failed_ = true; 146 failed_ = true;
153 network_transaction_->SetBeforeNetworkStartCallback( 147 network_transaction_->SetBeforeNetworkStartCallback(
154 BeforeNetworkStartCallback()); 148 BeforeNetworkStartCallback());
149 interceptor_.reset();
155 return net::ERR_INTERNET_DISCONNECTED; 150 return net::ERR_INTERNET_DISCONNECTED;
156 } 151 }
152
153 if (interceptor_)
154 interceptor_->AddThrottable(this);
157 int rv = network_transaction_->Start(request_, proxy_callback_, net_log); 155 int rv = network_transaction_->Start(request_, proxy_callback_, net_log);
158 return SetupCallback(callback, rv, START); 156 return SetupCallback(callback, rv, START);
159 } 157 }
160 158
161 void DevToolsNetworkTransaction::ProcessRequest(std::string* client_id) { 159 void DevToolsNetworkTransaction::ProcessRequest(std::string* client_id) {
162 DCHECK(request_); 160 DCHECK(request_);
163 bool has_devtools_client_id = request_->extra_headers.HasHeader( 161 bool has_devtools_client_id = request_->extra_headers.HasHeader(
164 kDevToolsEmulateNetworkConditionsClientId); 162 kDevToolsEmulateNetworkConditionsClientId);
165 if (!has_devtools_client_id) 163 if (!has_devtools_client_id)
166 return; 164 return;
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 } 293 }
296 294
297 void DevToolsNetworkTransaction::ThrottleFinished() { 295 void DevToolsNetworkTransaction::ThrottleFinished() {
298 DCHECK(!callback_.is_null()); 296 DCHECK(!callback_.is_null());
299 DCHECK(callback_type_ == READ || callback_type_ == START); 297 DCHECK(callback_type_ == READ || callback_type_ == START);
300 net::CompletionCallback callback = callback_; 298 net::CompletionCallback callback = callback_;
301 callback_.Reset(); 299 callback_.Reset();
302 callback_type_ = NONE; 300 callback_type_ = NONE;
303 callback.Run(throttled_result_); 301 callback.Run(throttled_result_);
304 } 302 }
OLDNEW
« no previous file with comments | « chrome/browser/devtools/devtools_network_transaction.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698