| Index: content/renderer/render_widget.cc
|
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
|
| index c17cd7eb9af3a64a9427af230af6778ecd066faf..69f95386d1995af340ca2f4aea4627bad24d626f 100644
|
| --- a/content/renderer/render_widget.cc
|
| +++ b/content/renderer/render_widget.cc
|
| @@ -449,6 +449,28 @@ RenderWidget* RenderWidget::Create(int32 opener_id,
|
| }
|
|
|
| // static
|
| +RenderWidget* RenderWidget::CreateForFrame(
|
| + int routing_id,
|
| + bool hidden,
|
| + const blink::WebScreenInfo& screen_info) {
|
| + DCHECK(routing_id != MSG_ROUTING_NONE);
|
| + scoped_refptr<RenderWidget> widget(
|
| + new RenderWidget(blink::WebPopupTypeNone,
|
| + screen_info,
|
| + false,
|
| + hidden,
|
| + false));
|
| + widget->routing_id_ = routing_id;
|
| + //TODO(kenrb): Change CreateWebWidget to CreateWebFrameWidget before landing!
|
| + if (widget->DoInit(MSG_ROUTING_NONE,
|
| + RenderWidget::CreateWebWidget(widget.get()),
|
| + nullptr)) {
|
| + return widget.get();
|
| + }
|
| + return NULL;
|
| +}
|
| +
|
| +// static
|
| WebWidget* RenderWidget::CreateWebWidget(RenderWidget* render_widget) {
|
| switch (render_widget->popup_type_) {
|
| case blink::WebPopupTypeNone: // Nothing to create.
|
| @@ -481,7 +503,10 @@ bool RenderWidget::DoInit(int32 opener_id,
|
|
|
| webwidget_ = web_widget;
|
|
|
| - bool result = RenderThread::Get()->Send(create_widget_message);
|
| + bool result = true;
|
| + if (create_widget_message)
|
| + result = RenderThread::Get()->Send(create_widget_message);
|
| +
|
| if (result) {
|
| RenderThread::Get()->AddRoute(routing_id_, this);
|
| // Take a reference on behalf of the RenderThread. This will be balanced
|
|
|