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_VIEW_IMPL_H_ | 5 #ifndef CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ |
| 6 #define CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ | 6 #define CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <deque> | 9 #include <deque> |
| 10 #include <map> | 10 #include <map> |
| 11 #include <set> | 11 #include <set> |
| 12 #include <string> | 12 #include <string> |
| 13 #include <vector> | 13 #include <vector> |
| 14 | 14 |
| 15 #include "base/basictypes.h" | 15 #include "base/basictypes.h" |
| 16 #include "base/callback.h" | |
| 16 #include "base/gtest_prod_util.h" | 17 #include "base/gtest_prod_util.h" |
| 17 #include "base/id_map.h" | 18 #include "base/id_map.h" |
| 18 #include "base/memory/linked_ptr.h" | 19 #include "base/memory/linked_ptr.h" |
| 19 #include "base/memory/weak_ptr.h" | 20 #include "base/memory/weak_ptr.h" |
| 20 #include "base/observer_list.h" | 21 #include "base/observer_list.h" |
| 21 #include "base/timer.h" | 22 #include "base/timer.h" |
| 22 #include "build/build_config.h" | 23 #include "build/build_config.h" |
| 23 #include "content/common/content_export.h" | 24 #include "content/common/content_export.h" |
| 24 #include "content/common/edit_command.h" | 25 #include "content/common/edit_command.h" |
| 25 #include "content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.h" | 26 #include "content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.h" |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 85 struct ViewMsg_PostMessage_Params; | 86 struct ViewMsg_PostMessage_Params; |
| 86 struct ViewMsg_StopFinding_Params; | 87 struct ViewMsg_StopFinding_Params; |
| 87 struct ViewMsg_SwapOut_Params; | 88 struct ViewMsg_SwapOut_Params; |
| 88 struct WebDropData; | 89 struct WebDropData; |
| 89 class WebIntentsHost; | 90 class WebIntentsHost; |
| 90 class WebPluginDelegateProxy; | 91 class WebPluginDelegateProxy; |
| 91 class WebUIBindings; | 92 class WebUIBindings; |
| 92 | 93 |
| 93 namespace content { | 94 namespace content { |
| 94 class DocumentState; | 95 class DocumentState; |
| 96 class GuestToEmbedderChannel; | |
| 95 class NavigationState; | 97 class NavigationState; |
| 96 class P2PSocketDispatcher; | 98 class P2PSocketDispatcher; |
| 97 class RenderViewObserver; | 99 class RenderViewObserver; |
| 98 class RenderViewTest; | 100 class RenderViewTest; |
| 99 struct CustomContextMenuContext; | 101 struct CustomContextMenuContext; |
| 100 struct FileChooserParams; | 102 struct FileChooserParams; |
| 101 struct SelectedFileInfo; | 103 struct SelectedFileInfo; |
| 102 } // namespace content | 104 } // namespace content |
| 103 | 105 |
| 104 namespace gfx { | 106 namespace gfx { |
| 105 class Point; | 107 class Point; |
| 106 class Rect; | 108 class Rect; |
| 107 } // namespace gfx | 109 } // namespace gfx |
| 108 | 110 |
| 109 namespace webkit { | 111 namespace webkit { |
| 110 | 112 |
| 111 namespace ppapi { | 113 namespace ppapi { |
| 112 class PluginInstance; | 114 class PluginInstance; |
| 115 class WebPluginImpl; | |
| 113 } // namespace ppapi | 116 } // namespace ppapi |
| 114 | 117 |
| 115 } // namespace webkit | 118 } // namespace webkit |
| 116 | 119 |
| 117 namespace webkit_glue { | 120 namespace webkit_glue { |
| 118 class ImageResourceFetcher; | 121 class ImageResourceFetcher; |
| 119 class ResourceFetcher; | 122 class ResourceFetcher; |
| 120 } | 123 } |
| 121 | 124 |
| 122 namespace WebKit { | 125 namespace WebKit { |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 193 const webkit_glue::WebPreferences& webkit_prefs, | 196 const webkit_glue::WebPreferences& webkit_prefs, |
| 194 SharedRenderViewCounter* counter, | 197 SharedRenderViewCounter* counter, |
| 195 int32 routing_id, | 198 int32 routing_id, |
| 196 int32 surface_id, | 199 int32 surface_id, |
| 197 int64 session_storage_namespace_id, | 200 int64 session_storage_namespace_id, |
| 198 const string16& frame_name, | 201 const string16& frame_name, |
| 199 bool is_renderer_created, | 202 bool is_renderer_created, |
| 200 bool swapped_out, | 203 bool swapped_out, |
| 201 int32 next_page_id, | 204 int32 next_page_id, |
| 202 const WebKit::WebScreenInfo& screen_info, | 205 const WebKit::WebScreenInfo& screen_info, |
| 203 bool guest, | 206 content::GuestToEmbedderChannel* guest_to_embedder_channel, |
| 204 AccessibilityMode accessibility_mode); | 207 AccessibilityMode accessibility_mode); |
| 205 | 208 |
| 206 // Returns the RenderViewImpl containing the given WebView. | 209 // Returns the RenderViewImpl containing the given WebView. |
| 207 CONTENT_EXPORT static RenderViewImpl* FromWebView(WebKit::WebView* webview); | 210 CONTENT_EXPORT static RenderViewImpl* FromWebView(WebKit::WebView* webview); |
| 208 | 211 |
| 209 // May return NULL when the view is closing. | 212 // May return NULL when the view is closing. |
| 210 CONTENT_EXPORT WebKit::WebView* webview() const; | 213 CONTENT_EXPORT WebKit::WebView* webview() const; |
| 211 | 214 |
| 212 // WebGraphicsContext3DSwapBuffersClient implementation. | 215 // WebGraphicsContext3DSwapBuffersClient implementation. |
| 213 | 216 |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 254 // no other waiting items in the queue. | 257 // no other waiting items in the queue. |
| 255 // | 258 // |
| 256 // Returns true if the chooser was successfully scheduled. False means we | 259 // Returns true if the chooser was successfully scheduled. False means we |
| 257 // didn't schedule anything. | 260 // didn't schedule anything. |
| 258 bool ScheduleFileChooser(const content::FileChooserParams& params, | 261 bool ScheduleFileChooser(const content::FileChooserParams& params, |
| 259 WebKit::WebFileChooserCompletion* completion); | 262 WebKit::WebFileChooserCompletion* completion); |
| 260 | 263 |
| 261 // Sets whether the renderer should report load progress to the browser. | 264 // Sets whether the renderer should report load progress to the browser. |
| 262 void SetReportLoadProgressEnabled(bool enabled); | 265 void SetReportLoadProgressEnabled(bool enabled); |
| 263 | 266 |
| 264 bool guest() const { return guest_; } | 267 content::GuestToEmbedderChannel* |
| 268 guest_to_embedder_channel() const { return guest_to_embedder_channel_; } | |
|
jam
2012/05/16 02:22:40
nit: need to tab here
Fady Samuel
2012/05/16 04:43:54
Done.
| |
| 269 PP_Instance pp_instance() const { return pp_instance_; } | |
| 270 void set_host_resource(const ppapi::HostResource& host_resource) { | |
| 271 resource_ = host_resource; | |
| 272 } | |
| 273 const ppapi::HostResource& host_resource() const { return resource_; } | |
| 274 | |
| 275 void GuestReady(PP_Instance instance); | |
|
jam
2012/05/16 02:22:40
nit: please add documentation about these new func
Fady Samuel
2012/05/16 04:43:54
Done.
| |
| 276 | |
| 277 webkit::ppapi::WebPluginImpl* CreateBrowserPlugin( | |
| 278 const IPC::ChannelHandle& channel_handle, | |
| 279 int guest_process_id, | |
| 280 const WebKit::WebPluginParams& params); | |
| 265 | 281 |
| 266 void LoadNavigationErrorPage( | 282 void LoadNavigationErrorPage( |
| 267 WebKit::WebFrame* frame, | 283 WebKit::WebFrame* frame, |
| 268 const WebKit::WebURLRequest& failed_request, | 284 const WebKit::WebURLRequest& failed_request, |
| 269 const WebKit::WebURLError& error, | 285 const WebKit::WebURLError& error, |
| 270 const std::string& html, | 286 const std::string& html, |
| 271 bool replace); | 287 bool replace); |
| 272 | 288 |
| 273 // Plugin-related functions -------------------------------------------------- | 289 // Plugin-related functions -------------------------------------------------- |
| 274 // (See also WebPluginPageDelegate implementation.) | 290 // (See also WebPluginPageDelegate implementation.) |
| (...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 751 const webkit_glue::WebPreferences& webkit_prefs, | 767 const webkit_glue::WebPreferences& webkit_prefs, |
| 752 SharedRenderViewCounter* counter, | 768 SharedRenderViewCounter* counter, |
| 753 int32 routing_id, | 769 int32 routing_id, |
| 754 int32 surface_id, | 770 int32 surface_id, |
| 755 int64 session_storage_namespace_id, | 771 int64 session_storage_namespace_id, |
| 756 const string16& frame_name, | 772 const string16& frame_name, |
| 757 bool is_renderer_created, | 773 bool is_renderer_created, |
| 758 bool swapped_out, | 774 bool swapped_out, |
| 759 int32 next_page_id, | 775 int32 next_page_id, |
| 760 const WebKit::WebScreenInfo& screen_info, | 776 const WebKit::WebScreenInfo& screen_info, |
| 761 bool guest, | 777 content::GuestToEmbedderChannel* guest_to_embedder_channel, |
| 762 AccessibilityMode accessibility_mode); | 778 AccessibilityMode accessibility_mode); |
| 763 | 779 |
| 764 // Do not delete directly. This class is reference counted. | 780 // Do not delete directly. This class is reference counted. |
| 765 virtual ~RenderViewImpl(); | 781 virtual ~RenderViewImpl(); |
| 766 | 782 |
| 767 void UpdateURL(WebKit::WebFrame* frame); | 783 void UpdateURL(WebKit::WebFrame* frame); |
| 768 void UpdateTitle(WebKit::WebFrame* frame, const string16& title, | 784 void UpdateTitle(WebKit::WebFrame* frame, const string16& title, |
| 769 WebKit::WebTextDirection title_direction); | 785 WebKit::WebTextDirection title_direction); |
| 770 void UpdateSessionHistory(WebKit::WebFrame* frame); | 786 void UpdateSessionHistory(WebKit::WebFrame* frame); |
| 771 void SendUpdateState(const WebKit::WebHistoryItem& item); | 787 void SendUpdateState(const WebKit::WebHistoryItem& item); |
| (...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1327 // that we can enumerate them to send updates about things like window | 1343 // that we can enumerate them to send updates about things like window |
| 1328 // location or tab focus and visibily. These are non-owning references. | 1344 // location or tab focus and visibily. These are non-owning references. |
| 1329 std::set<WebPluginDelegateProxy*> plugin_delegates_; | 1345 std::set<WebPluginDelegateProxy*> plugin_delegates_; |
| 1330 | 1346 |
| 1331 #if defined(OS_WIN) | 1347 #if defined(OS_WIN) |
| 1332 // The ID of the focused NPAPI plug-in. | 1348 // The ID of the focused NPAPI plug-in. |
| 1333 int focused_plugin_id_; | 1349 int focused_plugin_id_; |
| 1334 #endif | 1350 #endif |
| 1335 | 1351 |
| 1336 // Allows JS to access DOM automation. The JS object is only exposed when the | 1352 // Allows JS to access DOM automation. The JS object is only exposed when the |
| 1337 // DOM automation bindings are enabled. | 1353 // DOM automation bendings are enabled. |
|
jam
2012/05/16 02:22:40
?
Fady Samuel
2012/05/16 04:43:54
Done.
| |
| 1338 scoped_ptr<DomAutomationController> dom_automation_controller_; | 1354 scoped_ptr<DomAutomationController> dom_automation_controller_; |
| 1339 | 1355 |
| 1340 // Indicates whether this RenderView is a guest of another RenderView. | 1356 // Channel for communication with embedding renderer, if it exists. |
| 1341 bool guest_; | 1357 scoped_refptr<content::GuestToEmbedderChannel> guest_to_embedder_channel_; |
| 1358 | |
| 1359 // The pepper instance identifer for this guest RenderView. | |
| 1360 PP_Instance pp_instance_; | |
|
jam
2012/05/16 02:22:40
nit: this should be something like guest_pp_instan
Fady Samuel
2012/05/16 04:43:54
Done.
| |
| 1361 | |
| 1362 // The ppapi::HostResource associated with the on-screen context for this | |
| 1363 // guest RenderView. | |
| 1364 ppapi::HostResource resource_; | |
|
jam
2012/05/16 02:22:40
ditto for all these parameters
Fady Samuel
2012/05/16 04:43:54
Done.
| |
| 1365 | |
| 1366 WebGraphicsContext3DCommandBufferImpl* uninitialized_context_; | |
| 1367 | |
| 1368 WebKit::WebGraphicsContext3D::Attributes attributes_; | |
| 1342 | 1369 |
| 1343 // The accessibility mode. | 1370 // The accessibility mode. |
| 1344 AccessibilityMode accessibility_mode_; | 1371 AccessibilityMode accessibility_mode_; |
| 1345 | 1372 |
| 1346 // NOTE: pepper_delegate_ should be last member because its constructor calls | 1373 // NOTE: pepper_delegate_ should be last member because its constructor calls |
| 1347 // AddObservers method of RenderViewImpl from c-tor. | 1374 // AddObservers method of RenderViewImpl from c-tor. |
| 1348 content::PepperPluginDelegateImpl pepper_delegate_; | 1375 content::PepperPluginDelegateImpl pepper_delegate_; |
| 1349 | 1376 |
| 1350 // --------------------------------------------------------------------------- | 1377 // --------------------------------------------------------------------------- |
| 1351 // ADDING NEW DATA? Please see if it fits appropriately in one of the above | 1378 // ADDING NEW DATA? Please see if it fits appropriately in one of the above |
| 1352 // sections rather than throwing it randomly at the end. If you're adding a | 1379 // sections rather than throwing it randomly at the end. If you're adding a |
| 1353 // bunch of stuff, you should probably create a helper class and put your | 1380 // bunch of stuff, you should probably create a helper class and put your |
| 1354 // data and methods on that to avoid bloating RenderView more. You can | 1381 // data and methods on that to avoid bloating RenderView more. You can |
| 1355 // use the Observer interface to filter IPC messages and receive frame change | 1382 // use the Observer interface to filter IPC messages and receive frame change |
| 1356 // notifications. | 1383 // notifications. |
| 1357 // --------------------------------------------------------------------------- | 1384 // --------------------------------------------------------------------------- |
| 1358 | 1385 |
| 1359 DISALLOW_COPY_AND_ASSIGN(RenderViewImpl); | 1386 DISALLOW_COPY_AND_ASSIGN(RenderViewImpl); |
| 1360 }; | 1387 }; |
| 1361 | 1388 |
| 1362 #endif // CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ | 1389 #endif // CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ |
| OLD | NEW |