diff options
Diffstat (limited to 'chrome/renderer')
33 files changed, 119 insertions, 90 deletions
diff --git a/chrome/renderer/command_buffer_proxy.cc b/chrome/renderer/command_buffer_proxy.cc index 0cc1e6a..21eee90 100644 --- a/chrome/renderer/command_buffer_proxy.cc +++ b/chrome/renderer/command_buffer_proxy.cc @@ -34,14 +34,17 @@ CommandBufferProxy::~CommandBufferProxy() { } } -void CommandBufferProxy::OnMessageReceived(const IPC::Message& message) { +bool CommandBufferProxy::OnMessageReceived(const IPC::Message& message) { + bool handled = true; IPC_BEGIN_MESSAGE_MAP(CommandBufferProxy, message) IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_UpdateState, OnUpdateState); IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_SwapBuffers, OnSwapBuffers); IPC_MESSAGE_HANDLER(GpuCommandBufferMsg_NotifyRepaint, OnNotifyRepaint); - IPC_MESSAGE_UNHANDLED_ERROR() + IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() + DCHECK(handled); + return handled; } void CommandBufferProxy::OnChannelError() { diff --git a/chrome/renderer/command_buffer_proxy.h b/chrome/renderer/command_buffer_proxy.h index 245c0580..6f3688f 100644 --- a/chrome/renderer/command_buffer_proxy.h +++ b/chrome/renderer/command_buffer_proxy.h @@ -38,7 +38,7 @@ class CommandBufferProxy : public gpu::CommandBuffer, virtual ~CommandBufferProxy(); // IPC::Channel::Listener implementation: - virtual void OnMessageReceived(const IPC::Message& message); + virtual bool OnMessageReceived(const IPC::Message& message); virtual void OnChannelError(); int route_id() const { return route_id_; } diff --git a/chrome/renderer/device_orientation_dispatcher.h b/chrome/renderer/device_orientation_dispatcher.h index e2abf37..88c1ef5 100644 --- a/chrome/renderer/device_orientation_dispatcher.h +++ b/chrome/renderer/device_orientation_dispatcher.h @@ -8,18 +8,20 @@ #include "third_party/WebKit/WebKit/chromium/public/WebDeviceOrientationClient.h" #include "base/scoped_ptr.h" +#include "ipc/ipc_channel.h" class RenderView; -namespace IPC { class Message; } namespace WebKit { class WebDeviceOrientation; } struct ViewMsg_DeviceOrientationUpdated_Params; -class DeviceOrientationDispatcher : public WebKit::WebDeviceOrientationClient { +class DeviceOrientationDispatcher : public WebKit::WebDeviceOrientationClient, + public IPC::Channel::Listener { public: explicit DeviceOrientationDispatcher(RenderView* render_view); virtual ~DeviceOrientationDispatcher(); + // IPC::Channel::Implementation. bool OnMessageReceived(const IPC::Message& msg); // From WebKit::WebDeviceOrientationClient. diff --git a/chrome/renderer/devtools_agent.h b/chrome/renderer/devtools_agent.h index ebb06dd..14a7247 100644 --- a/chrome/renderer/devtools_agent.h +++ b/chrome/renderer/devtools_agent.h @@ -11,12 +11,9 @@ #include "base/basictypes.h" #include "chrome/common/devtools_messages.h" +#include "ipc/ipc_channel.h" #include "third_party/WebKit/WebKit/chromium/public/WebDevToolsAgentClient.h" -namespace IPC { -class Message; -} - namespace WebKit { class WebDevToolsAgent; } @@ -28,14 +25,15 @@ struct DevToolsMessageData; // agents with the communication capabilities. All messages from/to Glue's // agents infrastructure are flowing through this comminucation agent. // There is a corresponding DevToolsClient object on the client side. -class DevToolsAgent : public WebKit::WebDevToolsAgentClient { +class DevToolsAgent : public WebKit::WebDevToolsAgentClient, + public IPC::Channel::Listener { public: DevToolsAgent(int routing_id, RenderView* view); virtual ~DevToolsAgent(); void OnNavigate(); - // IPC message interceptor. Called on the Render thread. + // IPC::Channel::Listener implementation. virtual bool OnMessageReceived(const IPC::Message& message); // WebDevToolsAgentClient implementation diff --git a/chrome/renderer/devtools_client.h b/chrome/renderer/devtools_client.h index 577e189..463dc35 100644 --- a/chrome/renderer/devtools_client.h +++ b/chrome/renderer/devtools_client.h @@ -10,11 +10,9 @@ #include "base/basictypes.h" #include "base/scoped_ptr.h" +#include "ipc/ipc_channel.h" #include "third_party/WebKit/WebKit/chromium/public/WebDevToolsFrontendClient.h" -namespace IPC { -class Message; -} class MessageLoop; class RenderView; @@ -31,13 +29,13 @@ struct DevToolsMessageData; // corresponding DevToolsAgent object. // TODO(yurys): now the client is almost empty later it will delegate calls to // code in glue -class DevToolsClient : public WebKit::WebDevToolsFrontendClient { +class DevToolsClient : public WebKit::WebDevToolsFrontendClient, + public IPC::Channel::Listener { public: explicit DevToolsClient(RenderView* view); virtual ~DevToolsClient(); - // Called to possibly handle the incoming IPC message. Returns true if - // handled. Called in render thread. + // IPC::Channel::Listener implementation. bool OnMessageReceived(const IPC::Message& message); // WebDevToolsFrontendClient implementation diff --git a/chrome/renderer/geolocation_dispatcher_old.h b/chrome/renderer/geolocation_dispatcher_old.h index 51567ef..ab93c14 100644 --- a/chrome/renderer/geolocation_dispatcher_old.h +++ b/chrome/renderer/geolocation_dispatcher_old.h @@ -12,7 +12,7 @@ #include "base/basictypes.h" #include "base/id_map.h" -#include "ipc/ipc_message.h" +#include "ipc/ipc_channel.h" #include "googleurl/src/gurl.h" #include "third_party/WebKit/WebKit/chromium/public/WebGeolocationService.h" @@ -25,13 +25,13 @@ struct Geoposition; // It's the complement of GeolocationDispatcherHostOld (owned by // RenderViewHost). -class GeolocationDispatcherOld : public WebKit::WebGeolocationService { +class GeolocationDispatcherOld : public WebKit::WebGeolocationService, + public IPC::Channel::Listener { public: explicit GeolocationDispatcherOld(RenderView* render_view); virtual ~GeolocationDispatcherOld(); - // Called to possibly handle the incoming IPC message. Returns true if - // handled. Called in render thread. + // IPC::Channel::Listener implementation bool OnMessageReceived(const IPC::Message& msg); // WebKit::WebGeolocationService. diff --git a/chrome/renderer/gpu_channel_host.cc b/chrome/renderer/gpu_channel_host.cc index 80baea9..ecf7bfc 100644 --- a/chrome/renderer/gpu_channel_host.cc +++ b/chrome/renderer/gpu_channel_host.cc @@ -37,14 +37,14 @@ const GPUInfo& GpuChannelHost::gpu_info() const { return gpu_info_; } -void GpuChannelHost::OnMessageReceived(const IPC::Message& message) { +bool GpuChannelHost::OnMessageReceived(const IPC::Message& message) { DCHECK(message.routing_id() != MSG_ROUTING_CONTROL); // The object to which the message is addressed might have been destroyed. // This is expected, for example an asynchronous SwapBuffers notification // to a command buffer proxy that has since been destroyed. This function // fails silently in that case. - router_.RouteMessage(message); + return router_.RouteMessage(message); } void GpuChannelHost::OnChannelConnected(int32 peer_pid) { diff --git a/chrome/renderer/gpu_channel_host.h b/chrome/renderer/gpu_channel_host.h index 8d9c684..42eebba 100644 --- a/chrome/renderer/gpu_channel_host.h +++ b/chrome/renderer/gpu_channel_host.h @@ -53,7 +53,7 @@ class GpuChannelHost : public IPC::Channel::Listener, const GPUInfo& gpu_info() const; // IPC::Channel::Listener implementation: - virtual void OnMessageReceived(const IPC::Message& msg); + virtual bool OnMessageReceived(const IPC::Message& msg); virtual void OnChannelConnected(int32 peer_pid); virtual void OnChannelError(); diff --git a/chrome/renderer/gpu_video_decoder_host.cc b/chrome/renderer/gpu_video_decoder_host.cc index 44599f3..9d9ba04 100644 --- a/chrome/renderer/gpu_video_decoder_host.cc +++ b/chrome/renderer/gpu_video_decoder_host.cc @@ -32,7 +32,8 @@ void GpuVideoDecoderHost::OnChannelError() { ipc_sender_ = NULL; } -void GpuVideoDecoderHost::OnMessageReceived(const IPC::Message& msg) { +bool GpuVideoDecoderHost::OnMessageReceived(const IPC::Message& msg) { + bool handled = true; IPC_BEGIN_MESSAGE_MAP(GpuVideoDecoderHost, msg) IPC_MESSAGE_HANDLER(GpuVideoDecoderHostMsg_CreateVideoDecoderDone, OnCreateVideoDecoderDone) @@ -54,8 +55,10 @@ void GpuVideoDecoderHost::OnMessageReceived(const IPC::Message& msg) { OnAllocateVideoFrames) IPC_MESSAGE_HANDLER(GpuVideoDecoderHostMsg_ReleaseAllVideoFrames, OnReleaseAllVideoFrames) - IPC_MESSAGE_UNHANDLED_ERROR() + IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() + DCHECK(handled); + return handled; } void GpuVideoDecoderHost::Initialize( diff --git a/chrome/renderer/gpu_video_decoder_host.h b/chrome/renderer/gpu_video_decoder_host.h index c32a9f0..a7a3a71 100644 --- a/chrome/renderer/gpu_video_decoder_host.h +++ b/chrome/renderer/gpu_video_decoder_host.h @@ -50,7 +50,7 @@ class GpuVideoDecoderHost : public media::VideoDecodeEngine, // IPC::Channel::Listener. virtual void OnChannelConnected(int32 peer_pid) {} virtual void OnChannelError(); - virtual void OnMessageReceived(const IPC::Message& message); + virtual bool OnMessageReceived(const IPC::Message& message); // media::VideoDecodeEngine implementation. virtual void Initialize(MessageLoop* message_loop, diff --git a/chrome/renderer/indexed_db_dispatcher.h b/chrome/renderer/indexed_db_dispatcher.h index 1210551..8012015 100644 --- a/chrome/renderer/indexed_db_dispatcher.h +++ b/chrome/renderer/indexed_db_dispatcher.h @@ -8,7 +8,7 @@ #include "base/id_map.h" #include "base/nullable_string16.h" -#include "ipc/ipc_message.h" +#include "ipc/ipc_channel.h" #include "third_party/WebKit/WebKit/chromium/public/WebExceptionCode.h" #include "third_party/WebKit/WebKit/chromium/public/WebIDBCallbacks.h" #include "third_party/WebKit/WebKit/chromium/public/WebIDBDatabase.h" @@ -24,13 +24,12 @@ class WebIDBTransaction; } // Handle the indexed db related communication for this entire renderer. -class IndexedDBDispatcher { +class IndexedDBDispatcher : public IPC::Channel::Listener { public: IndexedDBDispatcher(); ~IndexedDBDispatcher(); - // Called to possibly handle the incoming IPC message. Returns true if - // handled. + // IPC::Channel::Listener implementation. bool OnMessageReceived(const IPC::Message& msg); void RequestIDBFactoryOpen( diff --git a/chrome/renderer/mock_render_thread.cc b/chrome/renderer/mock_render_thread.cc index c188f34..1d98d6e 100644 --- a/chrome/renderer/mock_render_thread.cc +++ b/chrome/renderer/mock_render_thread.cc @@ -81,7 +81,7 @@ void MockRenderThread::SendCloseMessage() { widget_->OnMessageReceived(msg); } -void MockRenderThread::OnMessageReceived(const IPC::Message& msg) { +bool MockRenderThread::OnMessageReceived(const IPC::Message& msg) { // Save the message in the sink. sink_.OnMessageReceived(msg); @@ -116,6 +116,7 @@ void MockRenderThread::OnMessageReceived(const IPC::Message& msg) { #endif IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP_EX() + return handled; } // The Widget expects to be returned valid route_id. diff --git a/chrome/renderer/mock_render_thread.h b/chrome/renderer/mock_render_thread.h index a1b58a5..2a6dc60 100644 --- a/chrome/renderer/mock_render_thread.h +++ b/chrome/renderer/mock_render_thread.h @@ -82,7 +82,7 @@ class MockRenderThread : public RenderThreadBase { private: // This function operates as a regular IPC listener. - void OnMessageReceived(const IPC::Message& msg); + bool OnMessageReceived(const IPC::Message& msg); // The Widget expects to be returned valid route_id. void OnMsgCreateWidget(int opener_id, diff --git a/chrome/renderer/notification_provider.h b/chrome/renderer/notification_provider.h index ccd6cf3..1ba84b2 100644 --- a/chrome/renderer/notification_provider.h +++ b/chrome/renderer/notification_provider.h @@ -18,7 +18,8 @@ class WebNotificationPermissionCallback; // NotificationProvider class is owned by the RenderView. Only // to be used on the UI thread. -class NotificationProvider : public WebKit::WebNotificationPresenter { +class NotificationProvider : public WebKit::WebNotificationPresenter, + public IPC::Channel::Listener { public: explicit NotificationProvider(RenderView* view); virtual ~NotificationProvider(); @@ -32,7 +33,7 @@ class NotificationProvider : public WebKit::WebNotificationPresenter { virtual void requestPermission(const WebKit::WebSecurityOrigin& origin, WebKit::WebNotificationPermissionCallback* callback); - // IPC message handler called from RenderView. + // IPC::Channel::Listener implementation. bool OnMessageReceived(const IPC::Message& message); // Called when the RenderView navigates. diff --git a/chrome/renderer/plugin_channel_host.cc b/chrome/renderer/plugin_channel_host.cc index b6a93c0..34d1461 100644 --- a/chrome/renderer/plugin_channel_host.cc +++ b/chrome/renderer/plugin_channel_host.cc @@ -114,12 +114,15 @@ void PluginChannelHost::RemoveRoute(int route_id) { PluginChannelBase::RemoveRoute(route_id); } -void PluginChannelHost::OnControlMessageReceived(const IPC::Message& message) { +bool PluginChannelHost::OnControlMessageReceived(const IPC::Message& message) { + bool handled = true; IPC_BEGIN_MESSAGE_MAP(PluginChannelHost, message) IPC_MESSAGE_HANDLER(PluginHostMsg_SetException, OnSetException) IPC_MESSAGE_HANDLER(PluginHostMsg_PluginShuttingDown, OnPluginShuttingDown) - IPC_MESSAGE_UNHANDLED_ERROR() + IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() + DCHECK(handled); + return handled; } void PluginChannelHost::OnSetException(const std::string& message) { diff --git a/chrome/renderer/plugin_channel_host.h b/chrome/renderer/plugin_channel_host.h index 241833f..5f6d556 100644 --- a/chrome/renderer/plugin_channel_host.h +++ b/chrome/renderer/plugin_channel_host.h @@ -48,7 +48,7 @@ class PluginChannelHost : public PluginChannelBase { static PluginChannelBase* ClassFactory() { return new PluginChannelHost(); } - virtual void OnControlMessageReceived(const IPC::Message& message); + virtual bool OnControlMessageReceived(const IPC::Message& message); void OnSetException(const std::string& message); void OnPluginShuttingDown(const IPC::Message& message); diff --git a/chrome/renderer/render_thread.cc b/chrome/renderer/render_thread.cc index 5fc265e..f1f1008 100644 --- a/chrome/renderer/render_thread.cc +++ b/chrome/renderer/render_thread.cc @@ -593,13 +593,14 @@ void RenderThread::OnDOMStorageEvent( params.storage_type == DOM_STORAGE_LOCAL); } -void RenderThread::OnControlMessageReceived(const IPC::Message& msg) { +bool RenderThread::OnControlMessageReceived(const IPC::Message& msg) { // Some messages are handled by delegates. if (appcache_dispatcher_->OnMessageReceived(msg)) - return; + return true; if (indexed_db_dispatcher_->OnMessageReceived(msg)) - return; + return true; + bool handled = true; IPC_BEGIN_MESSAGE_MAP(RenderThread, msg) IPC_MESSAGE_HANDLER(ViewMsg_VisitedLink_NewTable, OnUpdateVisitedLinks) IPC_MESSAGE_HANDLER(ViewMsg_VisitedLink_Add, OnAddVisitedLinks) @@ -660,7 +661,9 @@ void RenderThread::OnControlMessageReceived(const IPC::Message& msg) { IPC_MESSAGE_HANDLER(ViewMsg_SetPhishingModel, OnSetPhishingModel) IPC_MESSAGE_HANDLER(ViewMsg_SpeechInput_SetFeatureEnabled, OnSetSpeechInputEnabled) + IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() + return handled; } void RenderThread::OnSetSpeechInputEnabled(bool enabled) { diff --git a/chrome/renderer/render_thread.h b/chrome/renderer/render_thread.h index 6946a47..6817cfb 100644 --- a/chrome/renderer/render_thread.h +++ b/chrome/renderer/render_thread.h @@ -254,7 +254,7 @@ class RenderThread : public RenderThreadBase, int extension_group); private: - virtual void OnControlMessageReceived(const IPC::Message& msg); + virtual bool OnControlMessageReceived(const IPC::Message& msg); void Init(); diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc index 7a84c11..1a9aef5 100644 --- a/chrome/renderer/render_view.cc +++ b/chrome/renderer/render_view.cc @@ -944,31 +944,32 @@ void RenderView::Init(gfx::NativeViewId parent_hwnd, render_thread_->AddFilter(audio_message_filter_); } -void RenderView::OnMessageReceived(const IPC::Message& message) { +bool RenderView::OnMessageReceived(const IPC::Message& message) { WebFrame* main_frame = webview() ? webview()->mainFrame() : NULL; if (main_frame) child_process_logging::SetActiveURL(main_frame->url()); // If this is developer tools renderer intercept tools messages first. if (devtools_client_.get() && devtools_client_->OnMessageReceived(message)) - return; + return true; if (devtools_agent_.get() && devtools_agent_->OnMessageReceived(message)) - return; + return true; if (notification_provider_->OnMessageReceived(message)) - return; + return true; if (geolocation_dispatcher_.get() && geolocation_dispatcher_->OnMessageReceived(message)) { - return; + return true; } if (speech_input_dispatcher_.get() && speech_input_dispatcher_->OnMessageReceived(message)) { - return; + return true; } if (device_orientation_dispatcher_.get() && device_orientation_dispatcher_->OnMessageReceived(message)) { - return; + return true; } + bool handled = true; IPC_BEGIN_MESSAGE_MAP(RenderView, message) IPC_MESSAGE_HANDLER(ViewMsg_CaptureThumbnail, OnCaptureThumbnail) IPC_MESSAGE_HANDLER(ViewMsg_CaptureSnapshot, OnCaptureSnapshot) @@ -1102,8 +1103,9 @@ void RenderView::OnMessageReceived(const IPC::Message& message) { IPC_MESSAGE_HANDLER(ViewMsg_PrintPreview, OnPrintPreview) // Have the super handle all other messages. - IPC_MESSAGE_UNHANDLED(RenderWidget::OnMessageReceived(message)) + IPC_MESSAGE_UNHANDLED(handled = RenderWidget::OnMessageReceived(message)) IPC_END_MESSAGE_MAP() + return handled; } void RenderView::OnCaptureThumbnail() { diff --git a/chrome/renderer/render_view.h b/chrome/renderer/render_view.h index 1f97fa6..862ed6c 100644 --- a/chrome/renderer/render_view.h +++ b/chrome/renderer/render_view.h @@ -388,7 +388,7 @@ class RenderView : public RenderWidget, // IPC::Channel::Listener implementation ------------------------------------- - virtual void OnMessageReceived(const IPC::Message& msg); + virtual bool OnMessageReceived(const IPC::Message& msg); // WebKit::WebWidgetClient implementation ------------------------------------ diff --git a/chrome/renderer/render_widget.cc b/chrome/renderer/render_widget.cc index 9cf323c..2f14576 100644 --- a/chrome/renderer/render_widget.cc +++ b/chrome/renderer/render_widget.cc @@ -153,25 +153,29 @@ void RenderWidget::CompleteInit(gfx::NativeViewId parent_hwnd) { Send(new ViewHostMsg_RenderViewReady(routing_id_)); } -IPC_DEFINE_MESSAGE_MAP(RenderWidget) - IPC_MESSAGE_HANDLER(ViewMsg_Close, OnClose) - IPC_MESSAGE_HANDLER(ViewMsg_CreatingNew_ACK, OnCreatingNewAck) - IPC_MESSAGE_HANDLER(ViewMsg_Resize, OnResize) - IPC_MESSAGE_HANDLER(ViewMsg_WasHidden, OnWasHidden) - IPC_MESSAGE_HANDLER(ViewMsg_WasRestored, OnWasRestored) - IPC_MESSAGE_HANDLER(ViewMsg_UpdateRect_ACK, OnUpdateRectAck) - IPC_MESSAGE_HANDLER(ViewMsg_HandleInputEvent, OnHandleInputEvent) - IPC_MESSAGE_HANDLER(ViewMsg_MouseCaptureLost, OnMouseCaptureLost) - IPC_MESSAGE_HANDLER(ViewMsg_SetFocus, OnSetFocus) - IPC_MESSAGE_HANDLER(ViewMsg_SetInputMethodActive, OnSetInputMethodActive) - IPC_MESSAGE_HANDLER(ViewMsg_ImeSetComposition, OnImeSetComposition) - IPC_MESSAGE_HANDLER(ViewMsg_ImeConfirmComposition, OnImeConfirmComposition) - IPC_MESSAGE_HANDLER(ViewMsg_PaintAtSize, OnMsgPaintAtSize) - IPC_MESSAGE_HANDLER(ViewMsg_Repaint, OnMsgRepaint) - IPC_MESSAGE_HANDLER(ViewMsg_SetTextDirection, OnSetTextDirection) - IPC_MESSAGE_HANDLER(ViewMsg_Move_ACK, OnRequestMoveAck) - IPC_MESSAGE_UNHANDLED_ERROR() -IPC_END_MESSAGE_MAP() +bool RenderWidget::OnMessageReceived(const IPC::Message& message) { + bool handled = true; + IPC_BEGIN_MESSAGE_MAP(RenderWidget, message) + IPC_MESSAGE_HANDLER(ViewMsg_Close, OnClose) + IPC_MESSAGE_HANDLER(ViewMsg_CreatingNew_ACK, OnCreatingNewAck) + IPC_MESSAGE_HANDLER(ViewMsg_Resize, OnResize) + IPC_MESSAGE_HANDLER(ViewMsg_WasHidden, OnWasHidden) + IPC_MESSAGE_HANDLER(ViewMsg_WasRestored, OnWasRestored) + IPC_MESSAGE_HANDLER(ViewMsg_UpdateRect_ACK, OnUpdateRectAck) + IPC_MESSAGE_HANDLER(ViewMsg_HandleInputEvent, OnHandleInputEvent) + IPC_MESSAGE_HANDLER(ViewMsg_MouseCaptureLost, OnMouseCaptureLost) + IPC_MESSAGE_HANDLER(ViewMsg_SetFocus, OnSetFocus) + IPC_MESSAGE_HANDLER(ViewMsg_SetInputMethodActive, OnSetInputMethodActive) + IPC_MESSAGE_HANDLER(ViewMsg_ImeSetComposition, OnImeSetComposition) + IPC_MESSAGE_HANDLER(ViewMsg_ImeConfirmComposition, OnImeConfirmComposition) + IPC_MESSAGE_HANDLER(ViewMsg_PaintAtSize, OnMsgPaintAtSize) + IPC_MESSAGE_HANDLER(ViewMsg_Repaint, OnMsgRepaint) + IPC_MESSAGE_HANDLER(ViewMsg_SetTextDirection, OnSetTextDirection) + IPC_MESSAGE_HANDLER(ViewMsg_Move_ACK, OnRequestMoveAck) + IPC_MESSAGE_UNHANDLED(handled = false) + IPC_END_MESSAGE_MAP() + return handled; +} bool RenderWidget::Send(IPC::Message* message) { // Don't send any messages after the browser has told us to close. diff --git a/chrome/renderer/render_widget.h b/chrome/renderer/render_widget.h index bf542bf..f847ce2 100644 --- a/chrome/renderer/render_widget.h +++ b/chrome/renderer/render_widget.h @@ -92,7 +92,7 @@ class RenderWidget : public IPC::Channel::Listener, bool has_focus() const { return has_focus_; } // IPC::Channel::Listener - virtual void OnMessageReceived(const IPC::Message& msg); + virtual bool OnMessageReceived(const IPC::Message& msg); // IPC::Message::Sender virtual bool Send(IPC::Message* msg); diff --git a/chrome/renderer/renderer_main_unittest.cc b/chrome/renderer/renderer_main_unittest.cc index 464419b..653e02f 100644 --- a/chrome/renderer/renderer_main_unittest.cc +++ b/chrome/renderer/renderer_main_unittest.cc @@ -89,9 +89,10 @@ class SuicidalListener : public IPC::Channel::Listener { MessageLoop::current()->Quit(); } - void OnMessageReceived(const IPC::Message& message) { + bool OnMessageReceived(const IPC::Message& message) { // We shouldn't receive any messages - ASSERT_TRUE(false); + NOTREACHED(); + return false; } }; diff --git a/chrome/renderer/safe_browsing/phishing_classifier_delegate_browsertest.cc b/chrome/renderer/safe_browsing/phishing_classifier_delegate_browsertest.cc index f84b0bd..edb5394 100644 --- a/chrome/renderer/safe_browsing/phishing_classifier_delegate_browsertest.cc +++ b/chrome/renderer/safe_browsing/phishing_classifier_delegate_browsertest.cc @@ -59,13 +59,15 @@ class MockScorer : public Scorer { class PhishingClassifierDelegateTest : public RenderViewFakeResourcesTest { protected: - void OnMessageReceived(const IPC::Message& message) { + bool OnMessageReceived(const IPC::Message& message) { + bool handled = true; IPC_BEGIN_MESSAGE_MAP(PhishingClassifierDelegateTest, message) IPC_MESSAGE_HANDLER(ViewHostMsg_DetectedPhishingSite, OnDetectedPhishingSite) IPC_MESSAGE_UNHANDLED( - RenderViewFakeResourcesTest::OnMessageReceived(message)) + handled = RenderViewFakeResourcesTest::OnMessageReceived(message)) IPC_END_MESSAGE_MAP() + return handled; } void OnDetectedPhishingSite(GURL phishing_url, diff --git a/chrome/renderer/safe_browsing/render_view_fake_resources_test.cc b/chrome/renderer/safe_browsing/render_view_fake_resources_test.cc index e745373..bc52ef2 100644 --- a/chrome/renderer/safe_browsing/render_view_fake_resources_test.cc +++ b/chrome/renderer/safe_browsing/render_view_fake_resources_test.cc @@ -36,13 +36,14 @@ const int32 RenderViewFakeResourcesTest::kViewId = 5; RenderViewFakeResourcesTest::RenderViewFakeResourcesTest() {} RenderViewFakeResourcesTest::~RenderViewFakeResourcesTest() {} -void RenderViewFakeResourcesTest::OnMessageReceived( +bool RenderViewFakeResourcesTest::OnMessageReceived( const IPC::Message& message) { IPC_BEGIN_MESSAGE_MAP(RenderViewFakeResourcesTest, message) IPC_MESSAGE_HANDLER(ViewHostMsg_RenderViewReady, OnRenderViewReady) IPC_MESSAGE_HANDLER(ViewHostMsg_DidStopLoading, OnDidStopLoading) IPC_MESSAGE_HANDLER(ViewHostMsg_RequestResource, OnRequestResource) IPC_END_MESSAGE_MAP() + return true; } bool RenderViewFakeResourcesTest::Visit(RenderView* render_view) { diff --git a/chrome/renderer/safe_browsing/render_view_fake_resources_test.h b/chrome/renderer/safe_browsing/render_view_fake_resources_test.h index 953b0cb..a92fb28 100644 --- a/chrome/renderer/safe_browsing/render_view_fake_resources_test.h +++ b/chrome/renderer/safe_browsing/render_view_fake_resources_test.h @@ -71,7 +71,7 @@ class RenderViewFakeResourcesTest : public ::testing::Test, public RenderViewVisitor { public: // IPC::Channel::Listener implementation. - virtual void OnMessageReceived(const IPC::Message& message); + virtual bool OnMessageReceived(const IPC::Message& message); // RenderViewVisitor implementation. virtual bool Visit(RenderView* render_view); diff --git a/chrome/renderer/speech_input_dispatcher.h b/chrome/renderer/speech_input_dispatcher.h index 09133d2..e993226 100644 --- a/chrome/renderer/speech_input_dispatcher.h +++ b/chrome/renderer/speech_input_dispatcher.h @@ -7,7 +7,7 @@ #include "base/basictypes.h" #include "chrome/common/speech_input_result.h" -#include "ipc/ipc_message.h" +#include "ipc/ipc_channel.h" #include "third_party/WebKit/WebKit/chromium/public/WebSpeechInputController.h" class GURL; @@ -21,13 +21,13 @@ struct WebRect; // SpeechInputDispatcher is a delegate for speech input messages used by WebKit. // It's the complement of SpeechInputDispatcherHost (owned by RenderViewHost). -class SpeechInputDispatcher : public WebKit::WebSpeechInputController { +class SpeechInputDispatcher : public WebKit::WebSpeechInputController, + public IPC::Channel::Listener { public: SpeechInputDispatcher(RenderView* render_view, WebKit::WebSpeechInputListener* listener); - // Called to possibly handle the incoming IPC message. Returns true if - // handled. Called in render thread. + // IPC::Channel::Listener implementation. bool OnMessageReceived(const IPC::Message& msg); // WebKit::WebSpeechInputController. diff --git a/chrome/renderer/webplugin_delegate_proxy.cc b/chrome/renderer/webplugin_delegate_proxy.cc index 1b2e7d7..e76977f 100644 --- a/chrome/renderer/webplugin_delegate_proxy.cc +++ b/chrome/renderer/webplugin_delegate_proxy.cc @@ -424,9 +424,10 @@ void WebPluginDelegateProxy::InstallMissingPlugin() { Send(new PluginMsg_InstallMissingPlugin(instance_id_)); } -void WebPluginDelegateProxy::OnMessageReceived(const IPC::Message& msg) { +bool WebPluginDelegateProxy::OnMessageReceived(const IPC::Message& msg) { child_process_logging::SetActiveURL(page_url_); + bool handled = true; IPC_BEGIN_MESSAGE_MAP(WebPluginDelegateProxy, msg) IPC_MESSAGE_HANDLER(PluginHostMsg_SetWindow, OnSetWindow) #if defined(OS_WIN) @@ -478,9 +479,10 @@ void WebPluginDelegateProxy::OnMessageReceived(const IPC::Message& msg) { #endif IPC_MESSAGE_HANDLER(PluginHostMsg_URLRedirectResponse, OnURLRedirectResponse) - - IPC_MESSAGE_UNHANDLED_ERROR() + IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() + DCHECK(handled); + return handled; } void WebPluginDelegateProxy::OnChannelError() { diff --git a/chrome/renderer/webplugin_delegate_proxy.h b/chrome/renderer/webplugin_delegate_proxy.h index 30e212e..49bcc70 100644 --- a/chrome/renderer/webplugin_delegate_proxy.h +++ b/chrome/renderer/webplugin_delegate_proxy.h @@ -95,7 +95,7 @@ class WebPluginDelegateProxy #endif // IPC::Channel::Listener implementation: - virtual void OnMessageReceived(const IPC::Message& msg); + virtual bool OnMessageReceived(const IPC::Message& msg); virtual void OnChannelError(); // IPC::Message::Sender implementation: diff --git a/chrome/renderer/websharedworker_proxy.cc b/chrome/renderer/websharedworker_proxy.cc index 8c79cb8..84043d8 100644 --- a/chrome/renderer/websharedworker_proxy.cc +++ b/chrome/renderer/websharedworker_proxy.cc @@ -67,10 +67,13 @@ void WebSharedWorkerProxy::connect(WebKit::WebMessagePortChannel* channel, } } -void WebSharedWorkerProxy::OnMessageReceived(const IPC::Message& message) { +bool WebSharedWorkerProxy::OnMessageReceived(const IPC::Message& message) { + bool handled = true; IPC_BEGIN_MESSAGE_MAP(WebSharedWorkerProxy, message) IPC_MESSAGE_HANDLER(ViewMsg_WorkerCreated, OnWorkerCreated) + IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() + return handled; } void WebSharedWorkerProxy::OnWorkerCreated() { diff --git a/chrome/renderer/websharedworker_proxy.h b/chrome/renderer/websharedworker_proxy.h index 78b1167..d818264 100644 --- a/chrome/renderer/websharedworker_proxy.h +++ b/chrome/renderer/websharedworker_proxy.h @@ -41,7 +41,7 @@ class WebSharedWorkerProxy : public WebKit::WebSharedWorker, virtual void clientDestroyed(); // IPC::Channel::Listener implementation. - virtual void OnMessageReceived(const IPC::Message& message); + virtual bool OnMessageReceived(const IPC::Message& message); private: void OnWorkerCreated(); diff --git a/chrome/renderer/webworker_proxy.cc b/chrome/renderer/webworker_proxy.cc index abbb51f..3ae1749 100644 --- a/chrome/renderer/webworker_proxy.cc +++ b/chrome/renderer/webworker_proxy.cc @@ -84,10 +84,11 @@ void WebWorkerProxy::workerObjectDestroyed() { void WebWorkerProxy::clientDestroyed() { } -void WebWorkerProxy::OnMessageReceived(const IPC::Message& message) { +bool WebWorkerProxy::OnMessageReceived(const IPC::Message& message) { if (!client_) - return; + return false; + bool handled = true; IPC_BEGIN_MESSAGE_MAP(WebWorkerProxy, message) IPC_MESSAGE_HANDLER(ViewMsg_WorkerCreated, OnWorkerCreated) IPC_MESSAGE_HANDLER(WorkerMsg_PostMessage, OnPostMessage) @@ -105,7 +106,9 @@ void WebWorkerProxy::OnMessageReceived(const IPC::Message& message) { IPC_MESSAGE_FORWARD(WorkerHostMsg_WorkerContextDestroyed, static_cast<WebCommonWorkerClient*>(client_), WebCommonWorkerClient::workerContextDestroyed) + IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() + return handled; } void WebWorkerProxy::OnWorkerCreated() { diff --git a/chrome/renderer/webworker_proxy.h b/chrome/renderer/webworker_proxy.h index 556f3dc..4b51b4f 100644 --- a/chrome/renderer/webworker_proxy.h +++ b/chrome/renderer/webworker_proxy.h @@ -43,7 +43,7 @@ class WebWorkerProxy : public WebKit::WebWorker, private WebWorkerBase { virtual void clientDestroyed(); // IPC::Channel::Listener implementation. - virtual void OnMessageReceived(const IPC::Message& message); + virtual bool OnMessageReceived(const IPC::Message& message); private: void CancelCreation(); |
