Index: chrome/browser/renderer_host/gpu_message_filter.cc |
=================================================================== |
--- chrome/browser/renderer_host/gpu_message_filter.cc (revision 75488) |
+++ chrome/browser/renderer_host/gpu_message_filter.cc (working copy) |
@@ -1,151 +0,0 @@ |
-// Copyright (c) 2010 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 "chrome/browser/renderer_host/gpu_message_filter.h" |
- |
-#include "base/callback.h" |
-#include "chrome/browser/gpu_process_host_ui_shim.h" |
-#include "chrome/common/gpu_create_command_buffer_config.h" |
-#include "chrome/common/gpu_messages.h" |
-#include "chrome/common/render_messages.h" |
- |
-GpuMessageFilter::GpuMessageFilter(int render_process_id) |
- : render_process_id_(render_process_id) { |
-} |
- |
-// WeakPtrs to a GpuMessageFilter need to be Invalidated from |
-// the same thread from which they were created. |
-GpuMessageFilter::~GpuMessageFilter() { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
-} |
- |
-void GpuMessageFilter::OverrideThreadForMessage( |
- const IPC::Message& message, |
- BrowserThread::ID* thread) { |
- if (IPC_MESSAGE_CLASS(message) == GpuMsgStart) |
- *thread = BrowserThread::UI; |
-} |
- |
-bool GpuMessageFilter::OnMessageReceived( |
- const IPC::Message& message, |
- bool* message_was_ok) { |
- bool handled = true; |
- IPC_BEGIN_MESSAGE_MAP_EX(GpuMessageFilter, message, *message_was_ok) |
- IPC_MESSAGE_HANDLER(GpuHostMsg_EstablishGpuChannel, |
- OnEstablishGpuChannel) |
- IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuHostMsg_SynchronizeGpu, |
- OnSynchronizeGpu) |
- IPC_MESSAGE_HANDLER_DELAY_REPLY(GpuHostMsg_CreateViewCommandBuffer, |
- OnCreateViewCommandBuffer) |
- IPC_MESSAGE_UNHANDLED(handled = false) |
- IPC_END_MESSAGE_MAP_EX() |
- return handled; |
-} |
- |
-void GpuMessageFilter::OnDestruct() const { |
- BrowserThread::DeleteOnUIThread::Destruct(this); |
-} |
- |
-// Callbacks used in this file. |
-namespace { |
- |
-class EstablishChannelCallback |
- : public CallbackRunner<Tuple2<const IPC::ChannelHandle&, |
- const GPUInfo&> > { |
- public: |
- explicit EstablishChannelCallback(GpuMessageFilter* filter): |
- filter_(filter->AsWeakPtr()) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- } |
- |
- virtual void RunWithParams(const TupleType& params) { |
- DispatchToMethod(this, &EstablishChannelCallback::Send, params); |
- } |
- |
- void Send(const IPC::ChannelHandle& channel, |
- const GPUInfo& gpu_info) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- ViewMsg_GpuChannelEstablished* reply = |
- new ViewMsg_GpuChannelEstablished(channel, gpu_info); |
- // If the renderer process is performing synchronous initialization, |
- // it needs to handle this message before receiving the reply for |
- // the synchronous GpuHostMsg_SynchronizeGpu message. |
- reply->set_unblock(true); |
- |
- if (filter_) |
- filter_->Send(reply); |
- } |
- |
- private: |
- base::WeakPtr<GpuMessageFilter> filter_; |
-}; |
- |
-class SynchronizeCallback : public CallbackRunner<Tuple0> { |
- public: |
- SynchronizeCallback(GpuMessageFilter* filter, IPC::Message* reply): |
- filter_(filter->AsWeakPtr()), |
- reply_(reply) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- } |
- |
- virtual void RunWithParams(const TupleType& params) { |
- DispatchToMethod(this, &SynchronizeCallback::Send, params); |
- } |
- |
- void Send() { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- if (filter_) |
- filter_->Send(reply_); |
- } |
- |
- private: |
- base::WeakPtr<GpuMessageFilter> filter_; |
- IPC::Message* reply_; |
-}; |
- |
-class CreateCommandBufferCallback : public CallbackRunner<Tuple1<int32> > { |
- public: |
- CreateCommandBufferCallback(GpuMessageFilter* filter, |
- IPC::Message* reply) : |
- filter_(filter->AsWeakPtr()), |
- reply_(reply) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- } |
- |
- virtual void RunWithParams(const TupleType& params) { |
- DispatchToMethod(this, &CreateCommandBufferCallback::Send, params); |
- } |
- |
- void Send(int32 route_id) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- GpuHostMsg_CreateViewCommandBuffer::WriteReplyParams(reply_, route_id); |
- if (filter_) |
- filter_->Send(reply_); |
- } |
- |
- private: |
- base::WeakPtr<GpuMessageFilter> filter_; |
- IPC::Message* reply_; |
-}; |
- |
-} // namespace |
- |
-void GpuMessageFilter::OnEstablishGpuChannel() { |
- GpuProcessHostUIShim::GetInstance()->EstablishGpuChannel( |
- render_process_id_, new EstablishChannelCallback(this)); |
-} |
- |
-void GpuMessageFilter::OnSynchronizeGpu(IPC::Message* reply) { |
- GpuProcessHostUIShim::GetInstance()-> |
- Synchronize(new SynchronizeCallback(this, reply)); |
-} |
- |
-void GpuMessageFilter::OnCreateViewCommandBuffer( |
- int32 render_view_id, |
- const GPUCreateCommandBufferConfig& init_params, |
- IPC::Message* reply) { |
- GpuProcessHostUIShim::GetInstance()->CreateViewCommandBuffer( |
- render_view_id, render_process_id_, init_params, |
- new CreateCommandBufferCallback(this, reply)); |
-} |