diff options
author | fsamuel@chromium.org <fsamuel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-10 23:54:01 +0000 |
---|---|---|
committer | fsamuel@chromium.org <fsamuel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-10 23:54:01 +0000 |
commit | 42f7a8ed18bfe818d2dfef8f2aafef83afd33404 (patch) | |
tree | 4fa9f7684df8b88052be29da3a3b62142ebfd559 /webkit | |
parent | a6fd68e5303ecb4700de8775ca1ed09dcfb00948 (diff) | |
download | chromium_src-42f7a8ed18bfe818d2dfef8f2aafef83afd33404.zip chromium_src-42f7a8ed18bfe818d2dfef8f2aafef83afd33404.tar.gz chromium_src-42f7a8ed18bfe818d2dfef8f2aafef83afd33404.tar.bz2 |
Browser Plugin: Make WebPluginImpl's WebPlugin implementation public and expose its container
The browser plugin also needs to know the WebPlugin's container so that it can replace one WebPlugin with another on cross-process navigations.
BUG=none.
TEST=manually
Review URL: https://chromiumcodereview.appspot.com/10381061
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136452 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r-- | webkit/plugins/ppapi/ppapi_webplugin_impl.cc | 8 | ||||
-rw-r--r-- | webkit/plugins/ppapi/ppapi_webplugin_impl.h | 11 | ||||
-rw-r--r-- | webkit/plugins/webview_plugin.cc | 3 | ||||
-rw-r--r-- | webkit/plugins/webview_plugin.h | 3 |
4 files changed, 17 insertions, 8 deletions
diff --git a/webkit/plugins/ppapi/ppapi_webplugin_impl.cc b/webkit/plugins/ppapi/ppapi_webplugin_impl.cc index c5f9fe5..1e2327a 100644 --- a/webkit/plugins/ppapi/ppapi_webplugin_impl.cc +++ b/webkit/plugins/ppapi/ppapi_webplugin_impl.cc @@ -54,7 +54,8 @@ WebPluginImpl::WebPluginImpl( const base::WeakPtr<PluginDelegate>& plugin_delegate) : init_data_(new InitData()), full_frame_(params.loadManually), - instance_object_(PP_MakeUndefined()) { + instance_object_(PP_MakeUndefined()), + container_(NULL) { DCHECK(plugin_module); init_data_->module = plugin_module; init_data_->delegate = plugin_delegate; @@ -68,6 +69,10 @@ WebPluginImpl::WebPluginImpl( WebPluginImpl::~WebPluginImpl() { } +WebKit::WebPluginContainer* WebPluginImpl::container() const { + return container_; +} + bool WebPluginImpl::initialize(WebPluginContainer* container) { // The plugin delegate may have gone away. if (!init_data_->delegate) @@ -97,6 +102,7 @@ bool WebPluginImpl::initialize(WebPluginContainer* container) { } init_data_.reset(); + container_ = container; return true; } diff --git a/webkit/plugins/ppapi/ppapi_webplugin_impl.h b/webkit/plugins/ppapi/ppapi_webplugin_impl.h index ae319a8..af9ce5e 100644 --- a/webkit/plugins/ppapi/ppapi_webplugin_impl.h +++ b/webkit/plugins/ppapi/ppapi_webplugin_impl.h @@ -35,12 +35,8 @@ class WebPluginImpl : public WebKit::WebPlugin { const WebKit::WebPluginParams& params, const base::WeakPtr<PluginDelegate>& plugin_delegate); - private: - friend class base::DeleteHelper<WebPluginImpl>; - - WEBKIT_PLUGINS_EXPORT virtual ~WebPluginImpl(); - // WebKit::WebPlugin implementation. + virtual WebKit::WebPluginContainer* container() const; virtual bool initialize(WebKit::WebPluginContainer* container); virtual void destroy(); virtual NPObject* scriptableObject(); @@ -85,6 +81,10 @@ class WebPluginImpl : public WebKit::WebPlugin { virtual bool canRotateView() OVERRIDE; virtual void rotateView(RotationType type) OVERRIDE; + private: + friend class base::DeleteHelper<WebPluginImpl>; + + WEBKIT_PLUGINS_EXPORT virtual ~WebPluginImpl(); struct InitData; scoped_ptr<InitData> init_data_; // Cleared upon successful initialization. @@ -95,6 +95,7 @@ class WebPluginImpl : public WebKit::WebPlugin { scoped_refptr<PPB_URLLoader_Impl> document_loader_; gfx::Rect plugin_rect_; PP_Var instance_object_; + WebKit::WebPluginContainer* container_; DISALLOW_COPY_AND_ASSIGN(WebPluginImpl); }; diff --git a/webkit/plugins/webview_plugin.cc b/webkit/plugins/webview_plugin.cc index 1b0bf8e..735e6fc 100644 --- a/webkit/plugins/webview_plugin.cc +++ b/webkit/plugins/webview_plugin.cc @@ -90,6 +90,9 @@ void WebViewPlugin::RestoreTitleText() { container_->element().setAttribute("title", old_title_); } +WebKit::WebPluginContainer* WebViewPlugin::container() const { + return container_; +} bool WebViewPlugin::initialize(WebPluginContainer* container) { container_ = container; diff --git a/webkit/plugins/webview_plugin.h b/webkit/plugins/webview_plugin.h index 12262d6..403b80d 100644 --- a/webkit/plugins/webview_plugin.h +++ b/webkit/plugins/webview_plugin.h @@ -62,8 +62,6 @@ class WebViewPlugin: public WebKit::WebPlugin, public WebKit::WebViewClient, WebKit::WebView* web_view() { return web_view_; } - WebKit::WebPluginContainer* container() { return container_; } - // When loading a plug-in document (i.e. a full page plug-in not embedded in // another page), we save all data that has been received, and replay it with // this method on the actual plug-in. @@ -72,6 +70,7 @@ class WebViewPlugin: public WebKit::WebPlugin, public WebKit::WebViewClient, WEBKIT_PLUGINS_EXPORT void RestoreTitleText(); // WebPlugin methods: + virtual WebKit::WebPluginContainer* container() const; virtual bool initialize(WebKit::WebPluginContainer*); virtual void destroy(); |