Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/nacl/renderer/ppb_nacl_private_impl.h" | 5 #include "components/nacl/renderer/ppb_nacl_private_impl.h" |
| 6 | 6 |
| 7 #include <numeric> | 7 #include <numeric> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 286 routing_id = GetRoutingID(instance); | 286 routing_id = GetRoutingID(instance); |
| 287 if (!routing_id) { | 287 if (!routing_id) { |
| 288 ppapi::PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostTask( | 288 ppapi::PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostTask( |
| 289 FROM_HERE, | 289 FROM_HERE, |
| 290 base::Bind(callback.func, callback.user_data, | 290 base::Bind(callback.func, callback.user_data, |
| 291 static_cast<int32_t>(PP_ERROR_FAILED))); | 291 static_cast<int32_t>(PP_ERROR_FAILED))); |
| 292 return; | 292 return; |
| 293 } | 293 } |
| 294 } | 294 } |
| 295 | 295 |
| 296 // If the nexe uses ppapi APIs, we have to send the document URL to the | |
| 297 // browser side when launching the host. This is so that whitelisting can be | |
| 298 // performed for specific application IDs. | |
| 299 std::string document_url_string; | |
| 300 if (uses_ppapi) { | |
| 301 content::RendererPpapiHost *host = | |
| 302 content::RendererPpapiHost::GetForPPInstance(instance); | |
| 303 if (!host) { | |
| 304 ppapi::PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostTask( | |
| 305 FROM_HERE, | |
| 306 base::Bind(callback.func, callback.user_data, | |
| 307 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.
| |
| 308 return; | |
| 309 } | |
| 310 document_url_string = host->GetDocumentURL(instance).spec(); | |
| 311 } | |
| 312 | |
| 296 InstanceInfo instance_info; | 313 InstanceInfo instance_info; |
| 297 instance_info.url = GURL(alleged_url); | 314 instance_info.url = GURL(alleged_url); |
| 298 | 315 |
| 299 uint32_t perm_bits = ppapi::PERMISSION_NONE; | 316 uint32_t perm_bits = ppapi::PERMISSION_NONE; |
| 300 // Conditionally block 'Dev' interfaces. We do this for the NaCl process, so | 317 // Conditionally block 'Dev' interfaces. We do this for the NaCl process, so |
| 301 // it's clearer to developers when they are using 'Dev' inappropriately. We | 318 // it's clearer to developers when they are using 'Dev' inappropriately. We |
| 302 // must also check on the trusted side of the proxy. | 319 // must also check on the trusted side of the proxy. |
| 303 if (enable_ppapi_dev) | 320 if (enable_ppapi_dev) |
| 304 perm_bits |= ppapi::PERMISSION_DEV; | 321 perm_bits |= ppapi::PERMISSION_DEV; |
| 305 instance_info.permissions = | 322 instance_info.permissions = |
| 306 ppapi::PpapiPermissions::GetForCommandLine(perm_bits); | 323 ppapi::PpapiPermissions::GetForCommandLine(perm_bits); |
| 307 std::string error_message_string; | 324 std::string error_message_string; |
| 308 NaClLaunchResult launch_result; | 325 NaClLaunchResult launch_result; |
| 309 | 326 |
| 310 if (!sender->Send(new NaClHostMsg_LaunchNaCl( | 327 if (!sender->Send(new NaClHostMsg_LaunchNaCl( |
| 311 NaClLaunchParams(instance_info.url.spec(), | 328 NaClLaunchParams(document_url_string, |
| 329 instance_info.url.spec(), | |
| 312 routing_id, | 330 routing_id, |
| 313 perm_bits, | 331 perm_bits, |
| 314 PP_ToBool(uses_irt), | 332 PP_ToBool(uses_irt), |
| 315 PP_ToBool(uses_nonsfi_mode), | 333 PP_ToBool(uses_nonsfi_mode), |
| 316 PP_ToBool(enable_dyncode_syscalls), | 334 PP_ToBool(enable_dyncode_syscalls), |
| 317 PP_ToBool(enable_exception_handling), | 335 PP_ToBool(enable_exception_handling), |
| 318 PP_ToBool(enable_crash_throttling)), | 336 PP_ToBool(enable_crash_throttling)), |
| 319 &launch_result, | 337 &launch_result, |
| 320 &error_message_string))) { | 338 &error_message_string))) { |
| 321 ppapi::PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostTask( | 339 ppapi::PpapiGlobals::Get()->GetMainThreadMessageLoop()->PostTask( |
| (...skipping 1219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1541 &ReportSelLdrStatus | 1559 &ReportSelLdrStatus |
| 1542 }; | 1560 }; |
| 1543 | 1561 |
| 1544 } // namespace | 1562 } // namespace |
| 1545 | 1563 |
| 1546 const PPB_NaCl_Private* GetNaClPrivateInterface() { | 1564 const PPB_NaCl_Private* GetNaClPrivateInterface() { |
| 1547 return &nacl_interface; | 1565 return &nacl_interface; |
| 1548 } | 1566 } |
| 1549 | 1567 |
| 1550 } // namespace nacl | 1568 } // namespace nacl |
| OLD | NEW |