summaryrefslogtreecommitdiffstats
path: root/content/renderer
diff options
context:
space:
mode:
authorteravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-03 01:45:02 +0000
committerteravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-03 01:45:02 +0000
commit44bebdcee18f1c6eb96eca489f1aa0dd93ddb4f0 (patch)
tree698668006116cb5050d7007900872347f157447c /content/renderer
parenta98706fef98e07a1f7cb2d1092b34d4b1f23c58f (diff)
downloadchromium_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.cc40
-rw-r--r--content/renderer/pepper/renderer_ppapi_host_impl.h3
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;