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

Unified Diff: content/browser/web_contents/web_contents_impl.h

Issue 10868012: Browser Plugin: New Implementation (Browser Side) (Closed) Base URL: http://git.chromium.org/chromium/src.git@master-trial-obrowser
Patch Set: sync + Address Albert's comments. Created 8 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/web_contents/web_contents_impl.h
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index 654ec64056872131c49dc9162a68c8c2562040b6..e3ad83a4e4568128e284f6cc9b9cfd6d4d4680a1 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -38,6 +38,8 @@ class WebContentsImpl;
struct ViewMsg_PostMessage_Params;
namespace content {
+class BrowserPluginEmbedder;
+class BrowserPluginGuest;
class ColorChooser;
class DownloadItem;
class JavaScriptDialogCreator;
@@ -161,6 +163,15 @@ class CONTENT_EXPORT WebContentsImpl
// Expose the render manager for testing.
RenderViewHostManager* GetRenderManagerForTesting();
+ // Sets this WebContents as a guest.
+ content::BrowserPluginGuest* AssignBrowserPluginGuest(int instance_id);
+ // Returns guest browser plugin object, or NULL if this WebContents is not a
+ // guest.
+ content::BrowserPluginGuest* GetBrowserPluginGuest();
+ // Returns embedder browser plugin object, or NULL if this WebContents is not
+ // an embedder.
+ content::BrowserPluginEmbedder* GetBrowserPluginEmbedder();
+
// content::WebContents ------------------------------------------------------
virtual content::WebContentsDelegate* GetDelegate() OVERRIDE;
virtual void SetDelegate(content::WebContentsDelegate* delegate) OVERRIDE;
@@ -542,6 +553,10 @@ class CONTENT_EXPORT WebContentsImpl
void OnRequestPpapiBrokerPermission(int request_id,
const GURL& url,
const FilePath& plugin_path);
+ void OnBrowserPluginNavigateGuest(int instance_id,
+ int64 frame_id,
+ const std::string& src,
+ const gfx::Size& size);
// Changes the IsLoading state and notifies delegate as needed
// |details| is used to provide details on the load that just finished
@@ -647,6 +662,10 @@ class CONTENT_EXPORT WebContentsImpl
std::string* embedder_channel_name,
int* embedder_container_id);
+ // Removes browser plugin embedder if there is one and its associated
+ // RenderViewHost has been swapped out.
+ void RemoveSwappedOutBrowserPluginEmbedder();
+
// Data for core operation ---------------------------------------------------
// Delegate for notifying our owner about stuff. Not owned by us.
@@ -694,7 +713,7 @@ class CONTENT_EXPORT WebContentsImpl
java_bridge_dispatcher_host_manager_;
// TODO(fsamuel): Remove this once upstreaming of the new browser plugin
- // implmentation is complete.
+ // implementation is complete.
// Manages the browser plugin instances hosted by this WebContents.
scoped_ptr<content::old::BrowserPluginHost> old_browser_plugin_host_;
@@ -813,6 +832,13 @@ class CONTENT_EXPORT WebContentsImpl
// Color chooser that was opened by this tab.
content::ColorChooser* color_chooser_;
+ // Manages the embedder state for browser plugins, if this WebContents is an
+ // embedder; NULL otherwise.
+ scoped_ptr<content::BrowserPluginEmbedder> browser_plugin_embedder_;
+ // Manages the guest state for browser plugin, if this WebContents is a guest;
+ // NULL otherwise.
+ scoped_ptr<content::BrowserPluginGuest> browser_plugin_guest_;
+
// This must be at the end, or else we might get notifications and use other
// member variables that are gone.
content::NotificationRegistrar registrar_;

Powered by Google App Engine
This is Rietveld 408576698