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

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: Updated according to creis@'s comments 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>
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 struct ViewMsg_PostMessage_Params; 85 struct ViewMsg_PostMessage_Params;
86 struct ViewMsg_StopFinding_Params; 86 struct ViewMsg_StopFinding_Params;
87 struct ViewMsg_SwapOut_Params; 87 struct ViewMsg_SwapOut_Params;
88 struct WebDropData; 88 struct WebDropData;
89 class WebIntentsHost; 89 class WebIntentsHost;
90 class WebPluginDelegateProxy; 90 class WebPluginDelegateProxy;
91 class WebUIBindings; 91 class WebUIBindings;
92 92
93 namespace content { 93 namespace content {
94 class DocumentState; 94 class DocumentState;
95 class GuestToEmbedderChannel;
95 class NavigationState; 96 class NavigationState;
96 class P2PSocketDispatcher; 97 class P2PSocketDispatcher;
97 class RenderViewObserver; 98 class RenderViewObserver;
98 class RenderViewTest; 99 class RenderViewTest;
99 struct CustomContextMenuContext; 100 struct CustomContextMenuContext;
100 struct FileChooserParams; 101 struct FileChooserParams;
101 struct SelectedFileInfo; 102 struct SelectedFileInfo;
102 } // namespace content 103 } // namespace content
103 104
104 namespace gfx { 105 namespace gfx {
105 class Point; 106 class Point;
106 class Rect; 107 class Rect;
107 } // namespace gfx 108 } // namespace gfx
108 109
109 namespace webkit { 110 namespace webkit {
110 111
111 namespace ppapi { 112 namespace ppapi {
112 class PluginInstance; 113 class PluginInstance;
114 class WebPluginImpl;
113 } // namespace ppapi 115 } // namespace ppapi
114 116
115 } // namespace webkit 117 } // namespace webkit
116 118
117 namespace webkit_glue { 119 namespace webkit_glue {
118 class ImageResourceFetcher; 120 class ImageResourceFetcher;
119 class ResourceFetcher; 121 class ResourceFetcher;
120 } 122 }
121 123
122 namespace WebKit { 124 namespace WebKit {
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 const webkit_glue::WebPreferences& webkit_prefs, 195 const webkit_glue::WebPreferences& webkit_prefs,
194 SharedRenderViewCounter* counter, 196 SharedRenderViewCounter* counter,
195 int32 routing_id, 197 int32 routing_id,
196 int32 surface_id, 198 int32 surface_id,
197 int64 session_storage_namespace_id, 199 int64 session_storage_namespace_id,
198 const string16& frame_name, 200 const string16& frame_name,
199 bool is_renderer_created, 201 bool is_renderer_created,
200 bool swapped_out, 202 bool swapped_out,
201 int32 next_page_id, 203 int32 next_page_id,
202 const WebKit::WebScreenInfo& screen_info, 204 const WebKit::WebScreenInfo& screen_info,
203 bool guest, 205 content::GuestToEmbedderChannel* guest_to_embedder_channel,
204 AccessibilityMode accessibility_mode); 206 AccessibilityMode accessibility_mode);
205 207
206 // Returns the RenderViewImpl containing the given WebView. 208 // Returns the RenderViewImpl containing the given WebView.
207 CONTENT_EXPORT static RenderViewImpl* FromWebView(WebKit::WebView* webview); 209 CONTENT_EXPORT static RenderViewImpl* FromWebView(WebKit::WebView* webview);
208 210
209 // May return NULL when the view is closing. 211 // May return NULL when the view is closing.
210 CONTENT_EXPORT WebKit::WebView* webview() const; 212 CONTENT_EXPORT WebKit::WebView* webview() const;
211 213
212 // WebGraphicsContext3DSwapBuffersClient implementation. 214 // WebGraphicsContext3DSwapBuffersClient implementation.
213 215
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 // no other waiting items in the queue. 256 // no other waiting items in the queue.
255 // 257 //
256 // Returns true if the chooser was successfully scheduled. False means we 258 // Returns true if the chooser was successfully scheduled. False means we
257 // didn't schedule anything. 259 // didn't schedule anything.
258 bool ScheduleFileChooser(const content::FileChooserParams& params, 260 bool ScheduleFileChooser(const content::FileChooserParams& params,
259 WebKit::WebFileChooserCompletion* completion); 261 WebKit::WebFileChooserCompletion* completion);
260 262
261 // Sets whether the renderer should report load progress to the browser. 263 // Sets whether the renderer should report load progress to the browser.
262 void SetReportLoadProgressEnabled(bool enabled); 264 void SetReportLoadProgressEnabled(bool enabled);
263 265
264 bool guest() const { return guest_; } 266 content::GuestToEmbedderChannel*
267 guest_to_embedder_channel() const { return guest_to_embedder_channel_; }
268 PP_Instance guest_pp_instance() const { return guest_pp_instance_; }
269 void set_guest_graphics_resource(const ppapi::HostResource& resource) {
270 guest_graphics_resource_ = resource;
271 }
272 const ppapi::HostResource& guest_graphics_resource() const {
273 return guest_graphics_resource_;
274 }
275
276 // Once the browser plugin embedder has connected to this guest, and is
277 // ready to paint, it informs the guest through GuestReady to begin
278 // compositing.
279 void GuestReady(PP_Instance instance);
280
281 webkit::ppapi::WebPluginImpl* CreateBrowserPlugin(
282 const IPC::ChannelHandle& channel_handle,
283 int guest_process_id,
284 const WebKit::WebPluginParams& params);
265 285
266 void LoadNavigationErrorPage( 286 void LoadNavigationErrorPage(
267 WebKit::WebFrame* frame, 287 WebKit::WebFrame* frame,
268 const WebKit::WebURLRequest& failed_request, 288 const WebKit::WebURLRequest& failed_request,
269 const WebKit::WebURLError& error, 289 const WebKit::WebURLError& error,
270 const std::string& html, 290 const std::string& html,
271 bool replace); 291 bool replace);
272 292
273 // Plugin-related functions -------------------------------------------------- 293 // Plugin-related functions --------------------------------------------------
274 // (See also WebPluginPageDelegate implementation.) 294 // (See also WebPluginPageDelegate implementation.)
(...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after
751 const webkit_glue::WebPreferences& webkit_prefs, 771 const webkit_glue::WebPreferences& webkit_prefs,
752 SharedRenderViewCounter* counter, 772 SharedRenderViewCounter* counter,
753 int32 routing_id, 773 int32 routing_id,
754 int32 surface_id, 774 int32 surface_id,
755 int64 session_storage_namespace_id, 775 int64 session_storage_namespace_id,
756 const string16& frame_name, 776 const string16& frame_name,
757 bool is_renderer_created, 777 bool is_renderer_created,
758 bool swapped_out, 778 bool swapped_out,
759 int32 next_page_id, 779 int32 next_page_id,
760 const WebKit::WebScreenInfo& screen_info, 780 const WebKit::WebScreenInfo& screen_info,
761 bool guest, 781 content::GuestToEmbedderChannel* guest_to_embedder_channel,
762 AccessibilityMode accessibility_mode); 782 AccessibilityMode accessibility_mode);
763 783
764 // Do not delete directly. This class is reference counted. 784 // Do not delete directly. This class is reference counted.
765 virtual ~RenderViewImpl(); 785 virtual ~RenderViewImpl();
766 786
767 void UpdateURL(WebKit::WebFrame* frame); 787 void UpdateURL(WebKit::WebFrame* frame);
768 void UpdateTitle(WebKit::WebFrame* frame, const string16& title, 788 void UpdateTitle(WebKit::WebFrame* frame, const string16& title,
769 WebKit::WebTextDirection title_direction); 789 WebKit::WebTextDirection title_direction);
770 void UpdateSessionHistory(WebKit::WebFrame* frame); 790 void UpdateSessionHistory(WebKit::WebFrame* frame);
771 void SendUpdateState(const WebKit::WebHistoryItem& item); 791 void SendUpdateState(const WebKit::WebHistoryItem& item);
(...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after
1330 1350
1331 #if defined(OS_WIN) 1351 #if defined(OS_WIN)
1332 // The ID of the focused NPAPI plug-in. 1352 // The ID of the focused NPAPI plug-in.
1333 int focused_plugin_id_; 1353 int focused_plugin_id_;
1334 #endif 1354 #endif
1335 1355
1336 // Allows JS to access DOM automation. The JS object is only exposed when the 1356 // Allows JS to access DOM automation. The JS object is only exposed when the
1337 // DOM automation bindings are enabled. 1357 // DOM automation bindings are enabled.
1338 scoped_ptr<DomAutomationController> dom_automation_controller_; 1358 scoped_ptr<DomAutomationController> dom_automation_controller_;
1339 1359
1340 // Indicates whether this RenderView is a guest of another RenderView. 1360 // Channel for communication with embedding renderer, if it exists.
1341 bool guest_; 1361 scoped_refptr<content::GuestToEmbedderChannel> guest_to_embedder_channel_;
1362
1363 // The pepper instance identifer for this guest RenderView.
1364 PP_Instance guest_pp_instance_;
1365
1366 // The ppapi::HostResource associated with the on-screen context for this
1367 // guest RenderView.
1368 ppapi::HostResource guest_graphics_resource_;
1369
1370 // This graphics context is initialized once GuestReady() is called.
1371 WebGraphicsContext3DCommandBufferImpl* guest_uninitialized_context_;
1372
1373 // These are the attributes originally passed into createGraphicsContext3D
1374 // before the guest_to_embedder_channel was ready.
1375 WebKit::WebGraphicsContext3D::Attributes guest_attributes_;
1342 1376
1343 // The accessibility mode. 1377 // The accessibility mode.
1344 AccessibilityMode accessibility_mode_; 1378 AccessibilityMode accessibility_mode_;
1345 1379
1346 // NOTE: pepper_delegate_ should be last member because its constructor calls 1380 // NOTE: pepper_delegate_ should be last member because its constructor calls
1347 // AddObservers method of RenderViewImpl from c-tor. 1381 // AddObservers method of RenderViewImpl from c-tor.
1348 content::PepperPluginDelegateImpl pepper_delegate_; 1382 content::PepperPluginDelegateImpl pepper_delegate_;
1349 1383
1350 // --------------------------------------------------------------------------- 1384 // ---------------------------------------------------------------------------
1351 // ADDING NEW DATA? Please see if it fits appropriately in one of the above 1385 // 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 1386 // 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 1387 // 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 1388 // 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 1389 // use the Observer interface to filter IPC messages and receive frame change
1356 // notifications. 1390 // notifications.
1357 // --------------------------------------------------------------------------- 1391 // ---------------------------------------------------------------------------
1358 1392
1359 DISALLOW_COPY_AND_ASSIGN(RenderViewImpl); 1393 DISALLOW_COPY_AND_ASSIGN(RenderViewImpl);
1360 }; 1394 };
1361 1395
1362 #endif // CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ 1396 #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