| Index: content/renderer/render_widget.cc
|
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
|
| index 8a771c9ee7bfb6aad650489888624ebfcc58670b..7a8a7974640fb4a535acedc179b4effbf3a03871 100644
|
| --- a/content/renderer/render_widget.cc
|
| +++ b/content/renderer/render_widget.cc
|
| @@ -212,6 +212,9 @@ content::RenderWidgetInputHandlerDelegate* GetRenderWidgetInputHandlerDelegate(
|
| return widget;
|
| }
|
|
|
| +content::RenderWidget::CreateRenderWidgetFunction g_create_render_widget =
|
| + nullptr;
|
| +
|
| } // namespace
|
|
|
| namespace content {
|
| @@ -285,6 +288,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,
|
| @@ -316,8 +326,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
|
|
|