| Index: content/renderer/render_widget.cc
|
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
|
| index c9e985fad75c4b9c652c2f98d429a97ecca5f54f..e198f4b8da256c9cad71a7a018b8b091515995df 100644
|
| --- a/content/renderer/render_widget.cc
|
| +++ b/content/renderer/render_widget.cc
|
| @@ -212,6 +212,12 @@ content::RenderWidgetInputHandlerDelegate* GetRenderWidgetInputHandlerDelegate(
|
| return widget;
|
| }
|
|
|
| +content::RenderWidget::CreateRenderWidgetFunction g_create_render_widget =
|
| + nullptr;
|
| +
|
| +content::RenderWidget::RenderWidgetInitializedCallback
|
| + g_render_widget_initialized = nullptr;
|
| +
|
| } // namespace
|
|
|
| namespace content {
|
| @@ -287,6 +293,15 @@ RenderWidget::~RenderWidget() {
|
| }
|
|
|
| // static
|
| +void RenderWidget::InstallCreateHook(
|
| + CreateRenderWidgetFunction create_render_widget,
|
| + RenderWidgetInitializedCallback render_widget_initialized) {
|
| + CHECK(!g_create_render_widget && !g_render_widget_initialized);
|
| + g_create_render_widget = create_render_widget;
|
| + g_render_widget_initialized = render_widget_initialized;
|
| +}
|
| +
|
| +// static
|
| RenderWidget* RenderWidget::Create(int32_t opener_id,
|
| CompositorDependencies* compositor_deps,
|
| blink::WebPopupType popup_type,
|
| @@ -318,8 +333,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
|
| @@ -327,6 +345,8 @@ RenderWidget* RenderWidget::CreateForFrame(
|
| if (widget->DoInit(MSG_ROUTING_NONE,
|
| RenderWidget::CreateWebFrameWidget(widget.get(), frame),
|
| nullptr)) {
|
| + if (g_render_widget_initialized)
|
| + g_render_widget_initialized(widget.get());
|
| return widget.get();
|
| }
|
| return nullptr;
|
|
|