| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "ipc/mojo/ipc_channel_mojo.h" | 5 #include "ipc/mojo/ipc_channel_mojo.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/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
| 10 #include "base/thread_task_runner_handle.h" | 10 #include "base/thread_task_runner_handle.h" |
| (...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 525 #else | 525 #else |
| 526 NOTREACHED(); | 526 NOTREACHED(); |
| 527 #endif // defined(OS_POSIX) && !defined(OS_NACL) | 527 #endif // defined(OS_POSIX) && !defined(OS_NACL) |
| 528 break; | 528 break; |
| 529 case MessageAttachment::TYPE_MOJO_HANDLE: { | 529 case MessageAttachment::TYPE_MOJO_HANDLE: { |
| 530 mojo::ScopedHandle handle = | 530 mojo::ScopedHandle handle = |
| 531 static_cast<IPC::internal::MojoHandleAttachment*>( | 531 static_cast<IPC::internal::MojoHandleAttachment*>( |
| 532 attachment.get())->TakeHandle(); | 532 attachment.get())->TakeHandle(); |
| 533 handles->push_back(handle.release().value()); | 533 handles->push_back(handle.release().value()); |
| 534 } break; | 534 } break; |
| 535 case MessageAttachment::TYPE_WIN_HANDLE: |
| 536 NOTREACHED(); |
| 537 break; |
| 535 } | 538 } |
| 536 } | 539 } |
| 537 | 540 |
| 538 set->CommitAll(); | 541 set->CommitAll(); |
| 539 } | 542 } |
| 540 | 543 |
| 541 return MOJO_RESULT_OK; | 544 return MOJO_RESULT_OK; |
| 542 } | 545 } |
| 543 | 546 |
| 544 // static | 547 // static |
| 545 MojoResult ChannelMojo::WriteToMessageAttachmentSet( | 548 MojoResult ChannelMojo::WriteToMessageAttachmentSet( |
| 546 const std::vector<MojoHandle>& handle_buffer, | 549 const std::vector<MojoHandle>& handle_buffer, |
| 547 Message* message) { | 550 Message* message) { |
| 548 for (size_t i = 0; i < handle_buffer.size(); ++i) { | 551 for (size_t i = 0; i < handle_buffer.size(); ++i) { |
| 549 bool ok = message->attachment_set()->AddAttachment( | 552 bool ok = message->attachment_set()->AddAttachment( |
| 550 new IPC::internal::MojoHandleAttachment( | 553 new IPC::internal::MojoHandleAttachment( |
| 551 mojo::MakeScopedHandle(mojo::Handle(handle_buffer[i])))); | 554 mojo::MakeScopedHandle(mojo::Handle(handle_buffer[i])))); |
| 552 DCHECK(ok); | 555 DCHECK(ok); |
| 553 if (!ok) { | 556 if (!ok) { |
| 554 LOG(ERROR) << "Failed to add new Mojo handle."; | 557 LOG(ERROR) << "Failed to add new Mojo handle."; |
| 555 return MOJO_RESULT_UNKNOWN; | 558 return MOJO_RESULT_UNKNOWN; |
| 556 } | 559 } |
| 557 } | 560 } |
| 558 | 561 |
| 559 return MOJO_RESULT_OK; | 562 return MOJO_RESULT_OK; |
| 560 } | 563 } |
| 561 | 564 |
| 562 } // namespace IPC | 565 } // namespace IPC |
| OLD | NEW |