| 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_mojo_bootstrap.h" | 5 #include "ipc/ipc_mojo_bootstrap.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <map> | 9 #include <map> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 namespace { | 41 namespace { |
| 42 | 42 |
| 43 class ChannelAssociatedGroupController | 43 class ChannelAssociatedGroupController |
| 44 : public mojo::AssociatedGroupController, | 44 : public mojo::AssociatedGroupController, |
| 45 public mojo::MessageReceiver, | 45 public mojo::MessageReceiver, |
| 46 public mojo::PipeControlMessageHandlerDelegate { | 46 public mojo::PipeControlMessageHandlerDelegate { |
| 47 public: | 47 public: |
| 48 ChannelAssociatedGroupController( | 48 ChannelAssociatedGroupController( |
| 49 bool set_interface_id_namespace_bit, | 49 bool set_interface_id_namespace_bit, |
| 50 const scoped_refptr<base::SingleThreadTaskRunner>& ipc_task_runner) | 50 const scoped_refptr<base::SingleThreadTaskRunner>& ipc_task_runner) |
| 51 : mojo::AssociatedGroupController(base::ThreadTaskRunnerHandle::Get()), | 51 : task_runner_(ipc_task_runner), |
| 52 task_runner_(ipc_task_runner), | |
| 53 proxy_task_runner_(base::ThreadTaskRunnerHandle::Get()), | 52 proxy_task_runner_(base::ThreadTaskRunnerHandle::Get()), |
| 54 set_interface_id_namespace_bit_(set_interface_id_namespace_bit), | 53 set_interface_id_namespace_bit_(set_interface_id_namespace_bit), |
| 55 header_validator_( | 54 header_validator_( |
| 56 "IPC::mojom::Bootstrap [master] MessageHeaderValidator", this), | 55 "IPC::mojom::Bootstrap [master] MessageHeaderValidator", this), |
| 57 control_message_handler_(this), | 56 control_message_handler_(this), |
| 58 control_message_proxy_thunk_(this), | 57 control_message_proxy_thunk_(this), |
| 59 control_message_proxy_(&control_message_proxy_thunk_) { | 58 control_message_proxy_(&control_message_proxy_thunk_) { |
| 60 thread_checker_.DetachFromThread(); | 59 thread_checker_.DetachFromThread(); |
| 61 control_message_handler_.SetDescription( | 60 control_message_handler_.SetDescription( |
| 62 "IPC::mojom::Bootstrap [master] PipeControlMessageHandler"); | 61 "IPC::mojom::Bootstrap [master] PipeControlMessageHandler"); |
| (...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 338 bool Accept(mojo::Message* message) override { | 337 bool Accept(mojo::Message* message) override { |
| 339 return controller_->SendMessage(message); | 338 return controller_->SendMessage(message); |
| 340 } | 339 } |
| 341 | 340 |
| 342 ChannelAssociatedGroupController* controller_; | 341 ChannelAssociatedGroupController* controller_; |
| 343 | 342 |
| 344 DISALLOW_COPY_AND_ASSIGN(ControlMessageProxyThunk); | 343 DISALLOW_COPY_AND_ASSIGN(ControlMessageProxyThunk); |
| 345 }; | 344 }; |
| 346 | 345 |
| 347 ~ChannelAssociatedGroupController() override { | 346 ~ChannelAssociatedGroupController() override { |
| 347 DCHECK(!connector_); |
| 348 |
| 348 base::AutoLock locker(lock_); | 349 base::AutoLock locker(lock_); |
| 349 for (auto iter = endpoints_.begin(); iter != endpoints_.end();) { | 350 for (auto iter = endpoints_.begin(); iter != endpoints_.end();) { |
| 350 Endpoint* endpoint = iter->second.get(); | 351 Endpoint* endpoint = iter->second.get(); |
| 351 ++iter; | 352 ++iter; |
| 352 | 353 |
| 353 DCHECK(endpoint->closed()); | 354 DCHECK(endpoint->closed()); |
| 354 MarkPeerClosedAndMaybeRemove(endpoint); | 355 MarkPeerClosedAndMaybeRemove(endpoint); |
| 355 } | 356 } |
| 356 | 357 |
| 357 DCHECK(endpoints_.empty()); | 358 DCHECK(endpoints_.empty()); |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 693 Channel::Mode mode, | 694 Channel::Mode mode, |
| 694 Delegate* delegate, | 695 Delegate* delegate, |
| 695 const scoped_refptr<base::SingleThreadTaskRunner>& ipc_task_runner) { | 696 const scoped_refptr<base::SingleThreadTaskRunner>& ipc_task_runner) { |
| 696 return base::MakeUnique<MojoBootstrapImpl>( | 697 return base::MakeUnique<MojoBootstrapImpl>( |
| 697 std::move(handle), delegate, | 698 std::move(handle), delegate, |
| 698 new ChannelAssociatedGroupController(mode == Channel::MODE_SERVER, | 699 new ChannelAssociatedGroupController(mode == Channel::MODE_SERVER, |
| 699 ipc_task_runner)); | 700 ipc_task_runner)); |
| 700 } | 701 } |
| 701 | 702 |
| 702 } // namespace IPC | 703 } // namespace IPC |
| OLD | NEW |