| Index: content/browser/renderer_host/render_process_host_impl.cc
|
| ===================================================================
|
| --- content/browser/renderer_host/render_process_host_impl.cc (revision 270662)
|
| +++ content/browser/renderer_host/render_process_host_impl.cc (working copy)
|
| @@ -38,6 +38,7 @@
|
| #include "cc/base/switches.h"
|
| #include "content/browser/appcache/appcache_dispatcher_host.h"
|
| #include "content/browser/appcache/chrome_appcache_service.h"
|
| +#include "content/browser/browser_child_process_host_impl.h"
|
| #include "content/browser/browser_main.h"
|
| #include "content/browser/browser_main_loop.h"
|
| #include "content/browser/browser_plugin/browser_plugin_message_filter.h"
|
| @@ -1308,8 +1309,7 @@
|
| mark_child_process_activity_time();
|
| if (msg.routing_id() == MSG_ROUTING_CONTROL) {
|
| // Dispatch control messages.
|
| - bool msg_is_ok = true;
|
| - IPC_BEGIN_MESSAGE_MAP_EX(RenderProcessHostImpl, msg, msg_is_ok)
|
| + IPC_BEGIN_MESSAGE_MAP(RenderProcessHostImpl, msg)
|
| IPC_MESSAGE_HANDLER(ChildProcessHostMsg_ShutdownRequest,
|
| OnShutdownRequest)
|
| IPC_MESSAGE_HANDLER(ChildProcessHostMsg_DumpHandlesDone,
|
| @@ -1322,15 +1322,8 @@
|
| // Adding single handlers for your service here is fine, but once your
|
| // service needs more than one handler, please extract them into a new
|
| // message filter and add that filter to CreateMessageFilters().
|
| - IPC_END_MESSAGE_MAP_EX()
|
| + IPC_END_MESSAGE_MAP()
|
|
|
| - if (!msg_is_ok) {
|
| - // The message had a handler, but its de-serialization failed.
|
| - // We consider this a capital crime. Kill the renderer if we have one.
|
| - LOG(ERROR) << "bad message " << msg.type() << " terminating renderer.";
|
| - RecordAction(base::UserMetricsAction("BadMessageTerminate_BRPH"));
|
| - ReceivedBadMessage();
|
| - }
|
| return true;
|
| }
|
|
|
| @@ -1347,11 +1340,10 @@
|
|
|
| // If this is a SwapBuffers, we need to ack it if we're not going to handle
|
| // it so that the GPU process doesn't get stuck in unscheduled state.
|
| - bool msg_is_ok = true;
|
| - IPC_BEGIN_MESSAGE_MAP_EX(RenderProcessHostImpl, msg, msg_is_ok)
|
| + IPC_BEGIN_MESSAGE_MAP(RenderProcessHostImpl, msg)
|
| IPC_MESSAGE_HANDLER(ViewHostMsg_CompositorSurfaceBuffersSwapped,
|
| OnCompositorSurfaceBuffersSwappedNoHost)
|
| - IPC_END_MESSAGE_MAP_EX()
|
| + IPC_END_MESSAGE_MAP()
|
| return true;
|
| }
|
| return listener->OnMessageReceived(msg);
|
| @@ -1372,6 +1364,15 @@
|
| ProcessDied(true /* already_dead */);
|
| }
|
|
|
| +void RenderProcessHostImpl::OnBadMessageReceived(const IPC::Message& message) {
|
| + // Message de-serialization failed. We consider this a capital crime. Kill the
|
| + // renderer if we have one.
|
| + LOG(ERROR) << "bad message " << message.type() << " terminating renderer.";
|
| + BrowserChildProcessHostImpl::HistogramBadMessageTerminated(
|
| + PROCESS_TYPE_RENDERER);
|
| + ReceivedBadMessage();
|
| +}
|
| +
|
| BrowserContext* RenderProcessHostImpl::GetBrowserContext() const {
|
| return browser_context_;
|
| }
|
|
|