Index: components/nacl/renderer/ppb_nacl_private_impl.cc |
diff --git a/components/nacl/renderer/ppb_nacl_private_impl.cc b/components/nacl/renderer/ppb_nacl_private_impl.cc |
index b91eb26c1e620b123175520614f7eac61f7c219d..1ee5f31521dcb9daafb5a481edf0f9f6c7753139 100644 |
--- a/components/nacl/renderer/ppb_nacl_private_impl.cc |
+++ b/components/nacl/renderer/ppb_nacl_private_impl.cc |
@@ -293,6 +293,23 @@ void LaunchSelLdr(PP_Instance instance, |
} |
} |
+ // If the nexe uses ppapi APIs, we have to send the document URL to the |
+ // browser side when launching the host. This is so that whitelisting can be |
+ // performed for specific application IDs. |
+ std::string document_url_string; |
+ if (uses_ppapi) { |
+ content::RendererPpapiHost *host = |
+ content::RendererPpapiHost::GetForPPInstance(instance); |
+ if (!host) { |
+ ppapi::PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostTask( |
+ FROM_HERE, |
+ base::Bind(callback.func, callback.user_data, |
+ static_cast<int32_t>(PP_ERROR_FAILED))); |
dmichael (off chromium)
2014/06/13 21:07:26
suggestion: Looks like you could use PostPPComplet
teravest
2014/06/13 21:13:00
Done.
|
+ return; |
+ } |
+ document_url_string = host->GetDocumentURL(instance).spec(); |
+ } |
+ |
InstanceInfo instance_info; |
instance_info.url = GURL(alleged_url); |
@@ -308,7 +325,8 @@ void LaunchSelLdr(PP_Instance instance, |
NaClLaunchResult launch_result; |
if (!sender->Send(new NaClHostMsg_LaunchNaCl( |
- NaClLaunchParams(instance_info.url.spec(), |
+ NaClLaunchParams(document_url_string, |
+ instance_info.url.spec(), |
routing_id, |
perm_bits, |
PP_ToBool(uses_irt), |