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

Side by Side Diff: components/nacl/loader/nacl_ipc_adapter.cc

Issue 1830853002: Make PlatformFileForTransit a class on Windows. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix tests. 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 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/loader/nacl_ipc_adapter.h" 5 #include "components/nacl/loader/nacl_ipc_adapter.h"
6 6
7 #include <limits.h> 7 #include <limits.h>
8 #include <string.h> 8 #include <string.h>
9 #include <tuple> 9 #include <tuple>
10 #include <utility> 10 #include <utility>
(...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 scoped_ptr<NaClDescWrapper> nacl_desc; 563 scoped_ptr<NaClDescWrapper> nacl_desc;
564 switch (iter->type()) { 564 switch (iter->type()) {
565 case ppapi::proxy::SerializedHandle::SHARED_MEMORY: { 565 case ppapi::proxy::SerializedHandle::SHARED_MEMORY: {
566 nacl_desc = 566 nacl_desc =
567 MakeShmNaClDesc(iter->shmem(), static_cast<size_t>(iter->size())); 567 MakeShmNaClDesc(iter->shmem(), static_cast<size_t>(iter->size()));
568 break; 568 break;
569 } 569 }
570 case ppapi::proxy::SerializedHandle::SOCKET: { 570 case ppapi::proxy::SerializedHandle::SOCKET: {
571 nacl_desc.reset(new NaClDescWrapper(NaClDescSyncSocketMake( 571 nacl_desc.reset(new NaClDescWrapper(NaClDescSyncSocketMake(
572 #if defined(OS_WIN) 572 #if defined(OS_WIN)
573 iter->descriptor() 573 iter->descriptor().GetHandle()
574 #else 574 #else
575 iter->descriptor().fd 575 iter->descriptor().fd
576 #endif 576 #endif
577 ))); 577 )));
Mark Seaborn 2016/03/29 19:24:09 Nit: should line up with iter->descriptor() args a
erikchen 2016/03/29 20:57:42 Done.
578 break; 578 break;
579 } 579 }
580 case ppapi::proxy::SerializedHandle::FILE: { 580 case ppapi::proxy::SerializedHandle::FILE: {
581 // Create the NaClDesc for the file descriptor. If quota checking is 581 // Create the NaClDesc for the file descriptor. If quota checking is
582 // required, wrap it in a NaClDescQuota. 582 // required, wrap it in a NaClDescQuota.
583 NaClDesc* desc = NaClDescIoMakeFromHandle( 583 NaClDesc* desc = NaClDescIoMakeFromHandle(
584 #if defined(OS_WIN) 584 #if defined(OS_WIN)
585 iter->descriptor(), 585 iter->descriptor().GetHandle(),
586 #else 586 #else
587 iter->descriptor().fd, 587 iter->descriptor().fd,
588 #endif 588 #endif
589 TranslatePepperFileReadWriteOpenFlags(iter->open_flags())); 589 TranslatePepperFileReadWriteOpenFlags(iter->open_flags()));
590 if (desc && iter->file_io()) { 590 if (desc && iter->file_io()) {
591 desc = MakeNaClDescQuota( 591 desc = MakeNaClDescQuota(
592 locked_data_.nacl_msg_scanner_.GetFile(iter->file_io()), 592 locked_data_.nacl_msg_scanner_.GetFile(iter->file_io()),
593 desc); 593 desc);
594 } 594 }
595 if (desc) 595 if (desc)
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
652 // original FD to the client without making a validated NaClDesc. 652 // original FD to the client without making a validated NaClDesc.
653 // However, we must rewrite the message to clear the file tokens. 653 // However, we must rewrite the message to clear the file tokens.
654 base::PickleIterator iter = IPC::SyncMessage::GetDataIterator(&orig_msg); 654 base::PickleIterator iter = IPC::SyncMessage::GetDataIterator(&orig_msg);
655 ppapi::proxy::SerializedHandle sh; 655 ppapi::proxy::SerializedHandle sh;
656 656
657 // We know that this can be read safely; see the original read in 657 // We know that this can be read safely; see the original read in
658 // OnMessageReceived(). 658 // OnMessageReceived().
659 CHECK(IPC::ReadParam(&orig_msg, &iter, &sh)); 659 CHECK(IPC::ReadParam(&orig_msg, &iter, &sh));
660 scoped_ptr<IPC::Message> new_msg = CreateOpenResourceReply(orig_msg, sh); 660 scoped_ptr<IPC::Message> new_msg = CreateOpenResourceReply(orig_msg, sh);
661 661
662 scoped_ptr<NaClDescWrapper> desc_wrapper(new NaClDescWrapper( 662 scoped_ptr<NaClDescWrapper> desc_wrapper(
663 NaClDescIoMakeFromHandle( 663 new NaClDescWrapper(NaClDescIoMakeFromHandle(
664 #if defined(OS_WIN) 664 #if defined(OS_WIN)
665 sh.descriptor(), 665 sh.descriptor().GetHandle(),
666 #else 666 #else
667 sh.descriptor().fd, 667 sh.descriptor().fd,
668 #endif 668 #endif
669 NACL_ABI_O_RDONLY))); 669 NACL_ABI_O_RDONLY)));
670 670
671 scoped_refptr<RewrittenMessage> rewritten_msg(new RewrittenMessage); 671 scoped_refptr<RewrittenMessage> rewritten_msg(new RewrittenMessage);
672 rewritten_msg->AddDescriptor(desc_wrapper.release()); 672 rewritten_msg->AddDescriptor(desc_wrapper.release());
673 { 673 {
674 base::AutoLock lock(lock_); 674 base::AutoLock lock(lock_);
675 SaveMessage(*new_msg, rewritten_msg.get()); 675 SaveMessage(*new_msg, rewritten_msg.get());
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
841 header.flags = msg.flags(); 841 header.flags = msg.flags();
842 header.num_fds = static_cast<uint16_t>(rewritten_msg->desc_count()); 842 header.num_fds = static_cast<uint16_t>(rewritten_msg->desc_count());
843 843
844 rewritten_msg->SetData(header, msg.payload(), msg.payload_size()); 844 rewritten_msg->SetData(header, msg.payload(), msg.payload_size());
845 locked_data_.to_be_received_.push(rewritten_msg); 845 locked_data_.to_be_received_.push(rewritten_msg);
846 } 846 }
847 847
848 int TranslatePepperFileReadWriteOpenFlagsForTesting(int32_t pp_open_flags) { 848 int TranslatePepperFileReadWriteOpenFlagsForTesting(int32_t pp_open_flags) {
849 return TranslatePepperFileReadWriteOpenFlags(pp_open_flags); 849 return TranslatePepperFileReadWriteOpenFlags(pp_open_flags);
850 } 850 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698