Chromium Code Reviews| 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 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <deque> | 9 #include <deque> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 69 // a RenderWidgetHost, the latter of which lives in a different process. | 69 // a RenderWidgetHost, the latter of which lives in a different process. |
| 70 class CONTENT_EXPORT RenderWidget | 70 class CONTENT_EXPORT RenderWidget |
| 71 : public IPC::Channel::Listener, | 71 : public IPC::Channel::Listener, |
| 72 public IPC::Message::Sender, | 72 public IPC::Message::Sender, |
| 73 NON_EXPORTED_BASE(virtual public WebKit::WebWidgetClient), | 73 NON_EXPORTED_BASE(virtual public WebKit::WebWidgetClient), |
| 74 public base::RefCounted<RenderWidget> { | 74 public base::RefCounted<RenderWidget> { |
| 75 public: | 75 public: |
| 76 // Creates a new RenderWidget. The opener_id is the routing ID of the | 76 // Creates a new RenderWidget. The opener_id is the routing ID of the |
| 77 // RenderView that this widget lives inside. | 77 // RenderView that this widget lives inside. |
| 78 static RenderWidget* Create(int32 opener_id, | 78 static RenderWidget* Create(int32 opener_id, |
| 79 WebKit::WebPopupType popup_type); | 79 WebKit::WebPopupType popup_type, |
| 80 const WebKit::WebScreenInfo& screen_info); | |
| 80 | 81 |
| 81 // Creates a WebWidget based on the popup type. | 82 // Creates a WebWidget based on the popup type. |
| 82 static WebKit::WebWidget* CreateWebWidget(RenderWidget* render_widget); | 83 static WebKit::WebWidget* CreateWebWidget(RenderWidget* render_widget); |
| 83 | 84 |
| 84 // The compositing surface assigned by the RenderWidgetHost | 85 // The compositing surface assigned by the RenderWidgetHost |
| 85 // (or RenderViewHost). Will be gfx::kNullPluginWindow if not assigned yet, | 86 // (or RenderViewHost). Will be gfx::kNullPluginWindow if not assigned yet, |
| 86 // in which case we should not create any GPU command buffers with it. | 87 // in which case we should not create any GPU command buffers with it. |
| 87 // The routing ID assigned by the RenderProcess. Will be MSG_ROUTING_NONE if | 88 // The routing ID assigned by the RenderProcess. Will be MSG_ROUTING_NONE if |
| 88 // not yet assigned a view ID, in which case, the process MUST NOT send | 89 // not yet assigned a view ID, in which case, the process MUST NOT send |
| 89 // messages with this ID to the parent. | 90 // messages with this ID to the parent. |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 150 return filtered_time_per_frame_; | 151 return filtered_time_per_frame_; |
| 151 } | 152 } |
| 152 | 153 |
| 153 protected: | 154 protected: |
| 154 // Friend RefCounted so that the dtor can be non-public. Using this class | 155 // Friend RefCounted so that the dtor can be non-public. Using this class |
| 155 // without ref-counting is an error. | 156 // without ref-counting is an error. |
| 156 friend class base::RefCounted<RenderWidget>; | 157 friend class base::RefCounted<RenderWidget>; |
| 157 // For unit tests. | 158 // For unit tests. |
| 158 friend class RenderWidgetTest; | 159 friend class RenderWidgetTest; |
| 159 | 160 |
| 160 explicit RenderWidget(WebKit::WebPopupType popup_type); | 161 explicit RenderWidget(WebKit::WebPopupType popup_type, |
|
jam
2012/02/29 23:41:17
nit: no need for explicit
Fady Samuel
2012/03/01 00:52:25
True, thanks.
| |
| 162 const WebKit::WebScreenInfo& screen_info); | |
| 161 virtual ~RenderWidget(); | 163 virtual ~RenderWidget(); |
| 162 | 164 |
| 163 // Initializes this view with the given opener. CompleteInit must be called | 165 // Initializes this view with the given opener. CompleteInit must be called |
| 164 // later. | 166 // later. |
| 165 void Init(int32 opener_id); | 167 void Init(int32 opener_id); |
| 166 | 168 |
| 167 // Called by Init and subclasses to perform initialization. | 169 // Called by Init and subclasses to perform initialization. |
| 168 void DoInit(int32 opener_id, | 170 void DoInit(int32 opener_id, |
| 169 WebKit::WebWidget* web_widget, | 171 WebKit::WebWidget* web_widget, |
| 170 IPC::SyncMessage* create_widget_message); | 172 IPC::SyncMessage* create_widget_message); |
| (...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 489 // pass state between DoDeferredUpdate and OnSwapBuffersPosted. | 491 // pass state between DoDeferredUpdate and OnSwapBuffersPosted. |
| 490 scoped_ptr<ViewHostMsg_UpdateRect_Params> pending_update_params_; | 492 scoped_ptr<ViewHostMsg_UpdateRect_Params> pending_update_params_; |
| 491 | 493 |
| 492 // Queue of UpdateRect messages corresponding to a SwapBuffers. We want to | 494 // Queue of UpdateRect messages corresponding to a SwapBuffers. We want to |
| 493 // delay sending of UpdateRect until the corresponding SwapBuffers has been | 495 // delay sending of UpdateRect until the corresponding SwapBuffers has been |
| 494 // executed. Since we can have several in flight, we need to keep them in a | 496 // executed. Since we can have several in flight, we need to keep them in a |
| 495 // queue. Note: some SwapBuffers may not correspond to an update, in which | 497 // queue. Note: some SwapBuffers may not correspond to an update, in which |
| 496 // case NULL is added to the queue. | 498 // case NULL is added to the queue. |
| 497 std::deque<ViewHostMsg_UpdateRect*> updates_pending_swap_; | 499 std::deque<ViewHostMsg_UpdateRect*> updates_pending_swap_; |
| 498 | 500 |
| 501 // Properties of the screen hosting this RenderWidget instance. | |
| 502 WebKit::WebScreenInfo screen_info_; | |
| 503 | |
| 499 // Set to true if we should invert all pixels. | 504 // Set to true if we should invert all pixels. |
| 500 bool invert_; | 505 bool invert_; |
| 501 | 506 |
| 502 // The Skia paint object for inverting. | 507 // The Skia paint object for inverting. |
| 503 scoped_ptr<SkPaint> invert_paint_; | 508 scoped_ptr<SkPaint> invert_paint_; |
| 504 | 509 |
| 505 DISALLOW_COPY_AND_ASSIGN(RenderWidget); | 510 DISALLOW_COPY_AND_ASSIGN(RenderWidget); |
| 506 }; | 511 }; |
| 507 | 512 |
| 508 #endif // CONTENT_RENDERER_RENDER_WIDGET_H_ | 513 #endif // CONTENT_RENDERER_RENDER_WIDGET_H_ |
| OLD | NEW |