Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(531)

Unified Diff: chrome/browser/chrome_content_browser_client.cc

Issue 18254010: IPC fuzzer child process component (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove unnecessary include Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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,

Powered by Google App Engine
This is Rietveld 408576698