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 2fda9db2e0e02ae4a224db704aa8f206b00e0cf1..2dcbfd2e02a87bf54bb2c7558cb45cd9b89ac4d2 100644 |
--- a/content/browser/web_contents/web_contents_impl.h |
+++ b/content/browser/web_contents/web_contents_impl.h |
@@ -39,6 +39,8 @@ class WebContentsImpl; |
struct ViewMsg_PostMessage_Params; |
namespace content { |
+class BrowserPluginEmbedder; |
+class BrowserPluginGuest; |
class ColorChooser; |
class DownloadItem; |
class JavaScriptDialogCreator; |
@@ -89,6 +91,11 @@ class CONTENT_EXPORT WebContentsImpl |
const WebContentsImpl* base_web_contents, |
WebContentsImpl* opener); |
+ // Creates a WebContents to be used as a browser plugin guest. |
+ static WebContentsImpl* CreateGuest(content::BrowserContext* browser_context, |
+ const std::string& host, |
+ int guest_instance_id); |
+ |
// Returns the content specific prefs for the given RVH. |
static webkit_glue::WebPreferences GetWebkitPrefs( |
content::RenderViewHost* rvh, const GURL& url); |
@@ -162,6 +169,13 @@ class CONTENT_EXPORT WebContentsImpl |
// Expose the render manager for testing. |
RenderViewHostManager* GetRenderManagerForTesting(); |
+ // 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; |
@@ -552,6 +566,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 |
@@ -657,6 +675,9 @@ class CONTENT_EXPORT WebContentsImpl |
std::string* embedder_channel_name, |
int* embedder_container_id); |
+ // Removes browser plugin embedder if there is one. |
+ void RemoveBrowserPluginEmbedder(); |
+ |
// Data for core operation --------------------------------------------------- |
// Delegate for notifying our owner about stuff. Not owned by us. |
@@ -704,7 +725,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_; |
@@ -823,6 +844,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_; |