Index: content/public/browser/browser_message_filter.cc |
diff --git a/content/public/browser/browser_message_filter.cc b/content/public/browser/browser_message_filter.cc |
index 53c0f872b2abb855511ba80b77d4b9de2ce1d26e..efafece7210c98608325b38ec8a721d0a5f9650d 100644 |
--- a/content/public/browser/browser_message_filter.cc |
+++ b/content/public/browser/browser_message_filter.cc |
@@ -6,11 +6,13 @@ |
#include "base/bind.h" |
#include "base/bind_helpers.h" |
+#include "base/command_line.h" |
#include "base/logging.h" |
#include "base/process/kill.h" |
#include "base/process/process_handle.h" |
#include "base/task_runner.h" |
#include "content/public/browser/user_metrics.h" |
+#include "content/public/common/content_switches.h" |
#include "content/public/common/result_codes.h" |
#include "ipc/ipc_sync_message.h" |
@@ -141,8 +143,12 @@ bool BrowserMessageFilter::CheckCanDispatchOnUI(const IPC::Message& message, |
} |
void BrowserMessageFilter::BadMessageReceived() { |
- base::KillProcess(PeerHandle(), content::RESULT_CODE_KILLED_BAD_MESSAGE, |
- false); |
+ CommandLine* command_line = CommandLine::ForCurrentProcess(); |
+ |
+ if (!command_line->HasSwitch(switches::kDisableKillAfterBadIPC)) { |
+ base::KillProcess(PeerHandle(), content::RESULT_CODE_KILLED_BAD_MESSAGE, |
+ false); |
+ } |
} |
BrowserMessageFilter::~BrowserMessageFilter() { |