| Index: components/nacl/renderer/manifest_service_channel.cc
|
| diff --git a/components/nacl/renderer/manifest_service_channel.cc b/components/nacl/renderer/manifest_service_channel.cc
|
| index be9ccbe9a53ffdaca89af400a5dade345ab7846c..b32ee100bb41f0721734aa9d52a53eb52a04b671 100644
|
| --- a/components/nacl/renderer/manifest_service_channel.cc
|
| +++ b/components/nacl/renderer/manifest_service_channel.cc
|
| @@ -89,14 +89,15 @@ void ManifestServiceChannel::DidOpenResource(IPC::Message* reply,
|
| if (file.IsValid()) {
|
| IPC::PlatformFileForTransit file_for_transit;
|
| #if defined(OS_WIN)
|
| + HANDLE raw_handle = INVALID_HANDLE_VALUE;
|
| bool ok = content::BrokerDuplicateHandle(
|
| - file.TakePlatformFile(),
|
| - peer_pid_,
|
| - &file_for_transit,
|
| + file.TakePlatformFile(), peer_pid_, &raw_handle,
|
| 0, // desired_access is 0 since we're using DUPLICATE_SAME_ACCESS.
|
| DUPLICATE_SAME_ACCESS | DUPLICATE_CLOSE_SOURCE);
|
| - if (ok)
|
| + if (ok) {
|
| + file_for_transit = IPC::PlatformFileForTransit(raw_handle, peer_pid_);
|
| handle.set_file_handle(file_for_transit, PP_FILEOPENFLAG_READ, 0);
|
| + }
|
| #else
|
| file_for_transit = base::FileDescriptor(std::move(file));
|
| handle.set_file_handle(file_for_transit, PP_FILEOPENFLAG_READ, 0);
|
|
|