diff options
author | dcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-15 21:14:06 +0000 |
---|---|---|
committer | dcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-15 21:14:06 +0000 |
commit | 037edb562c99661e1390bd7f200083a743394ba9 (patch) | |
tree | f1c8e7cd5299277281e3e3bbbbcb0137b673e1b0 | |
parent | 1624b397f565f5f281122e404c11e33d84f949e3 (diff) | |
download | chromium_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
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); |