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

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

Powered by Google App Engine
This is Rietveld 408576698