summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-15 21:14:06 +0000
committerdcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-15 21:14:06 +0000
commit037edb562c99661e1390bd7f200083a743394ba9 (patch)
treef1c8e7cd5299277281e3e3bbbbcb0137b673e1b0
parent1624b397f565f5f281122e404c11e33d84f949e3 (diff)
downloadchromium_src-037edb562c99661e1390bd7f200083a743394ba9.zip
chromium_src-037edb562c99661e1390bd7f200083a743394ba9.tar.gz
chromium_src-037edb562c99661e1390bd7f200083a743394ba9.tar.bz2
Convert NewRunnableFunction/NewRunnableMethod calls to use base::Bind().
BUG=none TEST=compiles and tests pass. Review URL: http://codereview.chromium.org/8556001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110164 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--content/browser/browser_message_filter.cc9
-rw-r--r--content/browser/child_process_launcher.cc11
-rw-r--r--content/browser/device_orientation/provider_impl.cc22
-rw-r--r--content/browser/device_orientation/provider_impl.h4
-rw-r--r--content/browser/download/drag_download_file.cc8
-rw-r--r--content/browser/download/drag_download_util.cc6
-rw-r--r--content/browser/download/mhtml_generation_manager.cc12
-rw-r--r--content/browser/net/url_request_failed_dns_job.cc7
-rw-r--r--content/browser/net/url_request_failed_dns_job.h4
-rw-r--r--content/browser/net/url_request_slow_download_job.cc15
-rw-r--r--content/browser/net/url_request_slow_download_job.h4
-rw-r--r--content/browser/renderer_host/p2p/socket_dispatcher_host.cc12
-rw-r--r--content/browser/renderer_host/pepper_message_filter.cc32
-rw-r--r--content/browser/renderer_host/render_message_filter.cc13
-rw-r--r--content/browser/renderer_host/render_message_filter.h1
-rw-r--r--content/browser/renderer_host/render_widget_helper.cc28
-rw-r--r--content/browser/renderer_host/resource_dispatcher_host.cc18
-rw-r--r--content/browser/renderer_host/resource_dispatcher_host.h3
-rw-r--r--content/browser/utility_process_host.cc7
-rw-r--r--content/common/resource_dispatcher.cc7
-rw-r--r--content/common/resource_dispatcher.h4
-rw-r--r--content/common/socket_stream_dispatcher.cc7
-rw-r--r--content/common/webmessageportchannel_impl.cc28
-rw-r--r--content/shell/shell_browser_context.cc11
-rw-r--r--content/test/test_url_fetcher_factory.cc9
-rw-r--r--content/worker/webworkerclient_proxy.cc10
-rw-r--r--content/worker/webworkerclient_proxy.h4
27 files changed, 159 insertions, 137 deletions
diff --git a/content/browser/browser_message_filter.cc b/content/browser/browser_message_filter.cc
index b3a8d5b..64ed8bd 100644
--- a/content/browser/browser_message_filter.cc
+++ b/content/browser/browser_message_filter.cc
@@ -4,6 +4,8 @@
#include "content/browser/browser_message_filter.h"
+#include "base/bind.h"
+#include "base/bind_helpers.h"
#include "base/logging.h"
#include "base/process.h"
#include "base/process_util.h"
@@ -49,7 +51,8 @@ bool BrowserMessageFilter::Send(IPC::Message* message) {
BrowserThread::PostTask(
BrowserThread::IO,
FROM_HERE,
- NewRunnableMethod(this, &BrowserMessageFilter::Send, message));
+ base::IgnoreReturn<bool>(
+ base::Bind(&BrowserMessageFilter::Send, this, message)));
return true;
}
@@ -75,8 +78,8 @@ bool BrowserMessageFilter::OnMessageReceived(const IPC::Message& message) {
BrowserThread::PostTask(
thread, FROM_HERE,
- NewRunnableMethod(
- this, &BrowserMessageFilter::DispatchMessage, message));
+ base::IgnoreReturn<bool>(
+ base::Bind(&BrowserMessageFilter::DispatchMessage, this, message)));
return true;
}
diff --git a/content/browser/child_process_launcher.cc b/content/browser/child_process_launcher.cc
index b8822f9..c3df910 100644
--- a/content/browser/child_process_launcher.cc
+++ b/content/browser/child_process_launcher.cc
@@ -6,6 +6,7 @@
#include <utility> // For std::pair.
+#include "base/bind.h"
#include "base/command_line.h"
#include "base/file_util.h"
#include "base/logging.h"
@@ -71,7 +72,7 @@ class ChildProcessLauncher::Context
BrowserThread::PostTask(
BrowserThread::PROCESS_LAUNCHER, FROM_HERE,
- NewRunnableFunction(
+ base::Bind(
&Context::LaunchInternal,
make_scoped_refptr(this),
client_thread_id_,
@@ -205,9 +206,9 @@ class ChildProcessLauncher::Context
BrowserThread::PostTask(
client_thread_id, FROM_HERE,
- NewRunnableMethod(
- this_object.get(),
+ base::Bind(
&Context::Notify,
+ this_object.get(),
#if defined(OS_POSIX) && !defined(OS_MACOSX)
use_zygote,
#endif
@@ -245,7 +246,7 @@ class ChildProcessLauncher::Context
// don't this on the UI/IO threads.
BrowserThread::PostTask(
BrowserThread::PROCESS_LAUNCHER, FROM_HERE,
- NewRunnableFunction(
+ base::Bind(
&Context::TerminateInternal,
#if defined(OS_POSIX) && !defined(OS_MACOSX)
zygote_,
@@ -375,7 +376,7 @@ base::TerminationStatus ChildProcessLauncher::GetChildTerminationStatus(
void ChildProcessLauncher::SetProcessBackgrounded(bool background) {
BrowserThread::PostTask(
BrowserThread::PROCESS_LAUNCHER, FROM_HERE,
- NewRunnableFunction(
+ base::Bind(
&ChildProcessLauncher::Context::SetProcessBackgrounded,
GetHandle(), background));
}
diff --git a/content/browser/device_orientation/provider_impl.cc b/content/browser/device_orientation/provider_impl.cc
index 433e806..e60cf20 100644
--- a/content/browser/device_orientation/provider_impl.cc
+++ b/content/browser/device_orientation/provider_impl.cc
@@ -6,9 +6,9 @@
#include <set>
#include <vector>
+#include "base/bind.h"
#include "base/logging.h"
#include "base/message_loop.h"
-#include "base/task.h"
#include "base/threading/thread.h"
#include "base/threading/thread_restrictions.h"
#include "content/browser/device_orientation/orientation.h"
@@ -18,7 +18,7 @@ namespace device_orientation {
ProviderImpl::ProviderImpl(const DataFetcherFactory factories[])
: creator_loop_(MessageLoop::current()),
- ALLOW_THIS_IN_INITIALIZER_LIST(do_poll_method_factory_(this)) {
+ ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {
for (const DataFetcherFactory* fp = factories; *fp; ++fp)
factories_.push_back(*fp);
}
@@ -98,11 +98,11 @@ void ProviderImpl::DoInitializePollingThread(
void ProviderImpl::ScheduleInitializePollingThread() {
DCHECK(MessageLoop::current() == creator_loop_);
- Task* task = NewRunnableMethod(this,
- &ProviderImpl::DoInitializePollingThread,
- factories_);
MessageLoop* polling_loop = polling_thread_->message_loop();
- polling_loop->PostTask(FROM_HERE, task);
+ polling_loop->PostTask(FROM_HERE,
+ base::Bind(&ProviderImpl::DoInitializePollingThread,
+ this,
+ factories_));
}
void ProviderImpl::DoNotify(const Orientation& orientation) {
@@ -124,8 +124,8 @@ void ProviderImpl::DoNotify(const Orientation& orientation) {
void ProviderImpl::ScheduleDoNotify(const Orientation& orientation) {
DCHECK(MessageLoop::current() == polling_thread_->message_loop());
- Task* task = NewRunnableMethod(this, &ProviderImpl::DoNotify, orientation);
- creator_loop_->PostTask(FROM_HERE, task);
+ creator_loop_->PostTask(
+ FROM_HERE, base::Bind(&ProviderImpl::DoNotify, this, orientation));
}
void ProviderImpl::DoPoll() {
@@ -150,9 +150,11 @@ void ProviderImpl::DoPoll() {
void ProviderImpl::ScheduleDoPoll() {
DCHECK(MessageLoop::current() == polling_thread_->message_loop());
- Task* task = do_poll_method_factory_.NewRunnableMethod(&ProviderImpl::DoPoll);
MessageLoop* polling_loop = polling_thread_->message_loop();
- polling_loop->PostDelayedTask(FROM_HERE, task, SamplingIntervalMs());
+ polling_loop->PostDelayedTask(
+ FROM_HERE,
+ base::Bind(&ProviderImpl::DoPoll, weak_factory_.GetWeakPtr()),
+ SamplingIntervalMs());
}
namespace {
diff --git a/content/browser/device_orientation/provider_impl.h b/content/browser/device_orientation/provider_impl.h
index db05d31..e70952b 100644
--- a/content/browser/device_orientation/provider_impl.h
+++ b/content/browser/device_orientation/provider_impl.h
@@ -9,7 +9,7 @@
#include <vector>
#include "base/memory/scoped_ptr.h"
-#include "base/task.h"
+#include "base/memory/weak_ptr.h"
#include "content/browser/device_orientation/data_fetcher.h"
#include "content/browser/device_orientation/orientation.h"
#include "content/browser/device_orientation/provider.h"
@@ -76,7 +76,7 @@ class ProviderImpl : public Provider {
// from that thread.
scoped_ptr<DataFetcher> data_fetcher_;
Orientation last_orientation_;
- ScopedRunnableMethodFactory<ProviderImpl> do_poll_method_factory_;
+ base::WeakPtrFactory<ProviderImpl> weak_factory_;
// Polling is done on this background thread.
scoped_ptr<base::Thread> polling_thread_;
diff --git a/content/browser/download/drag_download_file.cc b/content/browser/download/drag_download_file.cc
index e42127d..b8bccb6 100644
--- a/content/browser/download/drag_download_file.cc
+++ b/content/browser/download/drag_download_file.cc
@@ -4,6 +4,7 @@
#include "content/browser/download/drag_download_file.h"
+#include "base/bind.h"
#include "base/file_util.h"
#include "base/message_loop.h"
#include "content/browser/browser_context.h"
@@ -112,8 +113,7 @@ void DragDownloadFile::InitiateDownload() {
if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(this,
- &DragDownloadFile::InitiateDownload));
+ base::Bind(&DragDownloadFile::InitiateDownload, this));
return;
}
#endif
@@ -140,9 +140,7 @@ void DragDownloadFile::DownloadCompleted(bool is_successful) {
if (drag_message_loop_ != MessageLoop::current()) {
drag_message_loop_->PostTask(
FROM_HERE,
- NewRunnableMethod(this,
- &DragDownloadFile::DownloadCompleted,
- is_successful));
+ base::Bind(&DragDownloadFile::DownloadCompleted, this, is_successful));
return;
}
#endif
diff --git a/content/browser/download/drag_download_util.cc b/content/browser/download/drag_download_util.cc
index f112e96..8c25eb3 100644
--- a/content/browser/download/drag_download_util.cc
+++ b/content/browser/download/drag_download_util.cc
@@ -4,12 +4,12 @@
#include "content/browser/download/drag_download_util.h"
+#include "base/bind.h"
#include "base/file_path.h"
#include "base/file_util.h"
#include "base/memory/scoped_ptr.h"
#include "base/string_number_conversions.h"
#include "base/string_util.h"
-#include "base/task.h"
#include "base/utf_string_conversions.h"
#include "content/public/browser/browser_thread.h"
#include "googleurl/src/gurl.h"
@@ -102,13 +102,13 @@ void PromiseFileFinalizer::Cleanup() {
void PromiseFileFinalizer::OnDownloadCompleted(const FilePath& file_path) {
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(this, &PromiseFileFinalizer::Cleanup));
+ base::Bind(&PromiseFileFinalizer::Cleanup, this));
}
void PromiseFileFinalizer::OnDownloadAborted() {
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(this, &PromiseFileFinalizer::Cleanup));
+ base::Bind(&PromiseFileFinalizer::Cleanup, this));
}
} // namespace drag_download_util
diff --git a/content/browser/download/mhtml_generation_manager.cc b/content/browser/download/mhtml_generation_manager.cc
index 784e427..4dc70b2 100644
--- a/content/browser/download/mhtml_generation_manager.cc
+++ b/content/browser/download/mhtml_generation_manager.cc
@@ -4,6 +4,7 @@
#include "content/browser/download/mhtml_generation_manager.h"
+#include "base/bind.h"
#include "base/platform_file.h"
#include "content/browser/renderer_host/render_process_host.h"
#include "content/browser/renderer_host/render_view_host.h"
@@ -42,8 +43,8 @@ void MHTMLGenerationManager::GenerateMHTML(TabContents* tab_contents,
base::ProcessHandle renderer_process =
tab_contents->GetRenderProcessHost()->GetHandle();
BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
- NewRunnableMethod(this, &MHTMLGenerationManager::CreateFile,
- job_id, file, renderer_process));
+ base::Bind(&MHTMLGenerationManager::CreateFile, this,
+ job_id, file, renderer_process));
}
void MHTMLGenerationManager::MHTMLGenerated(int job_id, int64 mhtml_data_size) {
@@ -65,8 +66,8 @@ void MHTMLGenerationManager::CreateFile(int job_id, const FilePath& file_path,
IPC::GetFileHandleForProcess(browser_file, renderer_process, false);
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(this, &MHTMLGenerationManager::FileCreated,
- job_id, browser_file, renderer_file));
+ base::Bind(&MHTMLGenerationManager::FileCreated, this,
+ job_id, browser_file, renderer_file));
}
void MHTMLGenerationManager::FileCreated(int job_id,
@@ -122,8 +123,7 @@ void MHTMLGenerationManager::JobFinished(int job_id, int64 file_size) {
}
BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
- NewRunnableMethod(this, &MHTMLGenerationManager::CloseFile,
- job.browser_file));
+ base::Bind(&MHTMLGenerationManager::CloseFile, this, job.browser_file));
id_to_job_.erase(job_id);
}
diff --git a/content/browser/net/url_request_failed_dns_job.cc b/content/browser/net/url_request_failed_dns_job.cc
index bffb121..754804c9 100644
--- a/content/browser/net/url_request_failed_dns_job.cc
+++ b/content/browser/net/url_request_failed_dns_job.cc
@@ -4,6 +4,7 @@
#include "content/browser/net/url_request_failed_dns_job.h"
+#include "base/bind.h"
#include "base/compiler_specific.h"
#include "base/message_loop.h"
#include "googleurl/src/gurl.h"
@@ -16,15 +17,15 @@ const char URLRequestFailedDnsJob::kTestUrl[] =
URLRequestFailedDnsJob::URLRequestFailedDnsJob(net::URLRequest* request)
: net::URLRequestJob(request),
- ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) {}
+ ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {}
URLRequestFailedDnsJob::~URLRequestFailedDnsJob() {}
void URLRequestFailedDnsJob::Start() {
MessageLoop::current()->PostTask(
FROM_HERE,
- method_factory_.NewRunnableMethod(
- &URLRequestFailedDnsJob::StartAsync));
+ base::Bind(&URLRequestFailedDnsJob::StartAsync,
+ weak_factory_.GetWeakPtr()));
}
// static
diff --git a/content/browser/net/url_request_failed_dns_job.h b/content/browser/net/url_request_failed_dns_job.h
index da1042e..0442eb3 100644
--- a/content/browser/net/url_request_failed_dns_job.h
+++ b/content/browser/net/url_request_failed_dns_job.h
@@ -7,7 +7,7 @@
#define CONTENT_BROWSER_NET_URL_REQUEST_FAILED_DNS_JOB_H_
#pragma once
-#include "base/task.h"
+#include "base/memory/weak_ptr.h"
#include "content/common/content_export.h"
#include "net/url_request/url_request_job.h"
@@ -32,7 +32,7 @@ class URLRequestFailedDnsJob : public net::URLRequestJob {
// Simulate a DNS failure.
void StartAsync();
- ScopedRunnableMethodFactory<URLRequestFailedDnsJob> method_factory_;
+ base::WeakPtrFactory<URLRequestFailedDnsJob> weak_factory_;
};
#endif // CONTENT_BROWSER_NET_URL_REQUEST_FAILED_DNS_JOB_H_
diff --git a/content/browser/net/url_request_slow_download_job.cc b/content/browser/net/url_request_slow_download_job.cc
index bb650f8..ee4fa17 100644
--- a/content/browser/net/url_request_slow_download_job.cc
+++ b/content/browser/net/url_request_slow_download_job.cc
@@ -4,6 +4,7 @@
#include "content/browser/net/url_request_slow_download_job.h"
+#include "base/bind.h"
#include "base/compiler_specific.h"
#include "base/logging.h"
#include "base/message_loop.h"
@@ -38,8 +39,8 @@ base::LazyInstance<
void URLRequestSlowDownloadJob::Start() {
MessageLoop::current()->PostTask(
FROM_HERE,
- method_factory_.NewRunnableMethod(
- &URLRequestSlowDownloadJob::StartAsync));
+ base::Bind(&URLRequestSlowDownloadJob::StartAsync,
+ weak_factory_.GetWeakPtr()));
}
// static
@@ -85,7 +86,7 @@ URLRequestSlowDownloadJob::URLRequestSlowDownloadJob(net::URLRequest* request)
first_download_size_remaining_(kFirstDownloadSize),
should_finish_download_(false),
buffer_size_(0),
- ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) {
+ ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {
}
void URLRequestSlowDownloadJob::StartAsync() {
@@ -127,8 +128,8 @@ bool URLRequestSlowDownloadJob::ReadRawData(net::IOBuffer* buf, int buf_size,
SetStatus(net::URLRequestStatus(net::URLRequestStatus::IO_PENDING, 0));
MessageLoop::current()->PostDelayedTask(
FROM_HERE,
- method_factory_.NewRunnableMethod(
- &URLRequestSlowDownloadJob::CheckDoneStatus),
+ base::Bind(&URLRequestSlowDownloadJob::CheckDoneStatus,
+ weak_factory_.GetWeakPtr()),
100);
// Return false to signal there is pending data.
@@ -148,8 +149,8 @@ void URLRequestSlowDownloadJob::CheckDoneStatus() {
} else {
MessageLoop::current()->PostDelayedTask(
FROM_HERE,
- method_factory_.NewRunnableMethod(
- &URLRequestSlowDownloadJob::CheckDoneStatus),
+ base::Bind(&URLRequestSlowDownloadJob::CheckDoneStatus,
+ weak_factory_.GetWeakPtr()),
100);
}
}
diff --git a/content/browser/net/url_request_slow_download_job.h b/content/browser/net/url_request_slow_download_job.h
index 385e7b3..5e70fb8 100644
--- a/content/browser/net/url_request_slow_download_job.h
+++ b/content/browser/net/url_request_slow_download_job.h
@@ -14,7 +14,7 @@
#include <string>
#include "base/lazy_instance.h"
-#include "base/task.h"
+#include "base/memory/weak_ptr.h"
#include "content/common/content_export.h"
#include "net/url_request/url_request_job.h"
@@ -72,7 +72,7 @@ class URLRequestSlowDownloadJob : public net::URLRequestJob {
scoped_refptr<net::IOBuffer> buffer_;
int buffer_size_;
- ScopedRunnableMethodFactory<URLRequestSlowDownloadJob> method_factory_;
+ base::WeakPtrFactory<URLRequestSlowDownloadJob> weak_factory_;
};
#endif // CONTENT_BROWSER_NET_URL_REQUEST_SLOW_DOWNLOAD_JOB_H_
diff --git a/content/browser/renderer_host/p2p/socket_dispatcher_host.cc b/content/browser/renderer_host/p2p/socket_dispatcher_host.cc
index fdc8cf0..3ff79e3 100644
--- a/content/browser/renderer_host/p2p/socket_dispatcher_host.cc
+++ b/content/browser/renderer_host/p2p/socket_dispatcher_host.cc
@@ -168,8 +168,8 @@ void P2PSocketDispatcherHost::OnStartNetworkNotifications(
notifications_routing_ids_.insert(msg.routing_id());
BrowserThread::PostTask(
- BrowserThread::FILE, FROM_HERE, NewRunnableMethod(
- this, &P2PSocketDispatcherHost::DoGetNetworkList));
+ BrowserThread::FILE, FROM_HERE, base::Bind(
+ &P2PSocketDispatcherHost::DoGetNetworkList, this));
}
void P2PSocketDispatcherHost::OnStopNetworkNotifications(
@@ -180,16 +180,16 @@ void P2PSocketDispatcherHost::OnStopNetworkNotifications(
void P2PSocketDispatcherHost::OnIPAddressChanged() {
// Notify the renderer about changes to list of network interfaces.
BrowserThread::PostTask(
- BrowserThread::FILE, FROM_HERE, NewRunnableMethod(
- this, &P2PSocketDispatcherHost::DoGetNetworkList));
+ BrowserThread::FILE, FROM_HERE, base::Bind(
+ &P2PSocketDispatcherHost::DoGetNetworkList, this));
}
void P2PSocketDispatcherHost::DoGetNetworkList() {
net::NetworkInterfaceList list;
net::GetNetworkList(&list);
BrowserThread::PostTask(
- BrowserThread::IO, FROM_HERE, NewRunnableMethod(
- this, &P2PSocketDispatcherHost::SendNetworkList, list));
+ BrowserThread::IO, FROM_HERE, base::Bind(
+ &P2PSocketDispatcherHost::SendNetworkList, this, list));
}
void P2PSocketDispatcherHost::SendNetworkList(
diff --git a/content/browser/renderer_host/pepper_message_filter.cc b/content/browser/renderer_host/pepper_message_filter.cc
index 43880d7..f09f5c4 100644
--- a/content/browser/renderer_host/pepper_message_filter.cc
+++ b/content/browser/renderer_host/pepper_message_filter.cc
@@ -1091,12 +1091,12 @@ void PepperMessageFilter::OnConnectTcpAddress(
// Validate the address and then continue (doing |connect()|) on a worker
// thread.
if (!ppapi::NetAddressPrivateImpl::ValidateNetAddress(addr) ||
- !base::WorkerPool::PostTask(FROM_HERE,
- NewRunnableMethod(
- this,
- &PepperMessageFilter::ConnectTcpAddressOnWorkerThread,
- routing_id, request_id, addr),
- true)) {
+ !base::WorkerPool::PostTask(
+ FROM_HERE,
+ base::Bind(
+ &PepperMessageFilter::ConnectTcpAddressOnWorkerThread, this,
+ routing_id, request_id, addr),
+ true)) {
SendConnectTcpACKError(routing_id, request_id);
}
}
@@ -1118,12 +1118,12 @@ void PepperMessageFilter::ConnectTcpLookupFinished(
// If the lookup returned addresses, continue (doing |connect()|) on a worker
// thread.
if (!addresses.head() ||
- !base::WorkerPool::PostTask(FROM_HERE,
- NewRunnableMethod(
- this,
- &PepperMessageFilter::ConnectTcpOnWorkerThread,
- routing_id, request_id, addresses),
- true)) {
+ !base::WorkerPool::PostTask(
+ FROM_HERE,
+ base::Bind(
+ &PepperMessageFilter::ConnectTcpOnWorkerThread, this,
+ routing_id, request_id, addresses),
+ true)) {
SendConnectTcpACKError(routing_id, request_id);
}
}
@@ -1148,8 +1148,8 @@ void PepperMessageFilter::ConnectTcpOnWorkerThread(int routing_id,
}
BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
- NewRunnableMethod(
- this, &PepperMessageFilter::Send,
+ base::Bind(
+ &PepperMessageFilter::Send, this,
new PepperMsg_ConnectTcpACK(
routing_id, request_id,
socket_for_transit, local_addr, remote_addr)));
@@ -1171,8 +1171,8 @@ void PepperMessageFilter::ConnectTcpAddressOnWorkerThread(
socket_for_transit = base::FileDescriptor(fd, true);
BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
- NewRunnableMethod(
- this, &PepperMessageFilter::Send,
+ base::Bind(
+ &PepperMessageFilter::Send, this,
new PepperMsg_ConnectTcpACK(
routing_id, request_id,
socket_for_transit, local_addr, remote_addr)));
diff --git a/content/browser/renderer_host/render_message_filter.cc b/content/browser/renderer_host/render_message_filter.cc
index 982b950..41ee2cf 100644
--- a/content/browser/renderer_host/render_message_filter.cc
+++ b/content/browser/renderer_host/render_message_filter.cc
@@ -7,6 +7,7 @@
#include <map>
#include "base/bind.h"
+#include "base/bind_helpers.h"
#include "base/command_line.h"
#include "base/file_util.h"
#include "base/sys_string_conversions.h"
@@ -737,8 +738,8 @@ void RenderMessageFilter::OnKeygen(uint32 key_size_index,
// Dispatch to worker pool, so we do not block the IO thread.
if (!base::WorkerPool::PostTask(
FROM_HERE,
- NewRunnableMethod(
- this, &RenderMessageFilter::OnKeygenOnWorkerThread,
+ base::Bind(
+ &RenderMessageFilter::OnKeygenOnWorkerThread, this,
key_size_in_bits, challenge_string, url, reply_msg),
true)) {
NOTREACHED() << "Failed to dispatch keygen task to worker pool";
@@ -785,8 +786,8 @@ void RenderMessageFilter::OnAsyncOpenFile(const IPC::Message& msg,
}
BrowserThread::PostTask(
- BrowserThread::FILE, FROM_HERE, NewRunnableMethod(
- this, &RenderMessageFilter::AsyncOpenFileOnFileThread,
+ BrowserThread::FILE, FROM_HERE, base::Bind(
+ &RenderMessageFilter::AsyncOpenFileOnFileThread, this,
path, flags, message_id, msg.routing_id()));
}
@@ -806,8 +807,8 @@ void RenderMessageFilter::AsyncOpenFileOnFileThread(const FilePath& path,
IPC::Message* reply = new ViewMsg_AsyncOpenFile_ACK(
routing_id, error_code, file_for_transit, message_id);
BrowserThread::PostTask(
- BrowserThread::IO, FROM_HERE, NewRunnableMethod(
- this, &RenderMessageFilter::Send, reply));
+ BrowserThread::IO, FROM_HERE, base::IgnoreReturn<bool>(base::Bind(
+ &RenderMessageFilter::Send, this, reply)));
}
void RenderMessageFilter::OnMediaLogEvent(const media::MediaLogEvent& event) {
diff --git a/content/browser/renderer_host/render_message_filter.h b/content/browser/renderer_host/render_message_filter.h
index b44f97c..d391d2c 100644
--- a/content/browser/renderer_host/render_message_filter.h
+++ b/content/browser/renderer_host/render_message_filter.h
@@ -17,7 +17,6 @@
#include "base/memory/linked_ptr.h"
#include "base/shared_memory.h"
#include "base/string16.h"
-#include "base/task.h"
#include "build/build_config.h"
#include "content/browser/browser_message_filter.h"
#include "content/browser/in_process_webkit/webkit_context.h"
diff --git a/content/browser/renderer_host/render_widget_helper.cc b/content/browser/renderer_host/render_widget_helper.cc
index dab6348..b5e5ccd 100644
--- a/content/browser/renderer_host/render_widget_helper.cc
+++ b/content/browser/renderer_host/render_widget_helper.cc
@@ -4,6 +4,7 @@
#include "content/browser/renderer_host/render_widget_helper.h"
+#include "base/bind.h"
#include "base/eintr_wrapper.h"
#include "base/threading/thread.h"
#include "content/browser/renderer_host/render_process_host.h"
@@ -82,18 +83,18 @@ void RenderWidgetHelper::CancelResourceRequests(int render_widget_id) {
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
- NewRunnableMethod(this,
- &RenderWidgetHelper::OnCancelResourceRequests,
- render_widget_id));
+ base::Bind(&RenderWidgetHelper::OnCancelResourceRequests,
+ this,
+ render_widget_id));
}
void RenderWidgetHelper::CrossSiteSwapOutACK(
const ViewMsg_SwapOut_Params& params) {
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
- NewRunnableMethod(this,
- &RenderWidgetHelper::OnCrossSiteSwapOutACK,
- params));
+ base::Bind(&RenderWidgetHelper::OnCrossSiteSwapOutACK,
+ this,
+ params));
}
bool RenderWidgetHelper::WaitForUpdateMsg(int render_widget_id,
@@ -221,8 +222,8 @@ void RenderWidgetHelper::CreateNewWindow(
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(
- this, &RenderWidgetHelper::OnCreateWindowOnUI, params, *route_id));
+ base::Bind(
+ &RenderWidgetHelper::OnCreateWindowOnUI, this, params, *route_id));
}
void RenderWidgetHelper::OnCreateWindowOnUI(
@@ -235,8 +236,7 @@ void RenderWidgetHelper::OnCreateWindowOnUI(
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
- NewRunnableMethod(this, &RenderWidgetHelper::OnCreateWindowOnIO,
- route_id));
+ base::Bind(&RenderWidgetHelper::OnCreateWindowOnIO, this, route_id));
}
void RenderWidgetHelper::OnCreateWindowOnIO(int route_id) {
@@ -250,8 +250,8 @@ void RenderWidgetHelper::CreateNewWidget(int opener_id,
*route_id = GetNextRoutingID();
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(
- this, &RenderWidgetHelper::OnCreateWidgetOnUI, opener_id, *route_id,
+ base::Bind(
+ &RenderWidgetHelper::OnCreateWidgetOnUI, this, opener_id, *route_id,
popup_type));
}
@@ -260,8 +260,8 @@ void RenderWidgetHelper::CreateNewFullscreenWidget(int opener_id,
*route_id = GetNextRoutingID();
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(
- this, &RenderWidgetHelper::OnCreateFullscreenWidgetOnUI,
+ base::Bind(
+ &RenderWidgetHelper::OnCreateFullscreenWidgetOnUI, this,
opener_id, *route_id));
}
diff --git a/content/browser/renderer_host/resource_dispatcher_host.cc b/content/browser/renderer_host/resource_dispatcher_host.cc
index 76a5fbf..9c89d1f 100644
--- a/content/browser/renderer_host/resource_dispatcher_host.cc
+++ b/content/browser/renderer_host/resource_dispatcher_host.cc
@@ -306,7 +306,7 @@ ResourceDispatcherHost::ResourceDispatcherHost(
save_file_manager_(new SaveFileManager(this))),
webkit_thread_(new WebKitThread),
request_id_(-1),
- ALLOW_THIS_IN_INITIALIZER_LIST(method_runner_(this)),
+ ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)),
is_shutdown_(false),
max_outstanding_requests_cost_per_process_(
kMaxOutstandingRequestsCostPerProcess),
@@ -330,7 +330,7 @@ void ResourceDispatcherHost::Initialize() {
webkit_thread_->Initialize();
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
- NewRunnableFunction(&appcache::AppCacheInterceptor::EnsureRegistered));
+ base::Bind(&appcache::AppCacheInterceptor::EnsureRegistered));
}
void ResourceDispatcherHost::Shutdown() {
@@ -999,8 +999,9 @@ void ResourceDispatcherHost::PauseRequest(int child_id,
// asynchronously to avoid recursion problems.
if (info->pause_count() == 0) {
MessageLoop::current()->PostTask(FROM_HERE,
- method_runner_.NewRunnableMethod(
- &ResourceDispatcherHost::ResumeRequest, global_id));
+ base::Bind(
+ &ResourceDispatcherHost::ResumeRequest, weak_factory_.GetWeakPtr(),
+ global_id));
}
}
@@ -1716,8 +1717,9 @@ void ResourceDispatcherHost::OnReadCompleted(net::URLRequest* request,
GlobalRequestID id(info->child_id(), info->request_id());
MessageLoop::current()->PostTask(
FROM_HERE,
- method_runner_.NewRunnableMethod(
- &ResourceDispatcherHost::ResumeRequest, id));
+ base::Bind(
+ &ResourceDispatcherHost::ResumeRequest,
+ weak_factory_.GetWeakPtr(), id));
return;
}
}
@@ -1878,7 +1880,7 @@ void ResourceDispatcherHost::NotifyResponseStarted(net::URLRequest* request,
request, GetCertID(request, child_id));
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
- NewRunnableFunction(
+ base::Bind(
&ResourceDispatcherHost::NotifyOnUI<ResourceRequestDetails>,
static_cast<int>(content::NOTIFICATION_RESOURCE_RESPONSE_STARTED),
render_process_id, render_view_id, detail));
@@ -1896,7 +1898,7 @@ void ResourceDispatcherHost::NotifyReceivedRedirect(net::URLRequest* request,
request, GetCertID(request, child_id), new_url);
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
- NewRunnableFunction(
+ base::Bind(
&ResourceDispatcherHost::NotifyOnUI<ResourceRedirectDetails>,
static_cast<int>(content::NOTIFICATION_RESOURCE_RECEIVED_REDIRECT),
render_process_id, render_view_id, detail));
diff --git a/content/browser/renderer_host/resource_dispatcher_host.h b/content/browser/renderer_host/resource_dispatcher_host.h
index 79d33e4..f56338f 100644
--- a/content/browser/renderer_host/resource_dispatcher_host.h
+++ b/content/browser/renderer_host/resource_dispatcher_host.h
@@ -20,6 +20,7 @@
#include "base/basictypes.h"
#include "base/gtest_prod_util.h"
#include "base/memory/scoped_ptr.h"
+#include "base/memory/weak_ptr.h"
#include "base/time.h"
#include "base/timer.h"
#include "content/browser/download/download_resource_handler.h"
@@ -469,7 +470,7 @@ class CONTENT_EXPORT ResourceDispatcherHost : public net::URLRequest::Delegate {
int request_id_;
// For running tasks.
- ScopedRunnableMethodFactory<ResourceDispatcherHost> method_runner_;
+ base::WeakPtrFactory<ResourceDispatcherHost> weak_factory_;
// True if the resource dispatcher host has been shut down.
bool is_shutdown_;
diff --git a/content/browser/utility_process_host.cc b/content/browser/utility_process_host.cc
index f34a22f..f2173ca 100644
--- a/content/browser/utility_process_host.cc
+++ b/content/browser/utility_process_host.cc
@@ -4,6 +4,8 @@
#include "content/browser/utility_process_host.h"
+#include "base/bind.h"
+#include "base/bind_helpers.h"
#include "base/command_line.h"
#include "base/message_loop.h"
#include "base/utf_string_conversions.h"
@@ -139,14 +141,15 @@ bool UtilityProcessHost::StartProcess() {
bool UtilityProcessHost::OnMessageReceived(const IPC::Message& message) {
BrowserThread::PostTask(
client_thread_id_, FROM_HERE,
- NewRunnableMethod(client_.get(), &Client::OnMessageReceived, message));
+ base::IgnoreReturn<bool>(
+ base::Bind(&Client::OnMessageReceived, client_.get(), message)));
return true;
}
void UtilityProcessHost::OnProcessCrashed(int exit_code) {
BrowserThread::PostTask(
client_thread_id_, FROM_HERE,
- NewRunnableMethod(client_.get(), &Client::OnProcessCrashed, exit_code));
+ base::Bind(&Client::OnProcessCrashed, client_.get(), exit_code));
}
bool UtilityProcessHost::CanShutdown() {
diff --git a/content/common/resource_dispatcher.cc b/content/common/resource_dispatcher.cc
index f7b0b3d..4afa078 100644
--- a/content/common/resource_dispatcher.cc
+++ b/content/common/resource_dispatcher.cc
@@ -7,6 +7,7 @@
#include "content/common/resource_dispatcher.h"
#include "base/basictypes.h"
+#include "base/bind.h"
#include "base/compiler_specific.h"
#include "base/file_path.h"
#include "base/message_loop.h"
@@ -257,7 +258,7 @@ void IPCResourceLoaderBridge::UpdateRoutingId(int new_routing_id) {
ResourceDispatcher::ResourceDispatcher(IPC::Message::Sender* sender)
: message_sender_(sender),
- ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)),
+ ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)),
delegate_(NULL) {
}
@@ -512,8 +513,8 @@ void ResourceDispatcher::SetDefersLoading(int request_id, bool value) {
FollowPendingRedirect(request_id, request_info);
MessageLoop::current()->PostTask(FROM_HERE,
- method_factory_.NewRunnableMethod(
- &ResourceDispatcher::FlushDeferredMessages, request_id));
+ base::Bind(&ResourceDispatcher::FlushDeferredMessages,
+ weak_factory_.GetWeakPtr(), request_id));
}
}
diff --git a/content/common/resource_dispatcher.h b/content/common/resource_dispatcher.h
index 2200282..6cc7157 100644
--- a/content/common/resource_dispatcher.h
+++ b/content/common/resource_dispatcher.h
@@ -13,8 +13,8 @@
#include "base/hash_tables.h"
#include "base/memory/linked_ptr.h"
+#include "base/memory/weak_ptr.h"
#include "base/shared_memory.h"
-#include "base/task.h"
#include "content/common/content_export.h"
#include "ipc/ipc_channel.h"
#include "webkit/glue/resource_loader_bridge.h"
@@ -154,7 +154,7 @@ class CONTENT_EXPORT ResourceDispatcher : public IPC::Channel::Listener {
// All pending requests issued to the host
PendingRequestList pending_requests_;
- ScopedRunnableMethodFactory<ResourceDispatcher> method_factory_;
+ base::WeakPtrFactory<ResourceDispatcher> weak_factory_;
content::ResourceDispatcherDelegate* delegate_;
diff --git a/content/common/socket_stream_dispatcher.cc b/content/common/socket_stream_dispatcher.cc
index 79961b8..a45a3f5 100644
--- a/content/common/socket_stream_dispatcher.cc
+++ b/content/common/socket_stream_dispatcher.cc
@@ -6,11 +6,11 @@
#include <vector>
+#include "base/bind.h"
#include "base/id_map.h"
#include "base/lazy_instance.h"
#include "base/memory/ref_counted.h"
#include "base/message_loop.h"
-#include "base/task.h"
#include "content/common/child_thread.h"
#include "content/common/socket_stream.h"
#include "content/common/socket_stream_messages.h"
@@ -89,8 +89,7 @@ void IPCWebSocketStreamHandleBridge::Connect(const GURL& url) {
DVLOG(1) << "Connect url=" << url;
child_thread_->message_loop()->PostTask(
FROM_HERE,
- NewRunnableMethod(this, &IPCWebSocketStreamHandleBridge::DoConnect,
- url));
+ base::Bind(&IPCWebSocketStreamHandleBridge::DoConnect, this, url));
}
bool IPCWebSocketStreamHandleBridge::Send(
@@ -110,7 +109,7 @@ void IPCWebSocketStreamHandleBridge::Close() {
AddRef(); // Released in DoClose().
child_thread_->message_loop()->PostTask(
FROM_HERE,
- NewRunnableMethod(this, &IPCWebSocketStreamHandleBridge::DoClose));
+ base::Bind(&IPCWebSocketStreamHandleBridge::DoClose, this));
}
void IPCWebSocketStreamHandleBridge::OnConnected(int max_pending_send_allowed) {
diff --git a/content/common/webmessageportchannel_impl.cc b/content/common/webmessageportchannel_impl.cc
index 6a9ac36..f7b9489 100644
--- a/content/common/webmessageportchannel_impl.cc
+++ b/content/common/webmessageportchannel_impl.cc
@@ -4,6 +4,7 @@
#include "content/common/webmessageportchannel_impl.h"
+#include "base/bind.h"
#include "content/common/child_process.h"
#include "content/common/child_thread.h"
#include "content/common/worker_messages.h"
@@ -78,9 +79,10 @@ void WebMessagePortChannelImpl::postMessage(
const WebString& message,
WebMessagePortChannelArray* channels) {
if (MessageLoop::current() != ChildThread::current()->message_loop()) {
- ChildThread::current()->message_loop()->PostTask(FROM_HERE,
- NewRunnableMethod(this, &WebMessagePortChannelImpl::postMessage,
- message, channels));
+ ChildThread::current()->message_loop()->PostTask(
+ FROM_HERE,
+ base::Bind(&WebMessagePortChannelImpl::postMessage, this,
+ message, channels));
return;
}
@@ -124,8 +126,9 @@ bool WebMessagePortChannelImpl::tryGetMessage(
void WebMessagePortChannelImpl::Init() {
if (MessageLoop::current() != ChildThread::current()->message_loop()) {
- ChildThread::current()->message_loop()->PostTask(FROM_HERE,
- NewRunnableMethod(this, &WebMessagePortChannelImpl::Init));
+ ChildThread::current()->message_loop()->PostTask(
+ FROM_HERE,
+ base::Bind(&WebMessagePortChannelImpl::Init, this));
return;
}
@@ -141,8 +144,9 @@ void WebMessagePortChannelImpl::Init() {
void WebMessagePortChannelImpl::Entangle(
scoped_refptr<WebMessagePortChannelImpl> channel) {
if (MessageLoop::current() != ChildThread::current()->message_loop()) {
- ChildThread::current()->message_loop()->PostTask(FROM_HERE,
- NewRunnableMethod(this, &WebMessagePortChannelImpl::Entangle, channel));
+ ChildThread::current()->message_loop()->PostTask(
+ FROM_HERE,
+ base::Bind(&WebMessagePortChannelImpl::Entangle, this, channel));
return;
}
@@ -152,8 +156,9 @@ void WebMessagePortChannelImpl::Entangle(
void WebMessagePortChannelImpl::QueueMessages() {
if (MessageLoop::current() != ChildThread::current()->message_loop()) {
- ChildThread::current()->message_loop()->PostTask(FROM_HERE,
- NewRunnableMethod(this, &WebMessagePortChannelImpl::QueueMessages));
+ ChildThread::current()->message_loop()->PostTask(
+ FROM_HERE,
+ base::Bind(&WebMessagePortChannelImpl::QueueMessages, this));
return;
}
// This message port is being sent elsewhere (perhaps to another process).
@@ -172,8 +177,9 @@ void WebMessagePortChannelImpl::QueueMessages() {
void WebMessagePortChannelImpl::Send(IPC::Message* message) {
if (MessageLoop::current() != ChildThread::current()->message_loop()) {
DCHECK(!message->is_sync());
- ChildThread::current()->message_loop()->PostTask(FROM_HERE,
- NewRunnableMethod(this, &WebMessagePortChannelImpl::Send, message));
+ ChildThread::current()->message_loop()->PostTask(
+ FROM_HERE,
+ base::Bind(&WebMessagePortChannelImpl::Send, this, message));
return;
}
diff --git a/content/shell/shell_browser_context.cc b/content/shell/shell_browser_context.cc
index f45bbb6..23960fb 100644
--- a/content/shell/shell_browser_context.cc
+++ b/content/shell/shell_browser_context.cc
@@ -4,6 +4,7 @@
#include "content/shell/shell_browser_context.h"
+#include "base/bind.h"
#include "base/file_util.h"
#include "base/logging.h"
#include "base/path_service.h"
@@ -211,9 +212,9 @@ ChromeBlobStorageContext* ShellBrowserContext::GetBlobStorageContext() {
blob_storage_context_ = new ChromeBlobStorageContext();
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
- NewRunnableMethod(
- blob_storage_context_.get(),
- &ChromeBlobStorageContext::InitializeOnIOThread));
+ base::Bind(
+ &ChromeBlobStorageContext::InitializeOnIOThread,
+ blob_storage_context_.get()));
}
return blob_storage_context_;
}
@@ -250,9 +251,9 @@ void ShellBrowserContext::CreateQuotaManagerAndClients() {
scoped_refptr<quota::SpecialStoragePolicy> special_storage_policy;
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
- NewRunnableMethod(
- appcache_service_.get(),
+ base::Bind(
&ChromeAppCacheService::InitializeOnIOThread,
+ appcache_service_.get(),
IsOffTheRecord()
? FilePath() : GetPath().Append(FILE_PATH_LITERAL("AppCache")),
&GetResourceContext(),
diff --git a/content/test/test_url_fetcher_factory.cc b/content/test/test_url_fetcher_factory.cc
index 2e0fbd4..5a51c59 100644
--- a/content/test/test_url_fetcher_factory.cc
+++ b/content/test/test_url_fetcher_factory.cc
@@ -6,7 +6,9 @@
#include <string>
+#include "base/bind.h"
#include "base/compiler_specific.h"
+#include "base/memory/weak_ptr.h"
#include "base/message_loop.h"
#include "content/common/net/url_fetcher_impl.h"
#include "content/public/common/url_fetcher_delegate.h"
@@ -232,7 +234,7 @@ class FakeURLFetcher : public TestURLFetcher {
content::URLFetcherDelegate* d,
const std::string& response_data, bool success)
: TestURLFetcher(0, url, d),
- ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) {
+ ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {
set_status(net::URLRequestStatus(
success ? net::URLRequestStatus::SUCCESS :
net::URLRequestStatus::FAILED,
@@ -246,7 +248,7 @@ class FakeURLFetcher : public TestURLFetcher {
virtual void Start() OVERRIDE {
MessageLoop::current()->PostTask(
FROM_HERE,
- method_factory_.NewRunnableMethod(&FakeURLFetcher::RunDelegate));
+ base::Bind(&FakeURLFetcher::RunDelegate, weak_factory_.GetWeakPtr()));
}
virtual const GURL& GetURL() const OVERRIDE {
@@ -263,8 +265,7 @@ class FakeURLFetcher : public TestURLFetcher {
delegate()->OnURLFetchComplete(this);
}
- // Method factory used to run the delegate.
- ScopedRunnableMethodFactory<FakeURLFetcher> method_factory_;
+ base::WeakPtrFactory<FakeURLFetcher> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(FakeURLFetcher);
};
diff --git a/content/worker/webworkerclient_proxy.cc b/content/worker/webworkerclient_proxy.cc
index 7bd5fd9..42c15b3 100644
--- a/content/worker/webworkerclient_proxy.cc
+++ b/content/worker/webworkerclient_proxy.cc
@@ -4,6 +4,7 @@
#include "content/worker/webworkerclient_proxy.h"
+#include "base/bind.h"
#include "base/command_line.h"
#include "base/message_loop.h"
#include "content/common/file_system/file_system_dispatcher.h"
@@ -45,7 +46,7 @@ WebWorkerClientProxy::WebWorkerClientProxy(int route_id,
: route_id_(route_id),
appcache_host_id_(0),
stub_(stub),
- ALLOW_THIS_IN_INITIALIZER_LIST(kill_process_factory_(this)),
+ ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)),
devtools_agent_(NULL) {
}
@@ -209,7 +210,8 @@ void WebWorkerClientProxy::EnsureWorkerContextTerminates() {
// page. It's ok to post several of theese, because the first executed task
// will exit the message loop and subsequent ones won't be executed.
MessageLoop::current()->PostDelayedTask(FROM_HERE,
- kill_process_factory_.NewRunnableMethod(
- &WebWorkerClientProxy::workerContextDestroyed),
- kMaxTimeForRunawayWorkerMs);
+ base::Bind(
+ &WebWorkerClientProxy::workerContextDestroyed,
+ weak_factory_.GetWeakPtr()),
+ kMaxTimeForRunawayWorkerMs);
}
diff --git a/content/worker/webworkerclient_proxy.h b/content/worker/webworkerclient_proxy.h
index dc24e24..3b47df6 100644
--- a/content/worker/webworkerclient_proxy.h
+++ b/content/worker/webworkerclient_proxy.h
@@ -7,7 +7,7 @@
#pragma once
#include "base/basictypes.h"
-#include "base/task.h"
+#include "base/memory/weak_ptr.h"
#include "ipc/ipc_channel.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebFileSystem.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebWorkerClient.h"
@@ -94,7 +94,7 @@ class WebWorkerClientProxy : public WebKit::WebWorkerClient {
int route_id_;
int appcache_host_id_;
WebSharedWorkerStub* stub_;
- ScopedRunnableMethodFactory<WebWorkerClientProxy> kill_process_factory_;
+ base::WeakPtrFactory<WebWorkerClientProxy> weak_factory_;
SharedWorkerDevToolsAgent* devtools_agent_;
DISALLOW_COPY_AND_ASSIGN(WebWorkerClientProxy);