summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authorfsamuel@chromium.org <fsamuel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-10 23:54:01 +0000
committerfsamuel@chromium.org <fsamuel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-10 23:54:01 +0000
commit42f7a8ed18bfe818d2dfef8f2aafef83afd33404 (patch)
tree4fa9f7684df8b88052be29da3a3b62142ebfd559 /webkit
parenta6fd68e5303ecb4700de8775ca1ed09dcfb00948 (diff)
downloadchromium_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.cc8
-rw-r--r--webkit/plugins/ppapi/ppapi_webplugin_impl.h11
-rw-r--r--webkit/plugins/webview_plugin.cc3
-rw-r--r--webkit/plugins/webview_plugin.h3
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();