Index: content/renderer/render_widget_fullscreen.cc |
diff --git a/content/renderer/render_widget_fullscreen.cc b/content/renderer/render_widget_fullscreen.cc |
index 4c494391427ac6497403dd34a16471994b6184f9..8576a007d83f6d0bfb424219c8f1849563595f42 100644 |
--- a/content/renderer/render_widget_fullscreen.cc |
+++ b/content/renderer/render_widget_fullscreen.cc |
@@ -41,19 +41,28 @@ |
return RenderWidget::CreateWebWidget(this); |
} |
+bool RenderWidgetFullscreen::CreateFullscreenWidget(int32_t opener_id, |
+ int32_t* routing_id) { |
+ RenderThreadImpl::current_render_message_filter()->CreateFullscreenWidget( |
+ opener_id, routing_id); |
+ return true; |
+} |
+ |
bool RenderWidgetFullscreen::Init(int32_t opener_id) { |
DCHECK(!GetWebWidget()); |
- // Synchronous IPC to obtain a routing id for ourselves. |
- int32_t routing_id = MSG_ROUTING_NONE; |
- if (!RenderThreadImpl::current_render_message_filter() |
- ->CreateFullscreenWidget(opener_id, &routing_id)) { |
- return false; |
+ bool success = RenderWidget::DoInit( |
+ opener_id, CreateWebWidget(), |
+ base::Bind(&RenderWidgetFullscreen::CreateFullscreenWidget, |
+ base::Unretained(this), opener_id, &routing_id_)); |
+ |
+ if (success) { |
+ // TODO(fsamuel): This is a bit ugly. The |create_widget_message| should |
+ // probably be factored out of RenderWidget::DoInit. |
+ SetRoutingID(routing_id_); |
+ return true; |
} |
- |
- RenderWidget::InitRoutingID(routing_id); |
- RenderWidget::Init(opener_id, CreateWebWidget()); |
- return true; |
+ return false; |
} |
} // namespace content |