summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-19 02:15:19 +0000
committerwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-19 02:15:19 +0000
commitb9114d5e9104f29512c7cbc7cbe5a07f727c3180 (patch)
treefe50546eec955206836bdfcd4bf42daaff2967de /net
parentd46c48484879ed310a0cddc161ec6cd5f2811222 (diff)
downloadchromium_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.cc11
-rw-r--r--net/url_request/url_request_about_job.h5
-rw-r--r--net/url_request/url_request_error_job.cc11
-rw-r--r--net/url_request/url_request_error_job.h5
-rw-r--r--net/url_request/url_request_job.cc9
-rw-r--r--net/url_request/url_request_job.h3
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);
};