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

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: Incorporated rest of Matt's comments. 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
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 bool GetLoadTimingInfo(
58 LoadTimingInfo* load_timing_info) const OVERRIDE;
59 virtual void SetPriority(RequestPriority priority) OVERRIDE;
60 virtual void SetWebSocketHandshakeStreamCreateHelper(
61 WebSocketHandshakeStreamBase::CreateHelper* create_helper) OVERRIDE;
62 virtual void SetBeforeNetworkStartCallback(
63 const BeforeNetworkStartCallback& callback) OVERRIDE;
64 virtual int ResumeNetworkStart() OVERRIDE;
65
66 private:
67 Error error_;
68 };
69
70 FailingHttpTransaction::FailingHttpTransaction(Error error) : error_(error) {
71 DCHECK_LT(error, OK);
72 }
73
74 FailingHttpTransaction::~FailingHttpTransaction() {}
75
76 int FailingHttpTransaction::Start(const HttpRequestInfo* request_info,
77 const CompletionCallback& callback,
78 const BoundNetLog& net_log) {
79 base::MessageLoop::current()->PostTask(
80 FROM_HERE, base::Bind(callback, error_));
81 return ERR_IO_PENDING;
82 }
83
84 int FailingHttpTransaction::RestartIgnoringLastError(
85 const CompletionCallback& callback) {
86 return ERR_FAILED;
87 }
88
89 int FailingHttpTransaction::RestartWithCertificate(
90 X509Certificate* client_cert,
91 const CompletionCallback& callback) {
92 return ERR_FAILED;
93 }
94
95 int FailingHttpTransaction::RestartWithAuth(
96 const AuthCredentials& credentials,
97 const CompletionCallback& callback) {
98 return ERR_FAILED;
99 }
100
101 bool FailingHttpTransaction::IsReadyToRestartForAuth() {
102 return false;
103 }
104
105 int FailingHttpTransaction::Read(IOBuffer* buf, int buf_len,
106 const CompletionCallback& callback) {
107 NOTREACHED();
108 return ERR_FAILED;
109 }
110
111 void FailingHttpTransaction::StopCaching() {}
112
113 bool FailingHttpTransaction::GetFullRequestHeaders(
114 HttpRequestHeaders* headers) const {
115 return false;
116 }
117
118 int64 FailingHttpTransaction::GetTotalReceivedBytes() const {
119 return 0;
120 }
121
122 void FailingHttpTransaction::DoneReading() {
123 NOTREACHED();
124 }
125
126 const HttpResponseInfo* FailingHttpTransaction::GetResponseInfo() const {
127 return NULL;
128 }
129
130 LoadState FailingHttpTransaction::GetLoadState() const {
131 return LOAD_STATE_IDLE;
132 }
133
134 UploadProgress FailingHttpTransaction::GetUploadProgress() const {
135 return UploadProgress();
136 }
137
138 bool FailingHttpTransaction::GetLoadTimingInfo(
139 LoadTimingInfo* load_timing_info) const {
140 return false;
141 }
142
143 void FailingHttpTransaction::SetPriority(RequestPriority priority) {}
144
145 void FailingHttpTransaction::SetWebSocketHandshakeStreamCreateHelper(
146 WebSocketHandshakeStreamBase::CreateHelper* create_helper) {
147 NOTREACHED();
148 }
149
150 void FailingHttpTransaction::SetBeforeNetworkStartCallback(
151 const BeforeNetworkStartCallback& callback) {
152 }
153
154 int FailingHttpTransaction::ResumeNetworkStart() {
155 NOTREACHED();
156 return ERR_FAILED;
157 }
158
159 } // namespace
160
161 FailingHttpTransactionFactory::FailingHttpTransactionFactory(
162 HttpNetworkSession* session,
163 Error error) : session_(session), error_(error) {
164 DCHECK_LT(error, OK);
165 }
166
167 FailingHttpTransactionFactory::~FailingHttpTransactionFactory() {}
168
169 // HttpTransactionFactory:
170 int FailingHttpTransactionFactory::CreateTransaction(
171 RequestPriority priority,
172 scoped_ptr<HttpTransaction>* trans) {
173 trans->reset(new FailingHttpTransaction(error_));
174 return OK;
175 }
176
177 HttpCache* FailingHttpTransactionFactory::GetCache() {
178 return NULL;
179 }
180
181 HttpNetworkSession* FailingHttpTransactionFactory::GetSession() {
182 return session_;
183 }
184
185 } // namespace net
186
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698