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

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

Powered by Google App Engine
This is Rietveld 408576698