Index: content/common/gpu/client/gpu_channel_host.cc |
diff --git a/content/common/gpu/client/gpu_channel_host.cc b/content/common/gpu/client/gpu_channel_host.cc |
index 475eeb1541f6a4a4cb402ff7034055f17549f5ff..b4460bbb56e3d1e999349bca9e972f756bc3612b 100644 |
--- a/content/common/gpu/client/gpu_channel_host.cc |
+++ b/content/common/gpu/client/gpu_channel_host.cc |
@@ -7,9 +7,10 @@ |
#include <algorithm> |
#include "base/bind.h" |
-#include "base/message_loop/message_loop.h" |
-#include "base/message_loop/message_loop_proxy.h" |
+#include "base/location.h" |
#include "base/posix/eintr_wrapper.h" |
+#include "base/single_thread_task_runner.h" |
+#include "base/thread_task_runner_handle.h" |
#include "base/threading/thread_restrictions.h" |
#include "base/trace_event/trace_event.h" |
#include "content/common/gpu/client/command_buffer_proxy_impl.h" |
@@ -22,7 +23,6 @@ |
#endif |
using base::AutoLock; |
-using base::MessageLoopProxy; |
namespace content { |
@@ -71,13 +71,11 @@ void GpuChannelHost::Connect(const IPC::ChannelHandle& channel_handle, |
DCHECK(factory_->IsMainThread()); |
// Open a channel to the GPU process. We pass NULL as the main listener here |
// since we need to filter everything to route it to the right thread. |
- scoped_refptr<base::MessageLoopProxy> io_loop = factory_->GetIOLoopProxy(); |
- channel_ = IPC::SyncChannel::Create(channel_handle, |
- IPC::Channel::MODE_CLIENT, |
- NULL, |
- io_loop.get(), |
- true, |
- shutdown_event); |
+ scoped_refptr<base::SingleThreadTaskRunner> io_task_runner = |
+ factory_->GetIOThreadTaskRunner(); |
+ channel_ = |
+ IPC::SyncChannel::Create(channel_handle, IPC::Channel::MODE_CLIENT, NULL, |
+ io_task_runner.get(), true, shutdown_event); |
sync_filter_ = new IPC::SyncMessageFilter(shutdown_event); |
@@ -186,14 +184,11 @@ CommandBufferProxyImpl* GpuChannelHost::CreateViewCommandBuffer( |
// then set up a new connection, and the GPU channel and any |
// view command buffers will all be associated with the same GPU |
// process. |
- DCHECK(MessageLoopProxy::current().get()); |
- |
- scoped_refptr<base::MessageLoopProxy> io_loop = |
- factory_->GetIOLoopProxy(); |
- io_loop->PostTask( |
- FROM_HERE, |
- base::Bind(&GpuChannelHost::MessageFilter::OnChannelError, |
- channel_filter_.get())); |
+ scoped_refptr<base::SingleThreadTaskRunner> io_task_runner = |
+ factory_->GetIOThreadTaskRunner(); |
+ io_task_runner->PostTask( |
+ FROM_HERE, base::Bind(&GpuChannelHost::MessageFilter::OnChannelError, |
+ channel_filter_.get())); |
} |
return NULL; |
@@ -287,20 +282,20 @@ void GpuChannelHost::DestroyChannel() { |
void GpuChannelHost::AddRoute( |
int route_id, base::WeakPtr<IPC::Listener> listener) { |
- DCHECK(MessageLoopProxy::current().get()); |
- |
- scoped_refptr<base::MessageLoopProxy> io_loop = factory_->GetIOLoopProxy(); |
- io_loop->PostTask(FROM_HERE, |
- base::Bind(&GpuChannelHost::MessageFilter::AddRoute, |
- channel_filter_.get(), route_id, listener, |
- MessageLoopProxy::current())); |
+ scoped_refptr<base::SingleThreadTaskRunner> io_task_runner = |
+ factory_->GetIOThreadTaskRunner(); |
+ io_task_runner->PostTask(FROM_HERE, |
+ base::Bind(&GpuChannelHost::MessageFilter::AddRoute, |
+ channel_filter_.get(), route_id, listener, |
+ base::ThreadTaskRunnerHandle::Get())); |
} |
void GpuChannelHost::RemoveRoute(int route_id) { |
- scoped_refptr<base::MessageLoopProxy> io_loop = factory_->GetIOLoopProxy(); |
- io_loop->PostTask(FROM_HERE, |
- base::Bind(&GpuChannelHost::MessageFilter::RemoveRoute, |
- channel_filter_.get(), route_id)); |
+ scoped_refptr<base::SingleThreadTaskRunner> io_task_runner = |
+ factory_->GetIOThreadTaskRunner(); |
+ io_task_runner->PostTask( |
+ FROM_HERE, base::Bind(&GpuChannelHost::MessageFilter::RemoveRoute, |
+ channel_filter_.get(), route_id)); |
} |
base::SharedMemoryHandle GpuChannelHost::ShareToGpuProcess( |
@@ -387,11 +382,12 @@ GpuChannelHost::MessageFilter::~MessageFilter() {} |
void GpuChannelHost::MessageFilter::AddRoute( |
int route_id, |
base::WeakPtr<IPC::Listener> listener, |
- scoped_refptr<MessageLoopProxy> loop) { |
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner) { |
DCHECK(listeners_.find(route_id) == listeners_.end()); |
+ DCHECK(task_runner); |
GpuListenerInfo info; |
info.listener = listener; |
- info.loop = loop; |
+ info.task_runner = task_runner; |
listeners_[route_id] = info; |
} |
@@ -412,12 +408,10 @@ bool GpuChannelHost::MessageFilter::OnMessageReceived( |
return false; |
const GpuListenerInfo& info = it->second; |
- info.loop->PostTask( |
+ info.task_runner->PostTask( |
FROM_HERE, |
- base::Bind( |
- base::IgnoreResult(&IPC::Listener::OnMessageReceived), |
- info.listener, |
- message)); |
+ base::Bind(base::IgnoreResult(&IPC::Listener::OnMessageReceived), |
+ info.listener, message)); |
return true; |
} |
@@ -436,9 +430,8 @@ void GpuChannelHost::MessageFilter::OnChannelError() { |
it != listeners_.end(); |
it++) { |
const GpuListenerInfo& info = it->second; |
- info.loop->PostTask( |
- FROM_HERE, |
- base::Bind(&IPC::Listener::OnChannelError, info.listener)); |
+ info.task_runner->PostTask( |
+ FROM_HERE, base::Bind(&IPC::Listener::OnChannelError, info.listener)); |
} |
listeners_.clear(); |