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

Unified Diff: content/shell/shell_content_renderer_client.cc

Issue 11362161: Use the WebTestProxy for layout tests in content_shell (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: version that doesn't expose RenderViewImpl in public API Created 8 years, 1 month 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: 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

Powered by Google App Engine
This is Rietveld 408576698