| Index: content/test/layouttest_support.cc
|
| diff --git a/content/test/layouttest_support.cc b/content/test/layouttest_support.cc
|
| index 01d7e40887e2b5ac50b951ff9636b6d7d3c497cd..f0fe2113f28f1e8645a3d9d3e6fda390c1d7c01f 100644
|
| --- a/content/test/layouttest_support.cc
|
| +++ b/content/test/layouttest_support.cc
|
| @@ -18,6 +18,7 @@
|
| #include "components/test_runner/test_common.h"
|
| #include "components/test_runner/web_frame_test_proxy.h"
|
| #include "components/test_runner/web_view_test_proxy.h"
|
| +#include "components/test_runner/web_widget_test_proxy.h"
|
| #include "content/browser/bluetooth/bluetooth_device_chooser_controller.h"
|
| #include "content/browser/renderer_host/render_process_host_impl.h"
|
| #include "content/browser/renderer_host/render_widget_host_impl.h"
|
| @@ -33,6 +34,7 @@
|
| #include "content/renderer/render_frame_impl.h"
|
| #include "content/renderer/render_thread_impl.h"
|
| #include "content/renderer/render_view_impl.h"
|
| +#include "content/renderer/render_widget.h"
|
| #include "content/renderer/renderer_blink_platform_impl.h"
|
| #include "content/shell/common/shell_switches.h"
|
| #include "gpu/ipc/service/image_transport_surface.h"
|
| @@ -68,6 +70,9 @@ namespace {
|
| base::LazyInstance<ViewProxyCreationCallback>::Leaky
|
| g_view_test_proxy_callback = LAZY_INSTANCE_INITIALIZER;
|
|
|
| +base::LazyInstance<WidgetProxyCreationCallback>::Leaky
|
| + g_widget_test_proxy_callback = LAZY_INSTANCE_INITIALIZER;
|
| +
|
| base::LazyInstance<FrameProxyCreationCallback>::Leaky
|
| g_frame_test_proxy_callback = LAZY_INSTANCE_INITIALIZER;
|
|
|
| @@ -75,6 +80,14 @@ using WebViewTestProxyType =
|
| test_runner::WebViewTestProxy<RenderViewImpl,
|
| CompositorDependencies*,
|
| const ViewMsg_New_Params&>;
|
| +using WebWidgetTestProxyType =
|
| + test_runner::WebWidgetTestProxy<RenderWidget,
|
| + CompositorDependencies*,
|
| + blink::WebPopupType,
|
| + const blink::WebScreenInfo&,
|
| + bool,
|
| + bool,
|
| + bool>;
|
| using WebFrameTestProxyType =
|
| test_runner::WebFrameTestProxy<RenderFrameImpl,
|
| const RenderFrameImpl::CreateParams&>;
|
| @@ -89,6 +102,27 @@ RenderViewImpl* CreateWebViewTestProxy(CompositorDependencies* compositor_deps,
|
| return render_view_proxy;
|
| }
|
|
|
| +RenderWidget* CreateWebWidgetTestProxy(CompositorDependencies* compositor_deps,
|
| + blink::WebPopupType popup_type,
|
| + const blink::WebScreenInfo& screen_info,
|
| + bool swapped_out,
|
| + bool hidden,
|
| + bool never_visible) {
|
| + WebWidgetTestProxyType* render_widget_proxy =
|
| + new WebWidgetTestProxyType(compositor_deps, popup_type, screen_info,
|
| + swapped_out, hidden, never_visible);
|
| + return render_widget_proxy;
|
| +}
|
| +
|
| +void RenderWidgetInitialized(RenderWidget* render_widget) {
|
| + WebWidgetTestProxyType* render_widget_proxy =
|
| + static_cast<WebWidgetTestProxyType*>(render_widget);
|
| + if (!g_widget_test_proxy_callback.Get().is_null()) {
|
| + g_widget_test_proxy_callback.Get().Run(render_widget->webwidget(),
|
| + render_widget_proxy);
|
| + }
|
| +}
|
| +
|
| RenderFrameImpl* CreateWebFrameTestProxy(
|
| const RenderFrameImpl::CreateParams& params) {
|
| WebFrameTestProxyType* render_frame_proxy = new WebFrameTestProxyType(params);
|
| @@ -130,10 +164,14 @@ test_runner::WebFrameTestProxyBase* GetWebFrameTestProxyBase(
|
|
|
| void EnableWebTestProxyCreation(
|
| const ViewProxyCreationCallback& view_proxy_creation_callback,
|
| + const WidgetProxyCreationCallback& widget_proxy_creation_callback,
|
| const FrameProxyCreationCallback& frame_proxy_creation_callback) {
|
| g_view_test_proxy_callback.Get() = view_proxy_creation_callback;
|
| + g_widget_test_proxy_callback.Get() = widget_proxy_creation_callback;
|
| g_frame_test_proxy_callback.Get() = frame_proxy_creation_callback;
|
| RenderViewImpl::InstallCreateHook(CreateWebViewTestProxy);
|
| + RenderWidget::InstallCreateHook(CreateWebWidgetTestProxy,
|
| + RenderWidgetInitialized);
|
| RenderFrameImpl::InstallCreateHook(CreateWebFrameTestProxy);
|
| }
|
|
|
|
|