Chromium Code Reviews| Index: content/shell/shell_content_renderer_client.cc |
| diff --git a/content/shell/shell_content_renderer_client.cc b/content/shell/shell_content_renderer_client.cc |
| index a17fbe024de3498c9d53924cc42cbadc0009d203..f87d4876d761758d12246f53e3fdf48f87069c3e 100644 |
| --- a/content/shell/shell_content_renderer_client.cc |
| +++ b/content/shell/shell_content_renderer_client.cc |
| @@ -4,19 +4,30 @@ |
| #include "content/shell/shell_content_renderer_client.h" |
| +#include "base/callback.h" |
| #include "base/command_line.h" |
| #include "content/public/common/content_constants.h" |
| #include "content/public/common/content_switches.h" |
| +#include "content/public/test/content_layouttest_support.h" |
| #include "content/shell/shell_render_process_observer.h" |
| #include "content/shell/shell_switches.h" |
| #include "content/shell/webkit_test_runner.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebPluginParams.h" |
| +#include "third_party/WebKit/Tools/DumpRenderTree/chromium/TestRunner/public/WebTestProxy.h" |
| #include "v8/include/v8.h" |
| +using WebTestRunner::WebTestProxyBase; |
| + |
| namespace content { |
| -ShellContentRendererClient::ShellContentRendererClient() { |
| +ShellContentRendererClient::ShellContentRendererClient() |
| + : latest_test_runner_(NULL) { |
|
jam
2012/11/08 20:37:06
nit: tabbing
|
| + if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDumpRenderTree)) { |
| + EnableWebTestProxyCreation( |
| + base::Bind(&ShellContentRendererClient::WebTestProxyCreated, |
| + base::Unretained(this))); |
| + } |
| } |
| ShellContentRendererClient::~ShellContentRendererClient() { |
| @@ -30,7 +41,8 @@ void ShellContentRendererClient::RenderViewCreated(RenderView* render_view) { |
| if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kDumpRenderTree)) |
| return; |
| - new WebKitTestRunner(render_view); |
| + CHECK(!latest_test_runner_); |
| + latest_test_runner_ = new WebKitTestRunner(render_view); |
| } |
| bool ShellContentRendererClient::OverrideCreatePlugin( |
| @@ -48,4 +60,12 @@ bool ShellContentRendererClient::OverrideCreatePlugin( |
| return false; |
| } |
| +void ShellContentRendererClient::WebTestProxyCreated(WebTestProxyBase* proxy) { |
| + CHECK(latest_test_runner_); |
| + proxy->setDelegate(latest_test_runner_); |
| + latest_test_runner_ = NULL; |
| + proxy->setInterfaces( |
| + ShellRenderProcessObserver::GetInstance()->test_interfaces()); |
| +} |
| + |
| } // namespace content |