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

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

Issue 182993003: Add the ability for DevTools to wrap network transactions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments Created 6 years, 7 months 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 | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/browser/devtools/devtools_network_transaction.h"
6
7 #include "chrome/browser/devtools/devtools_network_controller.h"
8 #include "net/base/net_errors.h"
9 #include "net/http/http_network_transaction.h"
10 #include "net/http/http_request_info.h"
11
12 DevToolsNetworkTransaction::DevToolsNetworkTransaction(
13 DevToolsNetworkController* controller,
14 scoped_ptr<net::HttpTransaction> network_transaction)
15 : controller_(controller),
16 network_transaction_(network_transaction.Pass()),
17 request_(NULL),
18 failed_(false),
19 proxy_callback_(base::Bind(&DevToolsNetworkTransaction::OnCallback,
20 base::Unretained(this))) {
21 DCHECK(controller);
22 controller->AddTransaction(this);
23 }
24
25 DevToolsNetworkTransaction::~DevToolsNetworkTransaction() {
26 controller_->RemoveTransaction(this);
27 }
28
29 void DevToolsNetworkTransaction::OnCallback(int rv) {
30 if (failed_)
31 return;
32 DCHECK(!callback_.is_null());
33 net::CompletionCallback callback = callback_;
34 callback_.Reset();
35 callback.Run(rv);
36 }
37
38 void DevToolsNetworkTransaction::Fail() {
39 DCHECK(request_);
40 DCHECK(!failed_);
41 failed_ = true;
42 network_transaction_->SetBeforeNetworkStartCallback(
43 BeforeNetworkStartCallback());
44 if (callback_.is_null())
45 return;
46 net::CompletionCallback callback = callback_;
47 callback_.Reset();
48 callback.Run(net::ERR_INTERNET_DISCONNECTED);
49 }
50
51 int DevToolsNetworkTransaction::Start(
52 const net::HttpRequestInfo* request,
53 const net::CompletionCallback& callback,
54 const net::BoundNetLog& net_log) {
55 DCHECK(request);
56 request_ = request;
57
58 if (controller_->ShouldFail(request_)) {
59 failed_ = true;
60 network_transaction_->SetBeforeNetworkStartCallback(
61 BeforeNetworkStartCallback());
62 return net::ERR_INTERNET_DISCONNECTED;
63 }
64 int rv = network_transaction_->Start(request, proxy_callback_, net_log);
65 if (rv == net::ERR_IO_PENDING)
66 callback_ = callback;
67 return rv;
68 }
69
70 int DevToolsNetworkTransaction::RestartIgnoringLastError(
71 const net::CompletionCallback& callback) {
72 if (failed_)
73 return net::ERR_INTERNET_DISCONNECTED;
74 int rv = network_transaction_->RestartIgnoringLastError(proxy_callback_);
75 if (rv == net::ERR_IO_PENDING)
76 callback_ = callback;
77 return rv;
78 }
79
80 int DevToolsNetworkTransaction::RestartWithCertificate(
81 net::X509Certificate* client_cert,
82 const net::CompletionCallback& callback) {
83 if (failed_)
84 return net::ERR_INTERNET_DISCONNECTED;
85 int rv = network_transaction_->RestartWithCertificate(
86 client_cert, proxy_callback_);
87 if (rv == net::ERR_IO_PENDING)
88 callback_ = callback;
89 return rv;
90 }
91
92 int DevToolsNetworkTransaction::RestartWithAuth(
93 const net::AuthCredentials& credentials,
94 const net::CompletionCallback& callback) {
95 if (failed_)
96 return net::ERR_INTERNET_DISCONNECTED;
97 int rv = network_transaction_->RestartWithAuth(credentials, proxy_callback_);
98 if (rv == net::ERR_IO_PENDING)
99 callback_ = callback;
100 return rv;
101 }
102
103 bool DevToolsNetworkTransaction::IsReadyToRestartForAuth() {
104 return network_transaction_->IsReadyToRestartForAuth();
105 }
106
107 int DevToolsNetworkTransaction::Read(
108 net::IOBuffer* buf,
109 int buf_len,
110 const net::CompletionCallback& callback) {
111 if (failed_)
112 return net::ERR_INTERNET_DISCONNECTED;
113 int rv = network_transaction_->Read(buf, buf_len, proxy_callback_);
114 if (rv == net::ERR_IO_PENDING)
115 callback_ = callback;
116 return rv;
117 }
118
119 void DevToolsNetworkTransaction::StopCaching() {
120 network_transaction_->StopCaching();
121 }
122
123 bool DevToolsNetworkTransaction::GetFullRequestHeaders(
124 net::HttpRequestHeaders* headers) const {
125 return network_transaction_->GetFullRequestHeaders(headers);
126 }
127
128 int64 DevToolsNetworkTransaction::GetTotalReceivedBytes() const {
129 return network_transaction_->GetTotalReceivedBytes();
130 }
131
132 void DevToolsNetworkTransaction::DoneReading() {
133 network_transaction_->DoneReading();
134 }
135
136 const net::HttpResponseInfo*
137 DevToolsNetworkTransaction::GetResponseInfo() const {
138 return network_transaction_->GetResponseInfo();
139 }
140
141 net::LoadState DevToolsNetworkTransaction::GetLoadState() const {
142 return network_transaction_->GetLoadState();
143 }
144
145 net::UploadProgress DevToolsNetworkTransaction::GetUploadProgress() const {
146 return network_transaction_->GetUploadProgress();
147 }
148
149 void DevToolsNetworkTransaction::SetQuicServerInfo(
150 net::QuicServerInfo* quic_server_info) {
151 network_transaction_->SetQuicServerInfo(quic_server_info);
152 }
153
154 bool DevToolsNetworkTransaction::GetLoadTimingInfo(
155 net::LoadTimingInfo* load_timing_info) const {
156 return network_transaction_->GetLoadTimingInfo(load_timing_info);
157 }
158
159 void DevToolsNetworkTransaction::SetPriority(net::RequestPriority priority) {
160 network_transaction_->SetPriority(priority);
161 }
162
163 void DevToolsNetworkTransaction::SetWebSocketHandshakeStreamCreateHelper(
164 net::WebSocketHandshakeStreamBase::CreateHelper* create_helper) {
165 network_transaction_->SetWebSocketHandshakeStreamCreateHelper(create_helper);
166 }
167
168 void DevToolsNetworkTransaction::SetBeforeNetworkStartCallback(
169 const BeforeNetworkStartCallback& callback) {
170 network_transaction_->SetBeforeNetworkStartCallback(callback);
171 }
172
173 int DevToolsNetworkTransaction::ResumeNetworkStart() {
174 if (failed_)
175 return net::ERR_INTERNET_DISCONNECTED;
176 return network_transaction_->ResumeNetworkStart();
177 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698