Chromium Code Reviews| Index: content/test/content_layouttest_support.cc |
| diff --git a/content/test/content_layouttest_support.cc b/content/test/content_layouttest_support.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..93ece7b8b50d1b733cdfa3367fa86209726c7ffe |
| --- /dev/null |
| +++ b/content/test/content_layouttest_support.cc |
| @@ -0,0 +1,40 @@ |
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "content/public/test/content_layouttest_support.h" |
| + |
| +#include "base/callback.h" |
| +#include "base/lazy_instance.h" |
| +#include "content/renderer/render_view_impl.h" |
| +#include "third_party/WebKit/Tools/DumpRenderTree/chromium/TestRunner/public/WebTestProxy.h" |
| + |
| +using WebTestRunner::WebTestProxy; |
| +using WebTestRunner::WebTestProxyBase; |
| + |
| +namespace content { |
| + |
| +namespace { |
| + |
| +base::LazyInstance<base::Callback<void(WebTestProxyBase*)> >::Leaky g_callback; |
| + |
| +RenderViewImpl* CreateWebTestProxy(RenderViewImplParams* params) { |
| + typedef WebTestProxy<RenderViewImpl, RenderViewImplParams*> ProxyType; |
| + ProxyType* render_view_proxy = new ProxyType( |
| + reinterpret_cast<RenderViewImplParams*>(params)); |
|
jam
2012/11/08 20:37:06
nit: no cast needed
|
| + if (g_callback == 0) |
| + return render_view_proxy; |
| + g_callback.Get().Run(static_cast<WebTestProxyBase*>(render_view_proxy)); |
| + return render_view_proxy; |
| +} |
| + |
| +} // namespace |
| + |
| + |
| +void EnableWebTestProxyCreation( |
| + const base::Callback<void(WebTestProxyBase*)>& callback) { |
| + g_callback.Get() = callback; |
| + RenderViewImpl::InstallCreateHook(CreateWebTestProxy); |
| +} |
| + |
| +} // namespace content |