Index: chrome/browser/chrome_content_browser_client.cc |
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc |
index 5abfa6ce2538a5c407410ced9a78e5d16d08ead3..23e2d63e68dff5011257e711ee53e7b44ea48712 100644 |
--- a/chrome/browser/chrome_content_browser_client.cc |
+++ b/chrome/browser/chrome_content_browser_client.cc |
@@ -202,6 +202,10 @@ |
#include "chrome/browser/chromeos/extensions/file_manager/file_manager_util.h" |
#endif |
+#if defined(ENABLE_IPC_FUZZER) |
+#include "chrome/browser/ipc_fuzzer_host.h" |
+#endif |
+ |
using base::FileDescriptor; |
using content::AccessTokenStore; |
using content::BrowserChildProcessHostIterator; |
@@ -826,6 +830,10 @@ void ChromeContentBrowserClient::RenderProcessHostCreated( |
SendExtensionWebRequestStatusToHost(host); |
+#if defined(ENABLE_IPC_FUZZER) |
+ SendTestcaseToIpcFuzzer(host); |
+#endif |
+ |
RendererContentSettingRules rules; |
GetRendererContentSettingRules(profile->GetHostContentSettingsMap(), &rules); |
host->Send(new ChromeViewMsg_SetContentSettingRules(rules)); |
@@ -1296,6 +1304,12 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( |
browser_command_line.GetSwitchValuePath(switches::kUserDataDir); |
if (!user_data_dir.empty()) |
command_line->AppendSwitchPath(switches::kUserDataDir, user_data_dir); |
+ |
+#if defined(ENABLE_IPC_FUZZER) |
+ if (browser_command_line.HasSwitch(switches::kIpcFuzzerTestcase)) |
+ command_line->AppendSwitch(switches::kIpcFuzzerOverride); |
+#endif |
+ |
#if defined(OS_CHROMEOS) |
const std::string& login_profile = |
browser_command_line.GetSwitchValueASCII( |
@@ -2331,6 +2345,16 @@ void ChromeContentBrowserClient::GetAdditionalFileSystemBackends( |
#endif |
} |
+bool ChromeContentBrowserClient::ShouldKillChildProcessOnBadMessage() { |
+#if defined(ENABLE_IPC_FUZZER) |
+ // Don't kill the IPC fuzzer process, if it sends a bad message. |
+ if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kIpcFuzzerTestcase)) |
+ return false; |
+#endif |
+ |
+ return true; |
+} |
+ |
#if defined(OS_POSIX) && !defined(OS_MACOSX) |
void ChromeContentBrowserClient::GetAdditionalMappedFilesForChildProcess( |
const CommandLine& command_line, |