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 "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/containers/scoped_ptr_hash_map.h" | 10 #include "base/containers/scoped_ptr_hash_map.h" |
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
355 uint32_t options) { | 355 uint32_t options) { |
356 #if defined(OS_WIN) | 356 #if defined(OS_WIN) |
357 return content::BrokerDuplicateHandle(source_handle, process_id, | 357 return content::BrokerDuplicateHandle(source_handle, process_id, |
358 target_handle, desired_access, | 358 target_handle, desired_access, |
359 options); | 359 options); |
360 #else | 360 #else |
361 return 0; | 361 return 0; |
362 #endif | 362 #endif |
363 } | 363 } |
364 | 364 |
365 PP_FileHandle GetReadonlyPnaclFD(const char* filename) { | 365 PP_FileHandle GetReadonlyPnaclFD(const char* filename, |
| 366 PP_Bool is_executable, |
| 367 uint64_t* nonce_lo, |
| 368 uint64_t* nonce_hi) { |
366 IPC::PlatformFileForTransit out_fd = IPC::InvalidPlatformFileForTransit(); | 369 IPC::PlatformFileForTransit out_fd = IPC::InvalidPlatformFileForTransit(); |
367 IPC::Sender* sender = content::RenderThread::Get(); | 370 IPC::Sender* sender = content::RenderThread::Get(); |
368 DCHECK(sender); | 371 DCHECK(sender); |
| 372 *nonce_lo = 0; |
| 373 *nonce_hi = 0; |
369 if (!sender->Send(new NaClHostMsg_GetReadonlyPnaclFD( | 374 if (!sender->Send(new NaClHostMsg_GetReadonlyPnaclFD( |
370 std::string(filename), | 375 std::string(filename), PP_ToBool(is_executable), |
371 &out_fd))) { | 376 &out_fd, nonce_lo, nonce_hi))) { |
372 return base::kInvalidPlatformFileValue; | 377 return base::kInvalidPlatformFileValue; |
373 } | 378 } |
374 if (out_fd == IPC::InvalidPlatformFileForTransit()) { | 379 if (out_fd == IPC::InvalidPlatformFileForTransit()) { |
375 return base::kInvalidPlatformFileValue; | 380 return base::kInvalidPlatformFileValue; |
376 } | 381 } |
377 base::PlatformFile handle = | 382 base::PlatformFile handle = |
378 IPC::PlatformFileForTransitToPlatformFile(out_fd); | 383 IPC::PlatformFileForTransitToPlatformFile(out_fd); |
379 return handle; | 384 return handle; |
380 } | 385 } |
381 | 386 |
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
763 | 768 |
764 } // namespace | 769 } // namespace |
765 | 770 |
766 namespace nacl { | 771 namespace nacl { |
767 | 772 |
768 const PPB_NaCl_Private* GetNaClPrivateInterface() { | 773 const PPB_NaCl_Private* GetNaClPrivateInterface() { |
769 return &nacl_interface; | 774 return &nacl_interface; |
770 } | 775 } |
771 | 776 |
772 } // namespace nacl | 777 } // namespace nacl |
OLD | NEW |