OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/render_widget_fullscreen.h" | 5 #include "content/renderer/render_widget_fullscreen.h" |
6 | 6 |
7 #include "content/common/view_messages.h" | 7 #include "content/common/view_messages.h" |
8 #include "content/renderer/render_thread_impl.h" | 8 #include "content/renderer/render_thread_impl.h" |
9 #include "third_party/WebKit/public/web/WebWidget.h" | 9 #include "third_party/WebKit/public/web/WebWidget.h" |
10 | 10 |
11 using blink::WebWidget; | 11 using blink::WebWidget; |
12 | 12 |
13 namespace content { | 13 namespace content { |
14 | 14 |
15 void RenderWidgetFullscreen::show(blink::WebNavigationPolicy) { | 15 void RenderWidgetFullscreen::show(blink::WebNavigationPolicy) { |
16 DCHECK(!did_show_) << "received extraneous Show call"; | 16 DCHECK(!did_show_) << "received extraneous Show call"; |
17 DCHECK_NE(MSG_ROUTING_NONE, routing_id()); | 17 DCHECK_NE(MSG_ROUTING_NONE, routing_id()); |
18 DCHECK_NE(MSG_ROUTING_NONE, opener_id_); | 18 DCHECK_NE(MSG_ROUTING_NONE, opener_id_); |
19 | 19 |
20 if (!did_show_) { | 20 if (!did_show_) { |
21 did_show_ = true; | 21 did_show_ = true; |
22 Send(new ViewHostMsg_ShowFullscreenWidget(opener_id_, routing_id())); | 22 Send(new ViewHostMsg_ShowFullscreenWidget(opener_id_, routing_id())); |
23 SetPendingWindowRect(initial_rect_); | 23 SetPendingWindowRect(initial_rect_); |
24 } | 24 } |
25 } | 25 } |
26 | 26 |
27 RenderWidgetFullscreen::RenderWidgetFullscreen( | 27 RenderWidgetFullscreen::RenderWidgetFullscreen( |
| 28 int32_t widget_routing_id, |
28 CompositorDependencies* compositor_deps, | 29 CompositorDependencies* compositor_deps, |
29 const ScreenInfo& screen_info) | 30 const ScreenInfo& screen_info) |
30 : RenderWidget(compositor_deps, | 31 : RenderWidget(widget_routing_id, |
| 32 compositor_deps, |
31 blink::WebPopupTypeNone, | 33 blink::WebPopupTypeNone, |
32 screen_info, | 34 screen_info, |
33 false, | 35 false, |
34 false, | 36 false, |
35 false) {} | 37 false) {} |
36 | 38 |
37 RenderWidgetFullscreen::~RenderWidgetFullscreen() {} | 39 RenderWidgetFullscreen::~RenderWidgetFullscreen() {} |
38 | 40 |
39 WebWidget* RenderWidgetFullscreen::CreateWebWidget() { | 41 WebWidget* RenderWidgetFullscreen::CreateWebWidget() { |
40 // TODO(boliu): Handle full screen render widgets here. | 42 // TODO(boliu): Handle full screen render widgets here. |
41 return RenderWidget::CreateWebWidget(this); | 43 return RenderWidget::CreateWebWidget(this); |
42 } | 44 } |
43 | 45 |
44 bool RenderWidgetFullscreen::Init(int32_t opener_id) { | 46 bool RenderWidgetFullscreen::Init(int32_t opener_id) { |
45 DCHECK(!GetWebWidget()); | 47 DCHECK(!GetWebWidget()); |
46 | 48 |
47 // Synchronous IPC to obtain a routing id for ourselves. | |
48 int32_t routing_id = MSG_ROUTING_NONE; | |
49 if (!RenderThreadImpl::current_render_message_filter() | |
50 ->CreateFullscreenWidget(opener_id, &routing_id)) { | |
51 return false; | |
52 } | |
53 | |
54 RenderWidget::InitRoutingID(routing_id); | |
55 RenderWidget::Init(opener_id, CreateWebWidget()); | 49 RenderWidget::Init(opener_id, CreateWebWidget()); |
56 return true; | 50 return true; |
57 } | 51 } |
58 | 52 |
59 } // namespace content | 53 } // namespace content |
OLD | NEW |