Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(521)

Side by Side Diff: components/nacl/renderer/plugin/pnacl_translate_thread.cc

Issue 1830853002: Make PlatformFileForTransit a class on Windows. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comments from mseaborn. Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/plugin/pnacl_translate_thread.h" 5 #include "components/nacl/renderer/plugin/pnacl_translate_thread.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <iterator> 9 #include <iterator>
10 #include <sstream> 10 #include <sstream>
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 done_ = true; 161 done_ = true;
162 buffer_cond_.Signal(); 162 buffer_cond_.Signal();
163 } 163 }
164 164
165 ppapi::proxy::SerializedHandle PnaclTranslateThread::GetHandleForSubprocess( 165 ppapi::proxy::SerializedHandle PnaclTranslateThread::GetHandleForSubprocess(
166 base::File* file, int32_t open_flags, base::ProcessId peer_pid) { 166 base::File* file, int32_t open_flags, base::ProcessId peer_pid) {
167 IPC::PlatformFileForTransit file_for_transit; 167 IPC::PlatformFileForTransit file_for_transit;
168 168
169 DCHECK(file->IsValid()); 169 DCHECK(file->IsValid());
170 #if defined(OS_WIN) 170 #if defined(OS_WIN)
171 HANDLE raw_handle = INVALID_HANDLE_VALUE;
171 if (!content::BrokerDuplicateHandle( 172 if (!content::BrokerDuplicateHandle(
172 file->GetPlatformFile(), 173 file->GetPlatformFile(), peer_pid, &raw_handle,
173 peer_pid,
174 &file_for_transit,
175 0, // desired_access is 0 since we're using DUPLICATE_SAME_ACCESS. 174 0, // desired_access is 0 since we're using DUPLICATE_SAME_ACCESS.
176 DUPLICATE_SAME_ACCESS)) { 175 DUPLICATE_SAME_ACCESS)) {
177 return ppapi::proxy::SerializedHandle(); 176 return ppapi::proxy::SerializedHandle();
178 } 177 }
178 file_for_transit = IPC::PlatformFileForTransit(raw_handle, peer_pid);
179 #else 179 #else
180 file_for_transit = base::FileDescriptor(dup(file->GetPlatformFile()), true); 180 file_for_transit = base::FileDescriptor(dup(file->GetPlatformFile()), true);
181 #endif 181 #endif
182 182
183 // Using 0 disables any use of quota enforcement for this file handle. 183 // Using 0 disables any use of quota enforcement for this file handle.
184 PP_Resource file_io = 0; 184 PP_Resource file_io = 0;
185 185
186 ppapi::proxy::SerializedHandle handle; 186 ppapi::proxy::SerializedHandle handle;
187 handle.set_file_handle(file_for_transit, open_flags, file_io); 187 handle.set_file_handle(file_for_transit, open_flags, file_io);
188 return handle; 188 return handle;
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 buffer_cond_.Signal(); 408 buffer_cond_.Signal();
409 } 409 }
410 410
411 PnaclTranslateThread::~PnaclTranslateThread() { 411 PnaclTranslateThread::~PnaclTranslateThread() {
412 AbortSubprocesses(); 412 AbortSubprocesses();
413 if (translate_thread_) 413 if (translate_thread_)
414 translate_thread_->Join(); 414 translate_thread_->Join();
415 } 415 }
416 416
417 } // namespace plugin 417 } // namespace plugin
OLDNEW
« no previous file with comments | « components/nacl/renderer/manifest_service_channel.cc ('k') | components/nacl/renderer/ppb_nacl_private_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698