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

Side by Side Diff: chrome/browser/policy/cloud/test_request_interceptor.cc

Issue 686343002: Add MaybeInterceptRedirect/Response to URLRequestInterceptor (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixed build Created 6 years, 1 month 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
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/policy/cloud/test_request_interceptor.h" 5 #include "chrome/browser/policy/cloud/test_request_interceptor.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <queue> 8 #include <queue>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 158
159 class TestRequestInterceptor::Delegate : public net::URLRequestInterceptor { 159 class TestRequestInterceptor::Delegate : public net::URLRequestInterceptor {
160 public: 160 public:
161 Delegate(const std::string& hostname, 161 Delegate(const std::string& hostname,
162 scoped_refptr<base::SequencedTaskRunner> io_task_runner); 162 scoped_refptr<base::SequencedTaskRunner> io_task_runner);
163 ~Delegate() override; 163 ~Delegate() override;
164 164
165 // net::URLRequestInterceptor implementation: 165 // net::URLRequestInterceptor implementation:
166 net::URLRequestJob* MaybeInterceptRequest( 166 net::URLRequestJob* MaybeInterceptRequest(
167 net::URLRequest* request, 167 net::URLRequest* request,
168 net::NetworkDelegate* network_delegate) const override; 168 net::NetworkDelegate* network_delegate) override;
169
170 net::URLRequestJob* MaybeInterceptRedirect(
171 net::URLRequest* request,
172 net::NetworkDelegate* network_delegate,
173 const GURL& location) override;
174
175 net::URLRequestJob* MaybeInterceptResponse(
176 net::URLRequest* request,
177 net::NetworkDelegate* network_delegate) override;
169 178
170 void GetPendingSize(size_t* pending_size) const; 179 void GetPendingSize(size_t* pending_size) const;
171 void PushJobCallback(const JobCallback& callback); 180 void PushJobCallback(const JobCallback& callback);
172 181
173 private: 182 private:
174 const std::string hostname_; 183 const std::string hostname_;
175 scoped_refptr<base::SequencedTaskRunner> io_task_runner_; 184 scoped_refptr<base::SequencedTaskRunner> io_task_runner_;
176 185
177 // The queue of pending callbacks. 'mutable' because MaybeCreateJob() is a 186 // The queue of pending callbacks. 'mutable' because MaybeCreateJob() is a
178 // const method; it can't reenter though, because it runs exclusively on 187 // const method; it can't reenter though, because it runs exclusively on
179 // the IO thread. 188 // the IO thread.
180 mutable std::queue<JobCallback> pending_job_callbacks_; 189 mutable std::queue<JobCallback> pending_job_callbacks_;
181 }; 190 };
182 191
183 TestRequestInterceptor::Delegate::Delegate( 192 TestRequestInterceptor::Delegate::Delegate(
184 const std::string& hostname, 193 const std::string& hostname,
185 scoped_refptr<base::SequencedTaskRunner> io_task_runner) 194 scoped_refptr<base::SequencedTaskRunner> io_task_runner)
186 : hostname_(hostname), io_task_runner_(io_task_runner) {} 195 : hostname_(hostname), io_task_runner_(io_task_runner) {}
187 196
188 TestRequestInterceptor::Delegate::~Delegate() {} 197 TestRequestInterceptor::Delegate::~Delegate() {}
189 198
190 net::URLRequestJob* TestRequestInterceptor::Delegate::MaybeInterceptRequest( 199 net::URLRequestJob* TestRequestInterceptor::Delegate::MaybeInterceptRequest(
191 net::URLRequest* request, 200 net::URLRequest* request,
192 net::NetworkDelegate* network_delegate) const { 201 net::NetworkDelegate* network_delegate) {
193 CHECK(io_task_runner_->RunsTasksOnCurrentThread()); 202 CHECK(io_task_runner_->RunsTasksOnCurrentThread());
194 203
195 if (request->url().host() != hostname_) { 204 if (request->url().host() != hostname_) {
196 // Reject requests to other servers. 205 // Reject requests to other servers.
197 return ErrorJobCallback( 206 return ErrorJobCallback(
198 net::ERR_CONNECTION_REFUSED, request, network_delegate); 207 net::ERR_CONNECTION_REFUSED, request, network_delegate);
199 } 208 }
200 209
201 if (pending_job_callbacks_.empty()) { 210 if (pending_job_callbacks_.empty()) {
202 // Reject dmserver requests by default. 211 // Reject dmserver requests by default.
203 return BadRequestJobCallback(request, network_delegate); 212 return BadRequestJobCallback(request, network_delegate);
204 } 213 }
205 214
206 JobCallback callback = pending_job_callbacks_.front(); 215 JobCallback callback = pending_job_callbacks_.front();
207 pending_job_callbacks_.pop(); 216 pending_job_callbacks_.pop();
208 return callback.Run(request, network_delegate); 217 return callback.Run(request, network_delegate);
209 } 218 }
210 219
220 net::URLRequestJob* TestRequestInterceptor::Delegate::MaybeInterceptRedirect(
221 net::URLRequest* request,
222 net::NetworkDelegate* network_delegate,
223 const GURL& location) {
224 return NULL;
225 }
226
227 net::URLRequestJob* TestRequestInterceptor::Delegate::MaybeInterceptResponse(
228 net::URLRequest* request,
229 net::NetworkDelegate* network_delegate) {
230 return NULL;
231 }
232
211 void TestRequestInterceptor::Delegate::GetPendingSize( 233 void TestRequestInterceptor::Delegate::GetPendingSize(
212 size_t* pending_size) const { 234 size_t* pending_size) const {
213 CHECK(io_task_runner_->RunsTasksOnCurrentThread()); 235 CHECK(io_task_runner_->RunsTasksOnCurrentThread());
214 *pending_size = pending_job_callbacks_.size(); 236 *pending_size = pending_job_callbacks_.size();
215 } 237 }
216 238
217 void TestRequestInterceptor::Delegate::PushJobCallback( 239 void TestRequestInterceptor::Delegate::PushJobCallback(
218 const JobCallback& callback) { 240 const JobCallback& callback) {
219 CHECK(io_task_runner_->RunsTasksOnCurrentThread()); 241 CHECK(io_task_runner_->RunsTasksOnCurrentThread());
220 pending_job_callbacks_.push(callback); 242 pending_job_callbacks_.push(callback);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 FROM_HERE, 308 FROM_HERE,
287 base::Bind( 309 base::Bind(
288 base::IgnoreResult(&base::MessageLoopProxy::PostTask), 310 base::IgnoreResult(&base::MessageLoopProxy::PostTask),
289 base::MessageLoopProxy::current(), 311 base::MessageLoopProxy::current(),
290 FROM_HERE, 312 FROM_HERE,
291 run_loop.QuitClosure())); 313 run_loop.QuitClosure()));
292 run_loop.Run(); 314 run_loop.Run();
293 } 315 }
294 316
295 } // namespace policy 317 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698