| Index: content/renderer/render_widget.cc
|
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
|
| index e3382c9f10bb524229de2f33378552e331dbe04a..63b271f4d196f5efd55884d141b06785e99bad3a 100644
|
| --- a/content/renderer/render_widget.cc
|
| +++ b/content/renderer/render_widget.cc
|
| @@ -213,6 +213,9 @@ content::RenderWidgetInputHandlerDelegate* GetRenderWidgetInputHandlerDelegate(
|
| return widget;
|
| }
|
|
|
| +content::RenderWidget::CreateRenderWidgetFunction g_create_render_widget =
|
| + nullptr;
|
| +
|
| } // namespace
|
|
|
| namespace content {
|
| @@ -288,6 +291,13 @@ RenderWidget::~RenderWidget() {
|
| }
|
|
|
| // static
|
| +void RenderWidget::InstallCreateHook(
|
| + CreateRenderWidgetFunction create_render_widget) {
|
| + CHECK(!g_create_render_widget);
|
| + g_create_render_widget = create_render_widget;
|
| +}
|
| +
|
| +// static
|
| RenderWidget* RenderWidget::Create(int32_t opener_id,
|
| CompositorDependencies* compositor_deps,
|
| blink::WebPopupType popup_type,
|
| @@ -319,8 +329,11 @@ RenderWidget* RenderWidget::CreateForFrame(
|
| return view->GetWidget();
|
| }
|
| scoped_refptr<RenderWidget> widget(
|
| - new RenderWidget(compositor_deps, blink::WebPopupTypeNone, screen_info,
|
| - false, hidden, false));
|
| + g_create_render_widget
|
| + ? g_create_render_widget(compositor_deps, blink::WebPopupTypeNone,
|
| + screen_info, false, hidden, false)
|
| + : new RenderWidget(compositor_deps, blink::WebPopupTypeNone,
|
| + screen_info, false, hidden, false));
|
| widget->SetRoutingID(routing_id);
|
| widget->for_oopif_ = true;
|
| // DoInit increments the reference count on |widget|, keeping it alive after
|
|
|