| OLD | NEW |
| 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 "remoting/host/desktop_session_proxy.h" | 5 #include "remoting/host/desktop_session_proxy.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 size_t size) | 53 size_t size) |
| 54 : id_(id), | 54 : id_(id), |
| 55 #if defined(OS_WIN) | 55 #if defined(OS_WIN) |
| 56 shared_memory_(handle, kReadOnly, process), | 56 shared_memory_(handle, kReadOnly, process), |
| 57 #else // !defined(OS_WIN) | 57 #else // !defined(OS_WIN) |
| 58 shared_memory_(handle, kReadOnly), | 58 shared_memory_(handle, kReadOnly), |
| 59 #endif // !defined(OS_WIN) | 59 #endif // !defined(OS_WIN) |
| 60 size_(size) { | 60 size_(size) { |
| 61 if (!shared_memory_.Map(size)) { | 61 if (!shared_memory_.Map(size)) { |
| 62 LOG(ERROR) << "Failed to map a shared buffer: id=" << id | 62 LOG(ERROR) << "Failed to map a shared buffer: id=" << id |
| 63 #if defined(OS_WIN) | |
| 64 << ", handle=" << handle.GetHandle() | |
| 65 #else | |
| 66 << ", handle.fd=" | |
| 67 << base::SharedMemory::GetFdFromSharedMemoryHandle(handle) | |
| 68 #endif | |
| 69 << ", size=" << size; | 63 << ", size=" << size; |
| 70 } | 64 } |
| 71 } | 65 } |
| 72 | 66 |
| 73 int id() { return id_; } | 67 int id() { return id_; } |
| 74 size_t size() { return size_; } | 68 size_t size() { return size_; } |
| 75 void* memory() { return shared_memory_.memory(); } | 69 void* memory() { return shared_memory_.memory(); } |
| 76 | 70 |
| 77 private: | 71 private: |
| 78 virtual ~IpcSharedBufferCore() {} | 72 virtual ~IpcSharedBufferCore() {} |
| (...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 469 } | 463 } |
| 470 | 464 |
| 471 // Pass a captured audio packet to |audio_capturer_|. | 465 // Pass a captured audio packet to |audio_capturer_|. |
| 472 audio_capture_task_runner_->PostTask( | 466 audio_capture_task_runner_->PostTask( |
| 473 FROM_HERE, base::Bind(&IpcAudioCapturer::OnAudioPacket, audio_capturer_, | 467 FROM_HERE, base::Bind(&IpcAudioCapturer::OnAudioPacket, audio_capturer_, |
| 474 base::Passed(&packet))); | 468 base::Passed(&packet))); |
| 475 } | 469 } |
| 476 | 470 |
| 477 void DesktopSessionProxy::OnCreateSharedBuffer( | 471 void DesktopSessionProxy::OnCreateSharedBuffer( |
| 478 int id, | 472 int id, |
| 479 IPC::PlatformFileForTransit handle, | 473 base::SharedMemoryHandle handle, |
| 480 uint32_t size) { | 474 uint32_t size) { |
| 481 DCHECK(caller_task_runner_->BelongsToCurrentThread()); | 475 DCHECK(caller_task_runner_->BelongsToCurrentThread()); |
| 482 | 476 |
| 483 #if defined(OS_WIN) | |
| 484 base::SharedMemoryHandle shm_handle = | |
| 485 base::SharedMemoryHandle(handle, base::GetCurrentProcId()); | |
| 486 #else | |
| 487 base::SharedMemoryHandle shm_handle = base::SharedMemoryHandle(handle); | |
| 488 #endif | |
| 489 scoped_refptr<IpcSharedBufferCore> shared_buffer = | 477 scoped_refptr<IpcSharedBufferCore> shared_buffer = |
| 490 new IpcSharedBufferCore(id, shm_handle, desktop_process_.Handle(), size); | 478 new IpcSharedBufferCore(id, handle, desktop_process_.Handle(), size); |
| 491 | 479 |
| 492 if (shared_buffer->memory() != nullptr && | 480 if (shared_buffer->memory() != nullptr && |
| 493 !shared_buffers_.insert(std::make_pair(id, shared_buffer)).second) { | 481 !shared_buffers_.insert(std::make_pair(id, shared_buffer)).second) { |
| 494 LOG(ERROR) << "Duplicate shared buffer id " << id << " encountered"; | 482 LOG(ERROR) << "Duplicate shared buffer id " << id << " encountered"; |
| 495 } | 483 } |
| 496 } | 484 } |
| 497 | 485 |
| 498 void DesktopSessionProxy::OnReleaseSharedBuffer(int id) { | 486 void DesktopSessionProxy::OnReleaseSharedBuffer(int id) { |
| 499 DCHECK(caller_task_runner_->BelongsToCurrentThread()); | 487 DCHECK(caller_task_runner_->BelongsToCurrentThread()); |
| 500 | 488 |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 579 } | 567 } |
| 580 | 568 |
| 581 // static | 569 // static |
| 582 void DesktopSessionProxyTraits::Destruct( | 570 void DesktopSessionProxyTraits::Destruct( |
| 583 const DesktopSessionProxy* desktop_session_proxy) { | 571 const DesktopSessionProxy* desktop_session_proxy) { |
| 584 desktop_session_proxy->caller_task_runner_->DeleteSoon(FROM_HERE, | 572 desktop_session_proxy->caller_task_runner_->DeleteSoon(FROM_HERE, |
| 585 desktop_session_proxy); | 573 desktop_session_proxy); |
| 586 } | 574 } |
| 587 | 575 |
| 588 } // namespace remoting | 576 } // namespace remoting |
| OLD | NEW |