diff options
author | teravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-03 01:45:02 +0000 |
---|---|---|
committer | teravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-03 01:45:02 +0000 |
commit | 44bebdcee18f1c6eb96eca489f1aa0dd93ddb4f0 (patch) | |
tree | 698668006116cb5050d7007900872347f157447c /content/renderer | |
parent | a98706fef98e07a1f7cb2d1092b34d4b1f23c58f (diff) | |
download | chromium_src-44bebdcee18f1c6eb96eca489f1aa0dd93ddb4f0.zip chromium_src-44bebdcee18f1c6eb96eca489f1aa0dd93ddb4f0.tar.gz chromium_src-44bebdcee18f1c6eb96eca489f1aa0dd93ddb4f0.tar.bz2 |
Pepper: Add RendererPpapiHostImpl::GetBrowserConnection().
The FileIO ResourceHost in the renderer will need access to a
PepperBrowserConnection so that it can send messages to the browser to get
information about a FileRef resource (implemeted in the browser).
This change makes the PepperBrowserConnection inside PepperPluginDelegateImpl
visible.
BUG=
Review URL: https://chromiumcodereview.appspot.com/18063006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209850 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer')
-rw-r--r-- | content/renderer/pepper/renderer_ppapi_host_impl.cc | 40 | ||||
-rw-r--r-- | content/renderer/pepper/renderer_ppapi_host_impl.h | 3 |
2 files changed, 27 insertions, 16 deletions
diff --git a/content/renderer/pepper/renderer_ppapi_host_impl.cc b/content/renderer/pepper/renderer_ppapi_host_impl.cc index 587dc1f..314a0b2 100644 --- a/content/renderer/pepper/renderer_ppapi_host_impl.cc +++ b/content/renderer/pepper/renderer_ppapi_host_impl.cc @@ -157,6 +157,22 @@ RendererPpapiHostImpl::CreateInProcessResourceCreationAPI( new PepperInProcessResourceCreation(this, instance)); } +PepperBrowserConnection* +RendererPpapiHostImpl::GetBrowserConnection(PP_Instance instance) const { + PluginInstance* instance_object = GetAndValidateInstance(instance); + if (!instance_object) + return NULL; + + // Since we're the embedder, we can make assumptions about the delegate on + // the instance. + PepperPluginDelegateImpl* delegate = + static_cast<PepperPluginDelegateImpl*>(instance_object->delegate()); + if (!delegate) + return NULL; + + return delegate->pepper_browser_connection(); +} + ppapi::host::PpapiHost* RendererPpapiHostImpl::GetPpapiHost() { return ppapi_host_.get(); } @@ -265,23 +281,15 @@ void RendererPpapiHostImpl::CreateBrowserResourceHost( PP_Instance instance, const IPC::Message& nested_msg, const base::Callback<void(int)>& callback) const { - PluginInstance* instance_object = GetAndValidateInstance(instance); - if (!instance_object) - callback.Run(0); - - // Since we're the embedder, we can make assumptions about the delegate on - // the instance. - PepperPluginDelegateImpl* delegate = - static_cast<PepperPluginDelegateImpl*>(instance_object->delegate()); - if (!delegate) + PepperBrowserConnection* browser_connection = GetBrowserConnection(instance); + if (browser_connection == NULL) { callback.Run(0); - - PepperBrowserConnection* browser_connection = - delegate->pepper_browser_connection(); - browser_connection->SendBrowserCreate(module_->GetPluginChildId(), - instance, - nested_msg, - callback); + } else { + browser_connection->SendBrowserCreate(module_->GetPluginChildId(), + instance, + nested_msg, + callback); + } } PluginInstance* RendererPpapiHostImpl::GetAndValidateInstance( diff --git a/content/renderer/pepper/renderer_ppapi_host_impl.h b/content/renderer/pepper/renderer_ppapi_host_impl.h index ac9b9c9..b2dd843 100644 --- a/content/renderer/pepper/renderer_ppapi_host_impl.h +++ b/content/renderer/pepper/renderer_ppapi_host_impl.h @@ -38,6 +38,7 @@ class PluginModule; namespace content { +class PepperBrowserConnection; class PepperInProcessRouter; // This class is attached to a PluginModule via the module's embedder state. @@ -82,6 +83,8 @@ class RendererPpapiHostImpl CreateInProcessResourceCreationAPI( webkit::ppapi::PluginInstance* instance); + PepperBrowserConnection* GetBrowserConnection(PP_Instance instance) const; + // RendererPpapiHost implementation. virtual ppapi::host::PpapiHost* GetPpapiHost() OVERRIDE; virtual bool IsValidInstance(PP_Instance instance) const OVERRIDE; |