Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(210)

Side by Side Diff: chrome/renderer/render_widget.h

Issue 3055009: Use RenderWidget(Host) for full screen (Closed)
Patch Set: Add IPC::SyncMessage dependency. Fix auto complete. Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/renderer/render_view.cc ('k') | chrome/renderer/render_widget.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 CHROME_RENDERER_RENDER_WIDGET_H_ 5 #ifndef CHROME_RENDERER_RENDER_WIDGET_H_
6 #define CHROME_RENDERER_RENDER_WIDGET_H_ 6 #define CHROME_RENDERER_RENDER_WIDGET_H_
7 #pragma once 7 #pragma once
8 8
9 #include <vector> 9 #include <vector>
10 10
(...skipping 15 matching lines...) Expand all
26 #include "third_party/skia/include/core/SkBitmap.h" 26 #include "third_party/skia/include/core/SkBitmap.h"
27 #include "webkit/glue/webcursor.h" 27 #include "webkit/glue/webcursor.h"
28 28
29 class RenderThreadBase; 29 class RenderThreadBase;
30 struct ViewHostMsg_ShowPopup_Params; 30 struct ViewHostMsg_ShowPopup_Params;
31 31
32 namespace gfx { 32 namespace gfx {
33 class Point; 33 class Point;
34 } 34 }
35 35
36 namespace IPC {
37 class SyncMessage;
38 }
39
36 namespace skia { 40 namespace skia {
37 class PlatformCanvas; 41 class PlatformCanvas;
38 } 42 }
39 43
40 namespace WebKit { 44 namespace WebKit {
45 class WebWidget;
41 struct WebPopupMenuInfo; 46 struct WebPopupMenuInfo;
42 } 47 }
43 48
44 namespace webkit_glue { 49 namespace webkit_glue {
45 struct WebPluginGeometry; 50 struct WebPluginGeometry;
46 } 51 }
47 52
48 // RenderWidget provides a communication bridge between a WebWidget and 53 // RenderWidget provides a communication bridge between a WebWidget and
49 // a RenderWidgetHost, the latter of which lives in a different process. 54 // a RenderWidgetHost, the latter of which lives in a different process.
50 class RenderWidget : public IPC::Channel::Listener, 55 class RenderWidget : public IPC::Channel::Listener,
51 public IPC::Message::Sender, 56 public IPC::Message::Sender,
52 virtual public WebKit::WebWidgetClient, 57 virtual public WebKit::WebWidgetClient,
53 public base::RefCounted<RenderWidget> { 58 public base::RefCounted<RenderWidget> {
54 public: 59 public:
55 // Creates a new RenderWidget. The opener_id is the routing ID of the 60 // Creates a new RenderWidget. The opener_id is the routing ID of the
56 // RenderView that this widget lives inside. The render_thread is any 61 // RenderView that this widget lives inside. The render_thread is any
57 // RenderThreadBase implementation, mostly commonly RenderThread::current(). 62 // RenderThreadBase implementation, mostly commonly RenderThread::current().
58 static RenderWidget* Create(int32 opener_id, 63 static RenderWidget* Create(int32 opener_id,
59 RenderThreadBase* render_thread, 64 RenderThreadBase* render_thread,
60 WebKit::WebPopupType popup_type); 65 WebKit::WebPopupType popup_type);
61 66
67 // Creates a WebWidget based on the popup type.
68 static WebKit::WebWidget* CreateWebWidget(RenderWidget* render_widget);
69
62 // Called after Create to configure a RenderWidget to be rendered by the host 70 // Called after Create to configure a RenderWidget to be rendered by the host
63 // as a popup menu with the given data. 71 // as a popup menu with the given data.
64 void ConfigureAsExternalPopupMenu(const WebKit::WebPopupMenuInfo& info); 72 void ConfigureAsExternalPopupMenu(const WebKit::WebPopupMenuInfo& info);
65 73
66 // The routing ID assigned by the RenderProcess. Will be MSG_ROUTING_NONE if 74 // The routing ID assigned by the RenderProcess. Will be MSG_ROUTING_NONE if
67 // not yet assigned a view ID, in which case, the process MUST NOT send 75 // not yet assigned a view ID, in which case, the process MUST NOT send
68 // messages with this ID to the parent. 76 // messages with this ID to the parent.
69 int32 routing_id() const { 77 int32 routing_id() const {
70 return routing_id_; 78 return routing_id_;
71 } 79 }
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 friend class base::RefCounted<RenderWidget>; 129 friend class base::RefCounted<RenderWidget>;
122 130
123 RenderWidget(RenderThreadBase* render_thread, 131 RenderWidget(RenderThreadBase* render_thread,
124 WebKit::WebPopupType popup_type); 132 WebKit::WebPopupType popup_type);
125 virtual ~RenderWidget(); 133 virtual ~RenderWidget();
126 134
127 // Initializes this view with the given opener. CompleteInit must be called 135 // Initializes this view with the given opener. CompleteInit must be called
128 // later. 136 // later.
129 void Init(int32 opener_id); 137 void Init(int32 opener_id);
130 138
139 // Called by Init and subclasses to perform initialization.
140 void DoInit(int32 opener_id,
141 WebKit::WebWidget* web_widget,
142 IPC::SyncMessage* create_widget_message);
143
131 // Finishes creation of a pending view started with Init. 144 // Finishes creation of a pending view started with Init.
132 void CompleteInit(gfx::NativeViewId parent); 145 void CompleteInit(gfx::NativeViewId parent);
133 146
134 // Paints the given rectangular region of the WebWidget into canvas (a 147 // Paints the given rectangular region of the WebWidget into canvas (a
135 // shared memory segment returned by AllocPaintBuf on Windows). The caller 148 // shared memory segment returned by AllocPaintBuf on Windows). The caller
136 // must ensure that the given rect fits within the bounds of the WebWidget. 149 // must ensure that the given rect fits within the bounds of the WebWidget.
137 void PaintRect(const gfx::Rect& rect, const gfx::Point& canvas_origin, 150 void PaintRect(const gfx::Rect& rect, const gfx::Point& canvas_origin,
138 skia::PlatformCanvas* canvas); 151 skia::PlatformCanvas* canvas);
139 152
140 // Paints a border at the given rect for debugging purposes. 153 // Paints a border at the given rect for debugging purposes.
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 // Indicates if the next sequence of Char events should be suppressed or not. 337 // Indicates if the next sequence of Char events should be suppressed or not.
325 bool suppress_next_char_events_; 338 bool suppress_next_char_events_;
326 339
327 // Set to true if painting to the window is handled by the GPU process. 340 // Set to true if painting to the window is handled by the GPU process.
328 bool is_gpu_rendering_active_; 341 bool is_gpu_rendering_active_;
329 342
330 DISALLOW_COPY_AND_ASSIGN(RenderWidget); 343 DISALLOW_COPY_AND_ASSIGN(RenderWidget);
331 }; 344 };
332 345
333 #endif // CHROME_RENDERER_RENDER_WIDGET_H_ 346 #endif // CHROME_RENDERER_RENDER_WIDGET_H_
OLDNEW
« no previous file with comments | « chrome/renderer/render_view.cc ('k') | chrome/renderer/render_widget.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698