diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-19 02:15:19 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-19 02:15:19 +0000 |
commit | b9114d5e9104f29512c7cbc7cbe5a07f727c3180 (patch) | |
tree | fe50546eec955206836bdfcd4bf42daaff2967de /net | |
parent | d46c48484879ed310a0cddc161ec6cd5f2811222 (diff) | |
download | chromium_src-b9114d5e9104f29512c7cbc7cbe5a07f727c3180.zip chromium_src-b9114d5e9104f29512c7cbc7cbe5a07f727c3180.tar.gz chromium_src-b9114d5e9104f29512c7cbc7cbe5a07f727c3180.tar.bz2 |
Change some URLRequestJob subclasses to use ScopedRunnableMethodFactory.
This is a step towards not refcounting URLRequestJobs.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6713054
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78803 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r-- | net/url_request/url_request_about_job.cc | 11 | ||||
-rw-r--r-- | net/url_request/url_request_about_job.h | 5 | ||||
-rw-r--r-- | net/url_request/url_request_error_job.cc | 11 | ||||
-rw-r--r-- | net/url_request/url_request_error_job.h | 5 | ||||
-rw-r--r-- | net/url_request/url_request_job.cc | 9 | ||||
-rw-r--r-- | net/url_request/url_request_job.h | 3 |
6 files changed, 31 insertions, 13 deletions
diff --git a/net/url_request/url_request_about_job.cc b/net/url_request/url_request_about_job.cc index f48e72a..2ef7ad5 100644 --- a/net/url_request/url_request_about_job.cc +++ b/net/url_request/url_request_about_job.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -8,12 +8,14 @@ #include "net/url_request/url_request_about_job.h" +#include "base/compiler_specific.h" #include "base/message_loop.h" namespace net { URLRequestAboutJob::URLRequestAboutJob(URLRequest* request) - : URLRequestJob(request) { + : URLRequestJob(request), + ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) { } // static @@ -25,8 +27,9 @@ URLRequestJob* URLRequestAboutJob::Factory(URLRequest* request, void URLRequestAboutJob::Start() { // Start reading asynchronously so that all error reporting and data // callbacks happen as they would for network requests. - MessageLoop::current()->PostTask(FROM_HERE, NewRunnableMethod( - this, &URLRequestAboutJob::StartAsync)); + MessageLoop::current()->PostTask( + FROM_HERE, + method_factory_.NewRunnableMethod(&URLRequestAboutJob::StartAsync)); } bool URLRequestAboutJob::GetMimeType(std::string* mime_type) const { diff --git a/net/url_request/url_request_about_job.h b/net/url_request/url_request_about_job.h index 4703830..d036a52 100644 --- a/net/url_request/url_request_about_job.h +++ b/net/url_request/url_request_about_job.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -8,6 +8,7 @@ #include <string> +#include "base/task.h" #include "net/url_request/url_request.h" #include "net/url_request/url_request_job.h" @@ -27,6 +28,8 @@ class URLRequestAboutJob : public URLRequestJob { virtual ~URLRequestAboutJob(); void StartAsync(); + + ScopedRunnableMethodFactory<URLRequestAboutJob> method_factory_; }; } // namespace net diff --git a/net/url_request/url_request_error_job.cc b/net/url_request/url_request_error_job.cc index c69e3f5..3a105f5b 100644 --- a/net/url_request/url_request_error_job.cc +++ b/net/url_request/url_request_error_job.cc @@ -1,9 +1,10 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "net/url_request/url_request_error_job.h" +#include "base/compiler_specific.h" #include "base/message_loop.h" #include "net/base/net_errors.h" #include "net/url_request/url_request_status.h" @@ -11,12 +12,14 @@ namespace net { URLRequestErrorJob::URLRequestErrorJob(URLRequest* request, int error) - : URLRequestJob(request), error_(error) { + : URLRequestJob(request), error_(error), + ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) { } void URLRequestErrorJob::Start() { - MessageLoop::current()->PostTask(FROM_HERE, NewRunnableMethod( - this, &URLRequestErrorJob::StartAsync)); + MessageLoop::current()->PostTask( + FROM_HERE, + method_factory_.NewRunnableMethod(&URLRequestErrorJob::StartAsync)); } void URLRequestErrorJob::StartAsync() { diff --git a/net/url_request/url_request_error_job.h b/net/url_request/url_request_error_job.h index 9d3ba7b..3732cc4 100644 --- a/net/url_request/url_request_error_job.h +++ b/net/url_request/url_request_error_job.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,7 @@ #define NET_URL_REQUEST_URL_REQUEST_ERROR_JOB_H_ #pragma once +#include "base/task.h" #include "net/url_request/url_request_job.h" namespace net { @@ -25,6 +26,8 @@ class URLRequestErrorJob : public URLRequestJob { void StartAsync(); int error_; + + ScopedRunnableMethodFactory<URLRequestErrorJob> method_factory_; }; } // namespace net diff --git a/net/url_request/url_request_job.cc b/net/url_request/url_request_job.cc index 5986515..66c48f4 100644 --- a/net/url_request/url_request_job.cc +++ b/net/url_request/url_request_job.cc @@ -4,6 +4,7 @@ #include "net/url_request/url_request_job.h" +#include "base/compiler_specific.h" #include "base/message_loop.h" #include "base/metrics/histogram.h" #include "base/string_number_conversions.h" @@ -41,7 +42,8 @@ URLRequestJob::URLRequestJob(URLRequest* request) filter_input_byte_count_(0), bytes_observed_in_packets_(0), max_packets_timed_(0), - observed_packet_count_(0) { + observed_packet_count_(0), + ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) { g_url_request_job_tracker.AddNewJob(this); } @@ -538,8 +540,9 @@ void URLRequestJob::NotifyDone(const URLRequestStatus &status) { // Complete this notification later. This prevents us from re-entering the // delegate if we're done because of a synchronous call. - MessageLoop::current()->PostTask(FROM_HERE, NewRunnableMethod( - this, &URLRequestJob::CompleteNotifyDone)); + MessageLoop::current()->PostTask( + FROM_HERE, + method_factory_.NewRunnableMethod(&URLRequestJob::CompleteNotifyDone)); } void URLRequestJob::CompleteNotifyDone() { diff --git a/net/url_request/url_request_job.h b/net/url_request/url_request_job.h index 9d330fd..e25877b 100644 --- a/net/url_request/url_request_job.h +++ b/net/url_request/url_request_job.h @@ -12,6 +12,7 @@ #include "base/ref_counted.h" #include "base/scoped_ptr.h" #include "base/string16.h" +#include "base/task.h" #include "base/time.h" #include "googleurl/src/gurl.h" #include "net/base/filter.h" @@ -388,6 +389,8 @@ class URLRequestJob : public base::RefCounted<URLRequestJob> { // We're ignoring overflow, as 1430 x 2^31 is a LOT of bytes. int observed_packet_count_; + ScopedRunnableMethodFactory<URLRequestJob> method_factory_; + DISALLOW_COPY_AND_ASSIGN(URLRequestJob); }; |