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 "chrome/browser/extensions/api/messaging/native_message_port.h" | 5 #include "chrome/browser/extensions/api/messaging/native_message_port.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/single_thread_task_runner.h" | 10 #include "base/single_thread_task_runner.h" |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 | 43 |
44 NativeMessagePort::Core::Core( | 44 NativeMessagePort::Core::Core( |
45 std::unique_ptr<NativeMessageHost> host, | 45 std::unique_ptr<NativeMessageHost> host, |
46 base::WeakPtr<NativeMessagePort> port, | 46 base::WeakPtr<NativeMessagePort> port, |
47 scoped_refptr<base::SingleThreadTaskRunner> message_service_task_runner) | 47 scoped_refptr<base::SingleThreadTaskRunner> message_service_task_runner) |
48 : host_(std::move(host)), | 48 : host_(std::move(host)), |
49 port_(port), | 49 port_(port), |
50 message_service_task_runner_(message_service_task_runner), | 50 message_service_task_runner_(message_service_task_runner), |
51 host_task_runner_(host_->task_runner()) { | 51 host_task_runner_(host_->task_runner()) { |
52 DCHECK(message_service_task_runner_->BelongsToCurrentThread()); | 52 DCHECK(message_service_task_runner_->BelongsToCurrentThread()); |
53 host_task_runner_->PostTask(FROM_HERE, | 53 host_task_runner_->PostTask( |
54 base::Bind(&NativeMessageHost::Start, | 54 FROM_HERE, |
55 base::Unretained(host_.get()), | 55 base::BindOnce(&NativeMessageHost::Start, base::Unretained(host_.get()), |
56 base::Unretained(this))); | 56 base::Unretained(this))); |
57 } | 57 } |
58 | 58 |
59 NativeMessagePort::Core::~Core() { | 59 NativeMessagePort::Core::~Core() { |
60 DCHECK(host_task_runner_->BelongsToCurrentThread()); | 60 DCHECK(host_task_runner_->BelongsToCurrentThread()); |
61 } | 61 } |
62 | 62 |
63 void NativeMessagePort::Core::OnMessageFromChrome(const std::string& message) { | 63 void NativeMessagePort::Core::OnMessageFromChrome(const std::string& message) { |
64 DCHECK(message_service_task_runner_->BelongsToCurrentThread()); | 64 DCHECK(message_service_task_runner_->BelongsToCurrentThread()); |
65 host_task_runner_->PostTask(FROM_HERE, | 65 host_task_runner_->PostTask( |
66 base::Bind(&NativeMessageHost::OnMessage, | 66 FROM_HERE, base::BindOnce(&NativeMessageHost::OnMessage, |
67 base::Unretained(host_.get()), | 67 base::Unretained(host_.get()), message)); |
68 message)); | |
69 } | 68 } |
70 | 69 |
71 void NativeMessagePort::Core::PostMessageFromNativeHost( | 70 void NativeMessagePort::Core::PostMessageFromNativeHost( |
72 const std::string& message) { | 71 const std::string& message) { |
73 DCHECK(host_task_runner_->BelongsToCurrentThread()); | 72 DCHECK(host_task_runner_->BelongsToCurrentThread()); |
74 message_service_task_runner_->PostTask( | 73 message_service_task_runner_->PostTask( |
75 FROM_HERE, | 74 FROM_HERE, base::BindOnce(&NativeMessagePort::PostMessageFromNativeHost, |
76 base::Bind( | 75 port_, message)); |
77 &NativeMessagePort::PostMessageFromNativeHost, port_, message)); | |
78 } | 76 } |
79 | 77 |
80 void NativeMessagePort::Core::CloseChannel(const std::string& error_message) { | 78 void NativeMessagePort::Core::CloseChannel(const std::string& error_message) { |
81 DCHECK(host_task_runner_->BelongsToCurrentThread()); | 79 DCHECK(host_task_runner_->BelongsToCurrentThread()); |
82 message_service_task_runner_->PostTask( | 80 message_service_task_runner_->PostTask( |
83 FROM_HERE, | 81 FROM_HERE, |
84 base::Bind(&NativeMessagePort::CloseChannel, port_, error_message)); | 82 base::BindOnce(&NativeMessagePort::CloseChannel, port_, error_message)); |
85 } | 83 } |
86 | 84 |
87 NativeMessagePort::NativeMessagePort( | 85 NativeMessagePort::NativeMessagePort( |
88 base::WeakPtr<MessageService> message_service, | 86 base::WeakPtr<MessageService> message_service, |
89 const PortId& port_id, | 87 const PortId& port_id, |
90 std::unique_ptr<NativeMessageHost> native_message_host) | 88 std::unique_ptr<NativeMessageHost> native_message_host) |
91 : weak_message_service_(message_service), | 89 : weak_message_service_(message_service), |
92 host_task_runner_(native_message_host->task_runner()), | 90 host_task_runner_(native_message_host->task_runner()), |
93 port_id_(port_id), | 91 port_id_(port_id), |
94 weak_factory_(this) { | 92 weak_factory_(this) { |
(...skipping 30 matching lines...) Expand all Loading... |
125 } | 123 } |
126 | 124 |
127 void NativeMessagePort::CloseChannel(const std::string& error_message) { | 125 void NativeMessagePort::CloseChannel(const std::string& error_message) { |
128 DCHECK(thread_checker_.CalledOnValidThread()); | 126 DCHECK(thread_checker_.CalledOnValidThread()); |
129 if (weak_message_service_) { | 127 if (weak_message_service_) { |
130 weak_message_service_->CloseChannel(port_id_, error_message); | 128 weak_message_service_->CloseChannel(port_id_, error_message); |
131 } | 129 } |
132 } | 130 } |
133 | 131 |
134 } // namespace extensions | 132 } // namespace extensions |
OLD | NEW |