| 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/ipc_channel_mojo.h" | 5 #include "ipc/ipc_channel_mojo.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 const scoped_refptr<base::SingleThreadTaskRunner>& ipc_task_runner) | 276 const scoped_refptr<base::SingleThreadTaskRunner>& ipc_task_runner) |
| 277 : task_runner_(ipc_task_runner), | 277 : task_runner_(ipc_task_runner), |
| 278 pipe_(handle.get()), | 278 pipe_(handle.get()), |
| 279 listener_(listener), | 279 listener_(listener), |
| 280 weak_factory_(this) { | 280 weak_factory_(this) { |
| 281 bootstrap_ = MojoBootstrap::Create(std::move(handle), mode, ipc_task_runner); | 281 bootstrap_ = MojoBootstrap::Create(std::move(handle), mode, ipc_task_runner); |
| 282 } | 282 } |
| 283 | 283 |
| 284 void ChannelMojo::ForwardMessageFromThreadSafePtr(mojo::Message message) { | 284 void ChannelMojo::ForwardMessageFromThreadSafePtr(mojo::Message message) { |
| 285 DCHECK(task_runner_->RunsTasksOnCurrentThread()); | 285 DCHECK(task_runner_->RunsTasksOnCurrentThread()); |
| 286 if (!message_reader_) | 286 if (!message_reader_ || !message_reader_->sender().is_bound()) |
| 287 return; | 287 return; |
| 288 message_reader_->sender().internal_state()->ForwardMessage( | 288 message_reader_->sender().internal_state()->ForwardMessage( |
| 289 std::move(message)); | 289 std::move(message)); |
| 290 } | 290 } |
| 291 | 291 |
| 292 void ChannelMojo::ForwardMessageWithResponderFromThreadSafePtr( | 292 void ChannelMojo::ForwardMessageWithResponderFromThreadSafePtr( |
| 293 mojo::Message message, | 293 mojo::Message message, |
| 294 std::unique_ptr<mojo::MessageReceiver> responder) { | 294 std::unique_ptr<mojo::MessageReceiver> responder) { |
| 295 DCHECK(task_runner_->RunsTasksOnCurrentThread()); | 295 DCHECK(task_runner_->RunsTasksOnCurrentThread()); |
| 296 if (!message_reader_) | 296 if (!message_reader_ || !message_reader_->sender().is_bound()) |
| 297 return; | 297 return; |
| 298 message_reader_->sender().internal_state()->ForwardMessageWithResponder( | 298 message_reader_->sender().internal_state()->ForwardMessageWithResponder( |
| 299 std::move(message), std::move(responder)); | 299 std::move(message), std::move(responder)); |
| 300 } | 300 } |
| 301 | 301 |
| 302 ChannelMojo::~ChannelMojo() { | 302 ChannelMojo::~ChannelMojo() { |
| 303 DCHECK(task_runner_->RunsTasksOnCurrentThread()); | 303 DCHECK(task_runner_->RunsTasksOnCurrentThread()); |
| 304 Close(); | 304 Close(); |
| 305 } | 305 } |
| 306 | 306 |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 481 } | 481 } |
| 482 | 482 |
| 483 void ChannelMojo::GetGenericRemoteAssociatedInterface( | 483 void ChannelMojo::GetGenericRemoteAssociatedInterface( |
| 484 const std::string& name, | 484 const std::string& name, |
| 485 mojo::ScopedInterfaceEndpointHandle handle) { | 485 mojo::ScopedInterfaceEndpointHandle handle) { |
| 486 if (message_reader_) | 486 if (message_reader_) |
| 487 message_reader_->GetRemoteInterface(name, std::move(handle)); | 487 message_reader_->GetRemoteInterface(name, std::move(handle)); |
| 488 } | 488 } |
| 489 | 489 |
| 490 } // namespace IPC | 490 } // namespace IPC |
| OLD | NEW |