| 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 #ifndef CONTENT_RENDERER_RENDER_WIDGET_H_ | 5 #ifndef CONTENT_RENDERER_RENDER_WIDGET_H_ |
| 6 #define CONTENT_RENDERER_RENDER_WIDGET_H_ | 6 #define CONTENT_RENDERER_RENDER_WIDGET_H_ |
| 7 | 7 |
| 8 #include <deque> | 8 #include <deque> |
| 9 #include <map> | 9 #include <map> |
| 10 | 10 |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 namespace cc { | 63 namespace cc { |
| 64 class OutputSurface; | 64 class OutputSurface; |
| 65 class SwapPromise; | 65 class SwapPromise; |
| 66 } | 66 } |
| 67 | 67 |
| 68 namespace gfx { | 68 namespace gfx { |
| 69 class Range; | 69 class Range; |
| 70 } | 70 } |
| 71 | 71 |
| 72 namespace content { | 72 namespace content { |
| 73 class CompositorDependencies; |
| 73 class ExternalPopupMenu; | 74 class ExternalPopupMenu; |
| 74 class FrameSwapMessageQueue; | 75 class FrameSwapMessageQueue; |
| 75 class PepperPluginInstanceImpl; | 76 class PepperPluginInstanceImpl; |
| 76 class RenderFrameImpl; | 77 class RenderFrameImpl; |
| 77 class RenderFrameProxy; | 78 class RenderFrameProxy; |
| 78 class RenderWidgetCompositor; | 79 class RenderWidgetCompositor; |
| 79 class RenderWidgetTest; | 80 class RenderWidgetTest; |
| 80 class ResizingModeSelector; | 81 class ResizingModeSelector; |
| 81 struct ContextMenuParams; | 82 struct ContextMenuParams; |
| 82 struct WebPluginGeometry; | 83 struct WebPluginGeometry; |
| 83 | 84 |
| 84 // RenderWidget provides a communication bridge between a WebWidget and | 85 // RenderWidget provides a communication bridge between a WebWidget and |
| 85 // a RenderWidgetHost, the latter of which lives in a different process. | 86 // a RenderWidgetHost, the latter of which lives in a different process. |
| 86 class CONTENT_EXPORT RenderWidget | 87 class CONTENT_EXPORT RenderWidget |
| 87 : public IPC::Listener, | 88 : public IPC::Listener, |
| 88 public IPC::Sender, | 89 public IPC::Sender, |
| 89 NON_EXPORTED_BASE(virtual public blink::WebWidgetClient), | 90 NON_EXPORTED_BASE(virtual public blink::WebWidgetClient), |
| 90 public base::RefCounted<RenderWidget> { | 91 public base::RefCounted<RenderWidget> { |
| 91 public: | 92 public: |
| 92 // Creates a new RenderWidget. The opener_id is the routing ID of the | 93 // Creates a new RenderWidget. The opener_id is the routing ID of the |
| 93 // RenderView that this widget lives inside. | 94 // RenderView that this widget lives inside. |
| 94 static RenderWidget* Create(int32 opener_id, | 95 static RenderWidget* Create(int32 opener_id, |
| 96 CompositorDependencies* compositor_deps, |
| 95 blink::WebPopupType popup_type, | 97 blink::WebPopupType popup_type, |
| 96 const blink::WebScreenInfo& screen_info); | 98 const blink::WebScreenInfo& screen_info); |
| 97 | 99 |
| 98 // Creates a WebWidget based on the popup type. | 100 // Creates a WebWidget based on the popup type. |
| 99 static blink::WebWidget* CreateWebWidget(RenderWidget* render_widget); | 101 static blink::WebWidget* CreateWebWidget(RenderWidget* render_widget); |
| 100 | 102 |
| 101 int32 routing_id() const { return routing_id_; } | 103 int32 routing_id() const { return routing_id_; } |
| 102 int32 surface_id() const { return surface_id_; } | 104 int32 surface_id() const { return surface_id_; } |
| 105 CompositorDependencies* compositor_deps() const { return compositor_deps_; } |
| 103 blink::WebWidget* webwidget() const { return webwidget_; } | 106 blink::WebWidget* webwidget() const { return webwidget_; } |
| 104 gfx::Size size() const { return size_; } | 107 gfx::Size size() const { return size_; } |
| 105 bool has_focus() const { return has_focus_; } | 108 bool has_focus() const { return has_focus_; } |
| 106 bool is_fullscreen() const { return is_fullscreen_; } | 109 bool is_fullscreen() const { return is_fullscreen_; } |
| 107 bool is_hidden() const { return is_hidden_; } | 110 bool is_hidden() const { return is_hidden_; } |
| 108 bool handling_input_event() const { return handling_input_event_; } | 111 bool handling_input_event() const { return handling_input_event_; } |
| 109 // Temporary for debugging purposes... | 112 // Temporary for debugging purposes... |
| 110 bool closing() const { return closing_; } | 113 bool closing() const { return closing_; } |
| 111 bool is_swapped_out() { return is_swapped_out_; } | 114 bool is_swapped_out() { return is_swapped_out_; } |
| 112 ui::MenuSourceType context_menu_source_type() { | 115 ui::MenuSourceType context_menu_source_type() { |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 319 RenderWidget(blink::WebPopupType popup_type, | 322 RenderWidget(blink::WebPopupType popup_type, |
| 320 const blink::WebScreenInfo& screen_info, | 323 const blink::WebScreenInfo& screen_info, |
| 321 bool swapped_out, | 324 bool swapped_out, |
| 322 bool hidden, | 325 bool hidden, |
| 323 bool never_visible); | 326 bool never_visible); |
| 324 | 327 |
| 325 ~RenderWidget() override; | 328 ~RenderWidget() override; |
| 326 | 329 |
| 327 // Initializes this view with the given opener. CompleteInit must be called | 330 // Initializes this view with the given opener. CompleteInit must be called |
| 328 // later. | 331 // later. |
| 329 bool Init(int32 opener_id); | 332 bool Init(int32 opener_id, CompositorDependencies* compositor_deps); |
| 330 | 333 |
| 331 // Called by Init and subclasses to perform initialization. | 334 // Called by Init and subclasses to perform initialization. |
| 332 bool DoInit(int32 opener_id, | 335 bool DoInit(int32 opener_id, |
| 336 CompositorDependencies* compositor_deps, |
| 333 blink::WebWidget* web_widget, | 337 blink::WebWidget* web_widget, |
| 334 IPC::SyncMessage* create_widget_message); | 338 IPC::SyncMessage* create_widget_message); |
| 335 | 339 |
| 336 // Finishes creation of a pending view started with Init. | 340 // Finishes creation of a pending view started with Init. |
| 337 void CompleteInit(); | 341 void CompleteInit(); |
| 338 | 342 |
| 339 // Sets whether this RenderWidget has been swapped out to be displayed by | 343 // Sets whether this RenderWidget has been swapped out to be displayed by |
| 340 // a RenderWidget in a different process. If so, no new IPC messages will be | 344 // a RenderWidget in a different process. If so, no new IPC messages will be |
| 341 // sent (only ACKs) and the process is free to exit when there are no other | 345 // sent (only ACKs) and the process is free to exit when there are no other |
| 342 // active RenderWidgets. | 346 // active RenderWidgets. |
| (...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 548 | 552 |
| 549 // Creates a 3D context associated with this view. | 553 // Creates a 3D context associated with this view. |
| 550 scoped_ptr<WebGraphicsContext3DCommandBufferImpl> CreateGraphicsContext3D(); | 554 scoped_ptr<WebGraphicsContext3DCommandBufferImpl> CreateGraphicsContext3D(); |
| 551 | 555 |
| 552 // Routing ID that allows us to communicate to the parent browser process | 556 // Routing ID that allows us to communicate to the parent browser process |
| 553 // RenderWidgetHost. When MSG_ROUTING_NONE, no messages may be sent. | 557 // RenderWidgetHost. When MSG_ROUTING_NONE, no messages may be sent. |
| 554 int32 routing_id_; | 558 int32 routing_id_; |
| 555 | 559 |
| 556 int32 surface_id_; | 560 int32 surface_id_; |
| 557 | 561 |
| 562 // Dependencies for initializing a compositor, including flags for optional |
| 563 // features. |
| 564 CompositorDependencies* compositor_deps_; |
| 565 |
| 558 // We are responsible for destroying this object via its Close method. | 566 // We are responsible for destroying this object via its Close method. |
| 559 // May be NULL when the window is closing. | 567 // May be NULL when the window is closing. |
| 560 blink::WebWidget* webwidget_; | 568 blink::WebWidget* webwidget_; |
| 561 | 569 |
| 562 // This is lazily constructed and must not outlive webwidget_. | 570 // This is lazily constructed and must not outlive webwidget_. |
| 563 scoped_ptr<RenderWidgetCompositor> compositor_; | 571 scoped_ptr<RenderWidgetCompositor> compositor_; |
| 564 | 572 |
| 565 // Set to the ID of the view that initiated creating this view, if any. When | 573 // Set to the ID of the view that initiated creating this view, if any. When |
| 566 // the view was initiated by the browser (the common case), this will be | 574 // the view was initiated by the browser (the common case), this will be |
| 567 // MSG_ROUTING_NONE. This is used in determining ownership when opening | 575 // MSG_ROUTING_NONE. This is used in determining ownership when opening |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 764 ui::MenuSourceType context_menu_source_type_; | 772 ui::MenuSourceType context_menu_source_type_; |
| 765 bool has_host_context_menu_location_; | 773 bool has_host_context_menu_location_; |
| 766 gfx::Point host_context_menu_location_; | 774 gfx::Point host_context_menu_location_; |
| 767 | 775 |
| 768 DISALLOW_COPY_AND_ASSIGN(RenderWidget); | 776 DISALLOW_COPY_AND_ASSIGN(RenderWidget); |
| 769 }; | 777 }; |
| 770 | 778 |
| 771 } // namespace content | 779 } // namespace content |
| 772 | 780 |
| 773 #endif // CONTENT_RENDERER_RENDER_WIDGET_H_ | 781 #endif // CONTENT_RENDERER_RENDER_WIDGET_H_ |
| OLD | NEW |