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

Side by Side Diff: content/test/test_url_fetcher_factory.cc

Issue 8556001: Convert NewRunnableFunction/NewRunnableMethod calls to use base::Bind(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 9 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 | Annotate | Revision Log
« no previous file with comments | « content/shell/shell_browser_context.cc ('k') | content/worker/webworkerclient_proxy.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "content/test/test_url_fetcher_factory.h" 5 #include "content/test/test_url_fetcher_factory.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h"
9 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
11 #include "base/memory/weak_ptr.h"
10 #include "base/message_loop.h" 12 #include "base/message_loop.h"
11 #include "content/common/net/url_fetcher_impl.h" 13 #include "content/common/net/url_fetcher_impl.h"
12 #include "content/public/common/url_fetcher_delegate.h" 14 #include "content/public/common/url_fetcher_delegate.h"
13 #include "net/base/host_port_pair.h" 15 #include "net/base/host_port_pair.h"
14 #include "net/http/http_response_headers.h" 16 #include "net/http/http_response_headers.h"
15 #include "net/url_request/url_request_status.h" 17 #include "net/url_request/url_request_status.h"
16 18
17 ScopedURLFetcherFactory::ScopedURLFetcherFactory( 19 ScopedURLFetcherFactory::ScopedURLFetcherFactory(
18 content::URLFetcherFactory* factory) { 20 content::URLFetcherFactory* factory) {
19 DCHECK(!URLFetcherImpl::factory()); 21 DCHECK(!URLFetcherImpl::factory());
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 } 227 }
226 228
227 // This class is used by the FakeURLFetcherFactory below. 229 // This class is used by the FakeURLFetcherFactory below.
228 class FakeURLFetcher : public TestURLFetcher { 230 class FakeURLFetcher : public TestURLFetcher {
229 public: 231 public:
230 // Normal URL fetcher constructor but also takes in a pre-baked response. 232 // Normal URL fetcher constructor but also takes in a pre-baked response.
231 FakeURLFetcher(const GURL& url, 233 FakeURLFetcher(const GURL& url,
232 content::URLFetcherDelegate* d, 234 content::URLFetcherDelegate* d,
233 const std::string& response_data, bool success) 235 const std::string& response_data, bool success)
234 : TestURLFetcher(0, url, d), 236 : TestURLFetcher(0, url, d),
235 ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) { 237 ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {
236 set_status(net::URLRequestStatus( 238 set_status(net::URLRequestStatus(
237 success ? net::URLRequestStatus::SUCCESS : 239 success ? net::URLRequestStatus::SUCCESS :
238 net::URLRequestStatus::FAILED, 240 net::URLRequestStatus::FAILED,
239 0)); 241 0));
240 set_response_code(success ? 200 : 500); 242 set_response_code(success ? 200 : 500);
241 SetResponseString(response_data); 243 SetResponseString(response_data);
242 } 244 }
243 245
244 // Start the request. This will call the given delegate asynchronously 246 // Start the request. This will call the given delegate asynchronously
245 // with the pre-baked response as parameter. 247 // with the pre-baked response as parameter.
246 virtual void Start() OVERRIDE { 248 virtual void Start() OVERRIDE {
247 MessageLoop::current()->PostTask( 249 MessageLoop::current()->PostTask(
248 FROM_HERE, 250 FROM_HERE,
249 method_factory_.NewRunnableMethod(&FakeURLFetcher::RunDelegate)); 251 base::Bind(&FakeURLFetcher::RunDelegate, weak_factory_.GetWeakPtr()));
250 } 252 }
251 253
252 virtual const GURL& GetURL() const OVERRIDE { 254 virtual const GURL& GetURL() const OVERRIDE {
253 return TestURLFetcher::GetOriginalURL(); 255 return TestURLFetcher::GetOriginalURL();
254 } 256 }
255 257
256 private: 258 private:
257 virtual ~FakeURLFetcher() { 259 virtual ~FakeURLFetcher() {
258 } 260 }
259 261
260 // This is the method which actually calls the delegate that is passed in the 262 // This is the method which actually calls the delegate that is passed in the
261 // constructor. 263 // constructor.
262 void RunDelegate() { 264 void RunDelegate() {
263 delegate()->OnURLFetchComplete(this); 265 delegate()->OnURLFetchComplete(this);
264 } 266 }
265 267
266 // Method factory used to run the delegate. 268 base::WeakPtrFactory<FakeURLFetcher> weak_factory_;
267 ScopedRunnableMethodFactory<FakeURLFetcher> method_factory_;
268 269
269 DISALLOW_COPY_AND_ASSIGN(FakeURLFetcher); 270 DISALLOW_COPY_AND_ASSIGN(FakeURLFetcher);
270 }; 271 };
271 272
272 FakeURLFetcherFactory::FakeURLFetcherFactory() 273 FakeURLFetcherFactory::FakeURLFetcherFactory()
273 : ScopedURLFetcherFactory(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { 274 : ScopedURLFetcherFactory(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
274 } 275 }
275 276
276 FakeURLFetcherFactory::FakeURLFetcherFactory( 277 FakeURLFetcherFactory::FakeURLFetcherFactory(
277 content::URLFetcherFactory* default_factory) 278 content::URLFetcherFactory* default_factory)
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 315
315 URLFetcherImplFactory::~URLFetcherImplFactory() {} 316 URLFetcherImplFactory::~URLFetcherImplFactory() {}
316 317
317 content::URLFetcher* URLFetcherImplFactory::CreateURLFetcher( 318 content::URLFetcher* URLFetcherImplFactory::CreateURLFetcher(
318 int id, 319 int id,
319 const GURL& url, 320 const GURL& url,
320 content::URLFetcher::RequestType request_type, 321 content::URLFetcher::RequestType request_type,
321 content::URLFetcherDelegate* d) { 322 content::URLFetcherDelegate* d) {
322 return new URLFetcherImpl(url, request_type, d); 323 return new URLFetcherImpl(url, request_type, d);
323 } 324 }
OLDNEW
« no previous file with comments | « content/shell/shell_browser_context.cc ('k') | content/worker/webworkerclient_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698