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

Unified Diff: content/test/layouttest_support.cc

Issue 2238573002: Add WebWidgetTestProxy. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add missing files Created 4 years, 4 months 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/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);
}

Powered by Google App Engine
This is Rietveld 408576698