Index: content/test/content_browser_test.cc |
diff --git a/content/test/content_browser_test.cc b/content/test/content_browser_test.cc |
index a1644503a4f373c280f185a5802c8dcf76f6b9dc..38816138463f02dcfd71fa0dcf5ee7919112c17e 100644 |
--- a/content/test/content_browser_test.cc |
+++ b/content/test/content_browser_test.cc |
@@ -55,8 +55,6 @@ ContentBrowserTest::~ContentBrowserTest() { |
} |
void ContentBrowserTest::SetUp() { |
- setup_called_ = true; |
- |
shell_main_delegate_.reset(new ShellMainDelegate); |
shell_main_delegate_->PreSandboxStartup(); |
@@ -65,11 +63,16 @@ void ContentBrowserTest::SetUp() { |
SetUpCommandLine(command_line); |
- // Single-process mode is not set in BrowserMain, so process it explicitly, |
- // and set up renderer. |
+ // Single-process mode is not set in BrowserMain, so if a subclass hasn't |
+ // modified it yet, process it explicitly, and set up renderer. |
if (command_line->HasSwitch(switches::kSingleProcess)) { |
- single_process_renderer_client_.reset(new ShellContentRendererClient); |
+ if (!single_process_renderer_client_) |
+ single_process_renderer_client_.reset(new ShellContentRendererClient()); |
SetRendererClientForTesting(single_process_renderer_client_.get()); |
+ } else { |
+ // Confirm no test has called SetContentRendererClient() without |
+ // setting up single process mode. |
+ DCHECK(!single_process_renderer_client_); |
} |
#if defined(OS_MACOSX) |
@@ -89,6 +92,8 @@ void ContentBrowserTest::SetUp() { |
ui::InitializeInputMethodForTesting(); |
#endif |
+ setup_called_ = true; |
+ |
BrowserTestBase::SetUp(); |
} |
@@ -144,6 +149,14 @@ void ContentBrowserTest::RunTestOnMainThreadLoop() { |
Shell::CloseAllWindows(); |
} |
+void ContentBrowserTest::SetContentRendererClient( |
+ scoped_ptr<ContentRendererClient> renderer_client) { |
+ // This routine must be called before SetUp(). |
+ DCHECK(!setup_called_); |
+ DCHECK(!single_process_renderer_client_); |
+ single_process_renderer_client_ = renderer_client.Pass(); |
+} |
+ |
Shell* ContentBrowserTest::CreateBrowser() { |
return Shell::CreateNewWindow( |
ShellContentBrowserClient::Get()->browser_context(), |