Index: content/browser/web_contents/web_contents_view_mac.mm |
diff --git a/content/browser/web_contents/web_contents_view_mac.mm b/content/browser/web_contents/web_contents_view_mac.mm |
index 1d01ac835dbe810121a24de1a4014f1bd4de4307..b2366393bad700944ddbf977d318b1b59455f8e7 100644 |
--- a/content/browser/web_contents/web_contents_view_mac.mm |
+++ b/content/browser/web_contents/web_contents_view_mac.mm |
@@ -80,6 +80,9 @@ STATIC_ASSERT_ENUM(NSDragOperationEvery, blink::WebDragOperationEvery); |
namespace { |
+WebContentsViewMac::RenderWidgetHostViewCreateFunction |
+ g_create_render_widget_host_view = nullptr; |
+ |
content::ScreenInfo GetNSViewScreenInfo(NSView* view) { |
display::Display display = |
display::Screen::GetScreen()->GetDisplayNearestWindow(view); |
@@ -104,6 +107,13 @@ content::ScreenInfo GetNSViewScreenInfo(NSView* view) { |
namespace content { |
// static |
+void WebContentsViewMac::InstallCreateHookForTests( |
+ RenderWidgetHostViewCreateFunction create_render_widget_host_view) { |
+ CHECK_EQ(nullptr, g_create_render_widget_host_view); |
+ g_create_render_widget_host_view = create_render_widget_host_view; |
+} |
+ |
+// static |
void WebContentsView::GetDefaultScreenInfo(ScreenInfo* results) { |
*results = GetNSViewScreenInfo(nil); |
} |
@@ -350,8 +360,11 @@ RenderWidgetHostViewBase* WebContentsViewMac::CreateViewForWidget( |
render_widget_host->GetView()); |
} |
- RenderWidgetHostViewMac* view = new RenderWidgetHostViewMac( |
- render_widget_host, is_guest_view_hack); |
+ RenderWidgetHostViewMac* view = |
+ g_create_render_widget_host_view |
+ ? g_create_render_widget_host_view(render_widget_host, |
+ is_guest_view_hack) |
+ : new RenderWidgetHostViewMac(render_widget_host, is_guest_view_hack); |
if (delegate()) { |
base::scoped_nsobject<NSObject<RenderWidgetHostViewMacDelegate> > |
rw_delegate( |