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

Side by Side Diff: net/http/failing_http_transaction_factory.cc

Issue 138513002: Plumb network stack information about existence of cached copy (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sync'd to r248769. Created 6 years, 10 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
« no previous file with comments | « net/http/failing_http_transaction_factory.h ('k') | net/http/http_cache.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "net/http/failing_http_transaction_factory.h"
6
7 #include "base/bind.h"
8 #include "base/compiler_specific.h"
9 #include "base/logging.h"
10 #include "base/message_loop/message_loop.h"
11 #include "net/base/load_timing_info.h"
12 #include "net/base/upload_progress.h"
13
14 namespace net {
15
16 class AuthCredentials;
17 class BoundNetLog;
18 class HttpRequestHeaders;
19 class IOBuffer;
20 class X509Certificate;
21
22 struct HttpRequestInfo;
23
24 namespace {
25
26 // A simple class to interpose between the cache and network http layers.
27 // These transactions can be generated by the FailingHttpTransactionFactory
28 // to test interactions between cache and network.
29 class FailingHttpTransaction : public HttpTransaction {
30 public:
31 explicit FailingHttpTransaction(Error error);
32 virtual ~FailingHttpTransaction();
33
34 // HttpTransaction
35 virtual int Start(const HttpRequestInfo* request_info,
36 const CompletionCallback& callback,
37 const BoundNetLog& net_log) OVERRIDE;
38 virtual int RestartIgnoringLastError(
39 const CompletionCallback& callback) OVERRIDE;
40 virtual int RestartWithCertificate(
41 X509Certificate* client_cert,
42 const CompletionCallback& callback) OVERRIDE;
43 virtual int RestartWithAuth(
44 const AuthCredentials& credentials,
45 const CompletionCallback& callback) OVERRIDE;
46 virtual bool IsReadyToRestartForAuth() OVERRIDE;
47 virtual int Read(IOBuffer* buf, int buf_len,
48 const CompletionCallback& callback) OVERRIDE;
49 virtual void StopCaching() OVERRIDE;
50 virtual bool GetFullRequestHeaders(
51 HttpRequestHeaders* headers) const OVERRIDE;
52 virtual int64 GetTotalReceivedBytes() const OVERRIDE;
53 virtual void DoneReading() OVERRIDE;
54 virtual const HttpResponseInfo* GetResponseInfo() const OVERRIDE;
55 virtual LoadState GetLoadState() const OVERRIDE;
56 virtual UploadProgress GetUploadProgress() const OVERRIDE;
57 virtual void SetQuicServerInfo(
58 net::QuicServerInfo* quic_server_info) OVERRIDE;
59 virtual bool GetLoadTimingInfo(
60 LoadTimingInfo* load_timing_info) const OVERRIDE;
61 virtual void SetPriority(RequestPriority priority) OVERRIDE;
62 virtual void SetWebSocketHandshakeStreamCreateHelper(
63 WebSocketHandshakeStreamBase::CreateHelper* create_helper) OVERRIDE;
64 virtual void SetBeforeNetworkStartCallback(
65 const BeforeNetworkStartCallback& callback) OVERRIDE;
66 virtual int ResumeNetworkStart() OVERRIDE;
67
68 private:
69 Error error_;
70 };
71
72 FailingHttpTransaction::FailingHttpTransaction(Error error) : error_(error) {
73 DCHECK_LT(error, OK);
74 }
75
76 FailingHttpTransaction::~FailingHttpTransaction() {}
77
78 int FailingHttpTransaction::Start(const HttpRequestInfo* request_info,
79 const CompletionCallback& callback,
80 const BoundNetLog& net_log) {
81 base::MessageLoop::current()->PostTask(
82 FROM_HERE, base::Bind(callback, error_));
83 return ERR_IO_PENDING;
84 }
85
86 int FailingHttpTransaction::RestartIgnoringLastError(
87 const CompletionCallback& callback) {
88 return ERR_FAILED;
89 }
90
91 int FailingHttpTransaction::RestartWithCertificate(
92 X509Certificate* client_cert,
93 const CompletionCallback& callback) {
94 return ERR_FAILED;
95 }
96
97 int FailingHttpTransaction::RestartWithAuth(
98 const AuthCredentials& credentials,
99 const CompletionCallback& callback) {
100 return ERR_FAILED;
101 }
102
103 bool FailingHttpTransaction::IsReadyToRestartForAuth() {
104 return false;
105 }
106
107 int FailingHttpTransaction::Read(IOBuffer* buf, int buf_len,
108 const CompletionCallback& callback) {
109 NOTREACHED();
110 return ERR_FAILED;
111 }
112
113 void FailingHttpTransaction::StopCaching() {}
114
115 bool FailingHttpTransaction::GetFullRequestHeaders(
116 HttpRequestHeaders* headers) const {
117 return false;
118 }
119
120 int64 FailingHttpTransaction::GetTotalReceivedBytes() const {
121 return 0;
122 }
123
124 void FailingHttpTransaction::DoneReading() {
125 NOTREACHED();
126 }
127
128 const HttpResponseInfo* FailingHttpTransaction::GetResponseInfo() const {
129 return NULL;
130 }
131
132 LoadState FailingHttpTransaction::GetLoadState() const {
133 return LOAD_STATE_IDLE;
134 }
135
136 UploadProgress FailingHttpTransaction::GetUploadProgress() const {
137 return UploadProgress();
138 }
139
140 void FailingHttpTransaction::SetQuicServerInfo(
141 net::QuicServerInfo* quic_server_info) {}
142
143 bool FailingHttpTransaction::GetLoadTimingInfo(
144 LoadTimingInfo* load_timing_info) const {
145 return false;
146 }
147
148 void FailingHttpTransaction::SetPriority(RequestPriority priority) {}
149
150 void FailingHttpTransaction::SetWebSocketHandshakeStreamCreateHelper(
151 WebSocketHandshakeStreamBase::CreateHelper* create_helper) {
152 NOTREACHED();
153 }
154
155 void FailingHttpTransaction::SetBeforeNetworkStartCallback(
156 const BeforeNetworkStartCallback& callback) {
157 }
158
159 int FailingHttpTransaction::ResumeNetworkStart() {
160 NOTREACHED();
161 return ERR_FAILED;
162 }
163
164 } // namespace
165
166 FailingHttpTransactionFactory::FailingHttpTransactionFactory(
167 HttpNetworkSession* session,
168 Error error) : session_(session), error_(error) {
169 DCHECK_LT(error, OK);
170 }
171
172 FailingHttpTransactionFactory::~FailingHttpTransactionFactory() {}
173
174 // HttpTransactionFactory:
175 int FailingHttpTransactionFactory::CreateTransaction(
176 RequestPriority priority,
177 scoped_ptr<HttpTransaction>* trans) {
178 trans->reset(new FailingHttpTransaction(error_));
179 return OK;
180 }
181
182 HttpCache* FailingHttpTransactionFactory::GetCache() {
183 return NULL;
184 }
185
186 HttpNetworkSession* FailingHttpTransactionFactory::GetSession() {
187 return session_;
188 }
189
190 } // namespace net
191
OLDNEW
« no previous file with comments | « net/http/failing_http_transaction_factory.h ('k') | net/http/http_cache.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698