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

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: Added DevTools part of patch. Resolved some comments Created 6 years, 9 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 (c) 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 "base/guid.h"
8 #include "chrome/browser/devtools/devtools_network_controller.h"
9 #include "net/base/net_errors.h"
10 #include "net/http/http_network_transaction.h"
11 #include "net/http/http_request_info.h"
12
13 DevToolsNetworkTransaction::DevToolsNetworkTransaction(
14 const base::WeakPtr<DevToolsNetworkController>& controller,
mmenke 2014/03/11 21:16:53 This is a weak ptr because devtools is destroyed b
eustas 2014/03/12 15:38:33 that was so in 1-st take. removed.
15 scoped_ptr<net::HttpTransaction>& network_transaction)
16 : controller_(controller)
17 , id_(base::GenerateGUID())
mmenke 2014/03/11 21:16:53 Do these have to be strings? Numeric IDs are much
eustas 2014/03/12 15:38:33 Done.
18 , proxy_callback_(base::Bind(&DevToolsNetworkTransaction::OnCallback,
mmenke 2014/03/11 21:16:53 Commas go on previous line.
eustas 2014/03/12 15:38:33 Done.
19 base::Unretained(this))) {
20 network_transaction_.swap(network_transaction);
mmenke 2014/03/11 21:16:53 Can set this in your initializer list: network_tr
eustas 2014/03/12 15:38:33 Cool! thanks.
21 }
22
23 DevToolsNetworkTransaction::~DevToolsNetworkTransaction() {
24 if (controller_)
25 controller_->RemoveTransaction(GetId());
mmenke 2014/03/11 21:16:53 I think it's much cleaner to have the same class a
eustas 2014/03/12 15:38:33 Done.
26 }
27
28 std::string DevToolsNetworkTransaction::GetId() {
mmenke 2014/03/11 21:16:53 const std::string&?
eustas 2014/03/12 15:38:33 removed.
29 return id_;
30 }
31
32 const GURL& DevToolsNetworkTransaction::GetURL() {
33 return url_;
34 }
35
36 void DevToolsNetworkTransaction::OnCallback(int rv) {
37 net::CompletionCallback callback = callback_;
38 callback_.Reset();
39 callback.Run(rv);
40 }
41
42 void DevToolsNetworkTransaction::Stop() {
43 net::CompletionCallback callback = callback_;
44 callback_.Reset();
45 if (!callback.is_null())
46 callback.Run(net::ERR_INTERNET_DISCONNECTED);
47 }
48
49 int DevToolsNetworkTransaction::Start(
50 const net::HttpRequestInfo* request_info,
51 const net::CompletionCallback& callback,
52 const net::BoundNetLog& net_log) {
53 url_ = request_info->url;
54
55 if (controller_ && controller_->IsBlockedURL(url_))
56 return net::ERR_INTERNET_DISCONNECTED;
57 int rv = network_transaction_->Start(request_info, proxy_callback_, net_log);
58 if (rv == net::ERR_IO_PENDING)
59 callback_ = callback;
60 return rv;
61 }
62
63 int DevToolsNetworkTransaction::RestartIgnoringLastError(
64 const net::CompletionCallback& callback) {
65 int rv = network_transaction_->RestartIgnoringLastError(proxy_callback_);
66 if (rv == net::ERR_IO_PENDING)
67 callback_ = callback;
68 return rv;
69 }
70
71 int DevToolsNetworkTransaction::RestartWithCertificate(
72 net::X509Certificate* client_cert,
73 const net::CompletionCallback& callback) {
74 int rv = network_transaction_->RestartWithCertificate(
75 client_cert, proxy_callback_);
76 if (rv == net::ERR_IO_PENDING)
77 callback_ = callback;
78 return rv;
79 }
80
81 int DevToolsNetworkTransaction::RestartWithAuth(
82 const net::AuthCredentials& credentials,
83 const net::CompletionCallback& callback) {
84 int rv = network_transaction_->RestartWithAuth(credentials, proxy_callback_);
85 if (rv == net::ERR_IO_PENDING)
86 callback_ = callback;
87 return rv;
88 }
89
90 bool DevToolsNetworkTransaction::IsReadyToRestartForAuth() {
91 return network_transaction_->IsReadyToRestartForAuth();
92 }
93
94 int DevToolsNetworkTransaction::Read(
95 net::IOBuffer* buf,
96 int buf_len,
97 const net::CompletionCallback& callback) {
98 int rv = network_transaction_->Read(buf, buf_len, proxy_callback_);
99 if (rv == net::ERR_IO_PENDING)
100 callback_ = callback;
101 return rv;
102 }
103
104 void DevToolsNetworkTransaction::StopCaching() {
105 network_transaction_->StopCaching();
106 }
107
108 bool DevToolsNetworkTransaction::GetFullRequestHeaders(
109 net::HttpRequestHeaders* headers) const {
110 return network_transaction_->GetFullRequestHeaders(headers);
111 }
112
113 int64 DevToolsNetworkTransaction::GetTotalReceivedBytes() const {
114 return network_transaction_->GetTotalReceivedBytes();
115 }
116
117 void DevToolsNetworkTransaction::DoneReading() {
118 network_transaction_->DoneReading();
119 }
120
121 const net::HttpResponseInfo* DevToolsNetworkTransaction::GetResponseInfo() const
122 {
123 return network_transaction_->GetResponseInfo();
124 }
125
126 net::LoadState DevToolsNetworkTransaction::GetLoadState() const {
127 return network_transaction_->GetLoadState();
128 }
129
130 net::UploadProgress DevToolsNetworkTransaction::GetUploadProgress() const {
131 return network_transaction_->GetUploadProgress();
132 }
133
134 void DevToolsNetworkTransaction::SetQuicServerInfo(
135 net::QuicServerInfo* quic_server_info) {}
mmenke 2014/03/11 21:16:53 Should probably just call into network_transaction
eustas 2014/03/12 15:38:33 oops. didn't notice that one. done.
136
137 bool DevToolsNetworkTransaction::GetLoadTimingInfo(
138 net::LoadTimingInfo* load_timing_info) const {
139 return network_transaction_->GetLoadTimingInfo(load_timing_info);
140 }
141
142 void DevToolsNetworkTransaction::SetPriority(net::RequestPriority priority) {
143 network_transaction_->SetPriority(priority);
144 }
145
146 void DevToolsNetworkTransaction::SetWebSocketHandshakeStreamCreateHelper(
147 net::WebSocketHandshakeStreamBase::CreateHelper* create_helper) {
148 network_transaction_->SetWebSocketHandshakeStreamCreateHelper(create_helper);
149 }
150
151 void DevToolsNetworkTransaction::SetBeforeNetworkStartCallback(
152 const BeforeNetworkStartCallback& callback) {
153 // TODO
154 network_transaction_->SetBeforeNetworkStartCallback(callback);
155 }
156
157 int DevToolsNetworkTransaction::ResumeNetworkStart() {
158 return network_transaction_->ResumeNetworkStart();
159 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698