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

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: missed some files 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..b2d723bd4f2863eb0f6e441f423bfc613b102b2b 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -99,6 +99,7 @@
#include "chrome/common/extensions/manifest_handlers/shared_module_info.h"
#include "chrome/common/extensions/permissions/permissions_data.h"
#include "chrome/common/extensions/permissions/socket_permission.h"
+#include "chrome/common/ipc_fuzzer_messages.h"
Tom Sepez 2013/07/12 18:47:20 #if defined(EABLE_IPC_FUZZER) and move down lower.
aedla 2013/07/15 16:12:08 Oh, the include wasn't necessary actually.
#include "chrome/common/logging_chrome.h"
#include "chrome/common/pepper_permission_util.h"
#include "chrome/common/pref_names.h"
@@ -202,6 +203,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 +831,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 +1305,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 +2346,16 @@ void ChromeContentBrowserClient::GetAdditionalFileSystemBackends(
#endif
}
+bool ChromeContentBrowserClient::ShouldKillChildOnBadMessage() {
+#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