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

Side by Side Diff: content/renderer/render_view_impl.h

Issue 9609008: Implemented Browser Plugin (NOT FOR REVIEW) (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: New BrowserPluginSerializationRules. Removed unnecessary changes to VarTracker Created 8 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « content/renderer/render_thread_impl.cc ('k') | content/renderer/render_view_impl.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) 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 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 struct ViewMsg_Navigate_Params; 84 struct ViewMsg_Navigate_Params;
84 struct ViewMsg_StopFinding_Params; 85 struct ViewMsg_StopFinding_Params;
85 struct ViewMsg_SwapOut_Params; 86 struct ViewMsg_SwapOut_Params;
86 struct WebDropData; 87 struct WebDropData;
87 class WebIntentsHost; 88 class WebIntentsHost;
88 class WebPluginDelegateProxy; 89 class WebPluginDelegateProxy;
89 class WebUIBindings; 90 class WebUIBindings;
90 91
91 namespace content { 92 namespace content {
92 class DocumentState; 93 class DocumentState;
94 class GuestToEmbedderChannel;
93 class NavigationState; 95 class NavigationState;
94 class P2PSocketDispatcher; 96 class P2PSocketDispatcher;
95 class RenderViewObserver; 97 class RenderViewObserver;
96 class RenderViewTest; 98 class RenderViewTest;
97 struct CustomContextMenuContext; 99 struct CustomContextMenuContext;
98 struct FileChooserParams; 100 struct FileChooserParams;
99 struct SelectedFileInfo; 101 struct SelectedFileInfo;
100 } // namespace content 102 } // namespace content
101 103
102 namespace gfx { 104 namespace gfx {
103 class Point; 105 class Point;
104 class Rect; 106 class Rect;
105 } // namespace gfx 107 } // namespace gfx
106 108
107 namespace webkit { 109 namespace webkit {
108 110
109 namespace ppapi { 111 namespace ppapi {
110 class PluginInstance; 112 class PluginInstance;
113 class WebPluginImpl;
111 } // namespace ppapi 114 } // namespace ppapi
112 115
113 } // namespace webkit 116 } // namespace webkit
114 117
115 namespace webkit_glue { 118 namespace webkit_glue {
116 class ImageResourceFetcher; 119 class ImageResourceFetcher;
117 class ResourceFetcher; 120 class ResourceFetcher;
118 } 121 }
119 122
120 namespace WebKit { 123 namespace WebKit {
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 const webkit_glue::WebPreferences& webkit_prefs, 193 const webkit_glue::WebPreferences& webkit_prefs,
191 SharedRenderViewCounter* counter, 194 SharedRenderViewCounter* counter,
192 int32 routing_id, 195 int32 routing_id,
193 int32 surface_id, 196 int32 surface_id,
194 int64 session_storage_namespace_id, 197 int64 session_storage_namespace_id,
195 const string16& frame_name, 198 const string16& frame_name,
196 bool is_renderer_created, 199 bool is_renderer_created,
197 bool swapped_out, 200 bool swapped_out,
198 int32 next_page_id, 201 int32 next_page_id,
199 const WebKit::WebScreenInfo& screen_info, 202 const WebKit::WebScreenInfo& screen_info,
200 bool guest, 203 content::GuestToEmbedderChannel* guest_to_embedder_channel,
201 AccessibilityMode accessibility_mode); 204 AccessibilityMode accessibility_mode);
202 205
203 // Returns the RenderViewImpl containing the given WebView. 206 // Returns the RenderViewImpl containing the given WebView.
204 CONTENT_EXPORT static RenderViewImpl* FromWebView(WebKit::WebView* webview); 207 CONTENT_EXPORT static RenderViewImpl* FromWebView(WebKit::WebView* webview);
205 208
206 // May return NULL when the view is closing. 209 // May return NULL when the view is closing.
207 CONTENT_EXPORT WebKit::WebView* webview() const; 210 CONTENT_EXPORT WebKit::WebView* webview() const;
208 211
209 // WebGraphicsContext3DSwapBuffersClient implementation. 212 // WebGraphicsContext3DSwapBuffersClient implementation.
210 213
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 // no other waiting items in the queue. 254 // no other waiting items in the queue.
252 // 255 //
253 // Returns true if the chooser was successfully scheduled. False means we 256 // Returns true if the chooser was successfully scheduled. False means we
254 // didn't schedule anything. 257 // didn't schedule anything.
255 bool ScheduleFileChooser(const content::FileChooserParams& params, 258 bool ScheduleFileChooser(const content::FileChooserParams& params,
256 WebKit::WebFileChooserCompletion* completion); 259 WebKit::WebFileChooserCompletion* completion);
257 260
258 // Sets whether the renderer should report load progress to the browser. 261 // Sets whether the renderer should report load progress to the browser.
259 void SetReportLoadProgressEnabled(bool enabled); 262 void SetReportLoadProgressEnabled(bool enabled);
260 263
261 bool guest() const { return guest_; } 264 content::GuestToEmbedderChannel*
265 guest_to_embedder_channel() const { return guest_to_embedder_channel_; }
266 PP_Instance pp_instance() const { return pp_instance_; }
267 void set_host_resource(const ppapi::HostResource& host_resource) {
268 resource_ = host_resource;
269 }
270 const ppapi::HostResource& host_resource() const { return resource_; }
271
272 void GuestReady(PP_Instance instance);
273
274 webkit::ppapi::WebPluginImpl* CreateBrowserPlugin(
275 const IPC::ChannelHandle& channel_handle,
276 int guest_process_id,
277 const WebKit::WebPluginParams& params);
262 278
263 void LoadNavigationErrorPage( 279 void LoadNavigationErrorPage(
264 WebKit::WebFrame* frame, 280 WebKit::WebFrame* frame,
265 const WebKit::WebURLRequest& failed_request, 281 const WebKit::WebURLRequest& failed_request,
266 const WebKit::WebURLError& error, 282 const WebKit::WebURLError& error,
267 const std::string& html, 283 const std::string& html,
268 bool replace); 284 bool replace);
269 285
270 // Plugin-related functions -------------------------------------------------- 286 // Plugin-related functions --------------------------------------------------
271 // (See also WebPluginPageDelegate implementation.) 287 // (See also WebPluginPageDelegate implementation.)
(...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after
746 const webkit_glue::WebPreferences& webkit_prefs, 762 const webkit_glue::WebPreferences& webkit_prefs,
747 SharedRenderViewCounter* counter, 763 SharedRenderViewCounter* counter,
748 int32 routing_id, 764 int32 routing_id,
749 int32 surface_id, 765 int32 surface_id,
750 int64 session_storage_namespace_id, 766 int64 session_storage_namespace_id,
751 const string16& frame_name, 767 const string16& frame_name,
752 bool is_renderer_created, 768 bool is_renderer_created,
753 bool swapped_out, 769 bool swapped_out,
754 int32 next_page_id, 770 int32 next_page_id,
755 const WebKit::WebScreenInfo& screen_info, 771 const WebKit::WebScreenInfo& screen_info,
756 bool guest, 772 content::GuestToEmbedderChannel* guest_to_embedder_channel,
757 AccessibilityMode accessibility_mode); 773 AccessibilityMode accessibility_mode);
758 774
759 // Do not delete directly. This class is reference counted. 775 // Do not delete directly. This class is reference counted.
760 virtual ~RenderViewImpl(); 776 virtual ~RenderViewImpl();
761 777
762 void UpdateURL(WebKit::WebFrame* frame); 778 void UpdateURL(WebKit::WebFrame* frame);
763 void UpdateTitle(WebKit::WebFrame* frame, const string16& title, 779 void UpdateTitle(WebKit::WebFrame* frame, const string16& title,
764 WebKit::WebTextDirection title_direction); 780 WebKit::WebTextDirection title_direction);
765 void UpdateSessionHistory(WebKit::WebFrame* frame); 781 void UpdateSessionHistory(WebKit::WebFrame* frame);
766 void SendUpdateState(const WebKit::WebHistoryItem& item); 782 void SendUpdateState(const WebKit::WebHistoryItem& item);
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after
1317 // that we can enumerate them to send updates about things like window 1333 // that we can enumerate them to send updates about things like window
1318 // location or tab focus and visibily. These are non-owning references. 1334 // location or tab focus and visibily. These are non-owning references.
1319 std::set<WebPluginDelegateProxy*> plugin_delegates_; 1335 std::set<WebPluginDelegateProxy*> plugin_delegates_;
1320 1336
1321 #if defined(OS_WIN) 1337 #if defined(OS_WIN)
1322 // The ID of the focused NPAPI plug-in. 1338 // The ID of the focused NPAPI plug-in.
1323 int focused_plugin_id_; 1339 int focused_plugin_id_;
1324 #endif 1340 #endif
1325 1341
1326 // Allows JS to access DOM automation. The JS object is only exposed when the 1342 // Allows JS to access DOM automation. The JS object is only exposed when the
1327 // DOM automation bindings are enabled. 1343 // DOM automation bendings are enabled.
1328 scoped_ptr<DomAutomationController> dom_automation_controller_; 1344 scoped_ptr<DomAutomationController> dom_automation_controller_;
1329 1345
1330 // Indicates whether this RenderView is a guest of another RenderView. 1346 // Channel for communication with embedding renderer, if it exists.
1331 bool guest_; 1347 scoped_refptr<content::GuestToEmbedderChannel> guest_to_embedder_channel_;
1348
1349 // The pepper instance identifer for this guest RenderView.
1350 PP_Instance pp_instance_;
1351
1352 // The ppapi::HostResource associated with the on-screen context for this
1353 // guest RenderView.
1354 ppapi::HostResource resource_;
1355
1356 WebGraphicsContext3DCommandBufferImpl* uninitialized_context_;
1357
1358 WebKit::WebGraphicsContext3D::Attributes attributes_;
1332 1359
1333 // The accessibility mode. 1360 // The accessibility mode.
1334 AccessibilityMode accessibility_mode_; 1361 AccessibilityMode accessibility_mode_;
1335 1362
1336 // NOTE: pepper_delegate_ should be last member because its constructor calls 1363 // NOTE: pepper_delegate_ should be last member because its constructor calls
1337 // AddObservers method of RenderViewImpl from c-tor. 1364 // AddObservers method of RenderViewImpl from c-tor.
1338 content::PepperPluginDelegateImpl pepper_delegate_; 1365 content::PepperPluginDelegateImpl pepper_delegate_;
1339 1366
1340 // --------------------------------------------------------------------------- 1367 // ---------------------------------------------------------------------------
1341 // ADDING NEW DATA? Please see if it fits appropriately in one of the above 1368 // ADDING NEW DATA? Please see if it fits appropriately in one of the above
1342 // sections rather than throwing it randomly at the end. If you're adding a 1369 // sections rather than throwing it randomly at the end. If you're adding a
1343 // bunch of stuff, you should probably create a helper class and put your 1370 // bunch of stuff, you should probably create a helper class and put your
1344 // data and methods on that to avoid bloating RenderView more. You can 1371 // data and methods on that to avoid bloating RenderView more. You can
1345 // use the Observer interface to filter IPC messages and receive frame change 1372 // use the Observer interface to filter IPC messages and receive frame change
1346 // notifications. 1373 // notifications.
1347 // --------------------------------------------------------------------------- 1374 // ---------------------------------------------------------------------------
1348 1375
1349 DISALLOW_COPY_AND_ASSIGN(RenderViewImpl); 1376 DISALLOW_COPY_AND_ASSIGN(RenderViewImpl);
1350 }; 1377 };
1351 1378
1352 #endif // CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ 1379 #endif // CONTENT_RENDERER_RENDER_VIEW_IMPL_H_
OLDNEW
« no previous file with comments | « content/renderer/render_thread_impl.cc ('k') | content/renderer/render_view_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698