| Index: content/renderer/render_widget.cc
|
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
|
| index 928d1df4803aafcee6e45846b5d6c30e449ecb42..4e89eb4a020cfd56b7ebb7bc100247a14efdd0d9 100644
|
| --- a/content/renderer/render_widget.cc
|
| +++ b/content/renderer/render_widget.cc
|
| @@ -213,6 +213,12 @@ content::RenderWidgetInputHandlerDelegate* GetRenderWidgetInputHandlerDelegate(
|
| return widget;
|
| }
|
|
|
| +content::RenderWidget::CreateRenderWidgetFunction g_create_render_widget =
|
| + nullptr;
|
| +
|
| +content::RenderWidget::RenderWidgetCreatedCallback g_render_widget_created =
|
| + nullptr;
|
| +
|
| } // namespace
|
|
|
| namespace content {
|
| @@ -288,6 +294,15 @@ RenderWidget::~RenderWidget() {
|
| }
|
|
|
| // static
|
| +void RenderWidget::InstallCreateHook(
|
| + CreateRenderWidgetFunction create_render_widget,
|
| + RenderWidgetCreatedCallback render_widget_created) {
|
| + CHECK(!g_create_render_widget && !g_render_widget_created);
|
| + g_create_render_widget = create_render_widget;
|
| + g_render_widget_created = render_widget_created;
|
| +}
|
| +
|
| +// static
|
| RenderWidget* RenderWidget::Create(int32_t opener_id,
|
| CompositorDependencies* compositor_deps,
|
| blink::WebPopupType popup_type,
|
| @@ -319,8 +334,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
|
| @@ -328,6 +346,8 @@ RenderWidget* RenderWidget::CreateForFrame(
|
| if (widget->DoInit(MSG_ROUTING_NONE,
|
| RenderWidget::CreateWebFrameWidget(widget.get(), frame),
|
| nullptr)) {
|
| + if (g_render_widget_created)
|
| + g_render_widget_created(widget.get());
|
| return widget.get();
|
| }
|
| return nullptr;
|
|
|