OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "components/arc/arc_bridge_service.h" | 5 #include "components/arc/arc_bridge_service.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/sequenced_task_runner.h" | 10 #include "base/sequenced_task_runner.h" |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 void ArcBridgeService::OnAppInstanceReady(AppInstancePtr app_ptr) { | 59 void ArcBridgeService::OnAppInstanceReady(AppInstancePtr app_ptr) { |
60 DCHECK(CalledOnValidThread()); | 60 DCHECK(CalledOnValidThread()); |
61 temporary_app_ptr_ = std::move(app_ptr); | 61 temporary_app_ptr_ = std::move(app_ptr); |
62 temporary_app_ptr_.QueryVersion(base::Bind( | 62 temporary_app_ptr_.QueryVersion(base::Bind( |
63 &ArcBridgeService::OnAppVersionReady, weak_factory_.GetWeakPtr())); | 63 &ArcBridgeService::OnAppVersionReady, weak_factory_.GetWeakPtr())); |
64 } | 64 } |
65 | 65 |
66 void ArcBridgeService::OnAppVersionReady(int32_t version) { | 66 void ArcBridgeService::OnAppVersionReady(int32_t version) { |
67 DCHECK(CalledOnValidThread()); | 67 DCHECK(CalledOnValidThread()); |
68 app_ptr_ = std::move(temporary_app_ptr_); | 68 app_ptr_ = std::move(temporary_app_ptr_); |
69 FOR_EACH_OBSERVER(Observer, observer_list(), OnAppInstanceReady()); | |
70 app_ptr_.set_connection_error_handler(base::Bind( | 69 app_ptr_.set_connection_error_handler(base::Bind( |
71 &ArcBridgeService::CloseAppChannel, weak_factory_.GetWeakPtr())); | 70 &ArcBridgeService::CloseAppChannel, weak_factory_.GetWeakPtr())); |
| 71 FOR_EACH_OBSERVER(Observer, observer_list(), OnAppInstanceReady()); |
72 } | 72 } |
73 | 73 |
74 void ArcBridgeService::CloseAppChannel() { | 74 void ArcBridgeService::CloseAppChannel() { |
75 DCHECK(CalledOnValidThread()); | 75 DCHECK(CalledOnValidThread()); |
76 if (!app_ptr_) | 76 if (!app_ptr_) |
77 return; | 77 return; |
78 | 78 |
79 app_ptr_.reset(); | 79 app_ptr_.reset(); |
80 FOR_EACH_OBSERVER(Observer, observer_list(), OnAppInstanceClosed()); | 80 FOR_EACH_OBSERVER(Observer, observer_list(), OnAppInstanceClosed()); |
81 } | 81 } |
82 | 82 |
83 void ArcBridgeService::OnAuthInstanceReady(AuthInstancePtr auth_ptr) { | 83 void ArcBridgeService::OnAuthInstanceReady(AuthInstancePtr auth_ptr) { |
84 DCHECK(CalledOnValidThread()); | 84 DCHECK(CalledOnValidThread()); |
85 temporary_auth_ptr_ = std::move(auth_ptr); | 85 temporary_auth_ptr_ = std::move(auth_ptr); |
86 temporary_auth_ptr_.QueryVersion(base::Bind( | 86 temporary_auth_ptr_.QueryVersion(base::Bind( |
87 &ArcBridgeService::OnAuthVersionReady, weak_factory_.GetWeakPtr())); | 87 &ArcBridgeService::OnAuthVersionReady, weak_factory_.GetWeakPtr())); |
88 } | 88 } |
89 | 89 |
90 void ArcBridgeService::OnAuthVersionReady(int32_t version) { | 90 void ArcBridgeService::OnAuthVersionReady(int32_t version) { |
91 DCHECK(CalledOnValidThread()); | 91 DCHECK(CalledOnValidThread()); |
92 auth_ptr_ = std::move(temporary_auth_ptr_); | 92 auth_ptr_ = std::move(temporary_auth_ptr_); |
93 FOR_EACH_OBSERVER(Observer, observer_list(), OnAuthInstanceReady()); | |
94 auth_ptr_.set_connection_error_handler(base::Bind( | 93 auth_ptr_.set_connection_error_handler(base::Bind( |
95 &ArcBridgeService::CloseAuthChannel, weak_factory_.GetWeakPtr())); | 94 &ArcBridgeService::CloseAuthChannel, weak_factory_.GetWeakPtr())); |
| 95 FOR_EACH_OBSERVER(Observer, observer_list(), OnAuthInstanceReady()); |
96 } | 96 } |
97 | 97 |
98 void ArcBridgeService::CloseAuthChannel() { | 98 void ArcBridgeService::CloseAuthChannel() { |
99 DCHECK(CalledOnValidThread()); | 99 DCHECK(CalledOnValidThread()); |
100 if (!input_ptr_) | 100 if (!input_ptr_) |
101 return; | 101 return; |
102 | 102 |
103 auth_ptr_.reset(); | 103 auth_ptr_.reset(); |
104 FOR_EACH_OBSERVER(Observer, observer_list(), OnAuthInstanceClosed()); | 104 FOR_EACH_OBSERVER(Observer, observer_list(), OnAuthInstanceClosed()); |
105 } | 105 } |
106 | 106 |
107 void ArcBridgeService::OnClipboardInstanceReady( | 107 void ArcBridgeService::OnClipboardInstanceReady( |
108 ClipboardInstancePtr clipboard_ptr) { | 108 ClipboardInstancePtr clipboard_ptr) { |
109 DCHECK(CalledOnValidThread()); | 109 DCHECK(CalledOnValidThread()); |
110 temporary_clipboard_ptr_ = std::move(clipboard_ptr); | 110 temporary_clipboard_ptr_ = std::move(clipboard_ptr); |
111 temporary_clipboard_ptr_.QueryVersion(base::Bind( | 111 temporary_clipboard_ptr_.QueryVersion(base::Bind( |
112 &ArcBridgeService::OnClipboardVersionReady, weak_factory_.GetWeakPtr())); | 112 &ArcBridgeService::OnClipboardVersionReady, weak_factory_.GetWeakPtr())); |
113 } | 113 } |
114 | 114 |
115 void ArcBridgeService::OnClipboardVersionReady(int32_t version) { | 115 void ArcBridgeService::OnClipboardVersionReady(int32_t version) { |
116 DCHECK(CalledOnValidThread()); | 116 DCHECK(CalledOnValidThread()); |
117 clipboard_ptr_ = std::move(temporary_clipboard_ptr_); | 117 clipboard_ptr_ = std::move(temporary_clipboard_ptr_); |
118 FOR_EACH_OBSERVER(Observer, observer_list(), OnClipboardInstanceReady()); | |
119 clipboard_ptr_.set_connection_error_handler(base::Bind( | 118 clipboard_ptr_.set_connection_error_handler(base::Bind( |
120 &ArcBridgeService::CloseClipboardChannel, weak_factory_.GetWeakPtr())); | 119 &ArcBridgeService::CloseClipboardChannel, weak_factory_.GetWeakPtr())); |
| 120 FOR_EACH_OBSERVER(Observer, observer_list(), OnClipboardInstanceReady()); |
121 } | 121 } |
122 | 122 |
123 void ArcBridgeService::CloseClipboardChannel() { | 123 void ArcBridgeService::CloseClipboardChannel() { |
124 DCHECK(CalledOnValidThread()); | 124 DCHECK(CalledOnValidThread()); |
125 if (!clipboard_ptr_) | 125 if (!clipboard_ptr_) |
126 return; | 126 return; |
127 | 127 |
128 clipboard_ptr_.reset(); | 128 clipboard_ptr_.reset(); |
129 FOR_EACH_OBSERVER(Observer, observer_list(), OnClipboardInstanceClosed()); | 129 FOR_EACH_OBSERVER(Observer, observer_list(), OnClipboardInstanceClosed()); |
130 } | 130 } |
131 | 131 |
132 void ArcBridgeService::OnInputInstanceReady(InputInstancePtr input_ptr) { | 132 void ArcBridgeService::OnInputInstanceReady(InputInstancePtr input_ptr) { |
133 DCHECK(CalledOnValidThread()); | 133 DCHECK(CalledOnValidThread()); |
134 temporary_input_ptr_ = std::move(input_ptr); | 134 temporary_input_ptr_ = std::move(input_ptr); |
135 temporary_input_ptr_.QueryVersion(base::Bind( | 135 temporary_input_ptr_.QueryVersion(base::Bind( |
136 &ArcBridgeService::OnInputVersionReady, weak_factory_.GetWeakPtr())); | 136 &ArcBridgeService::OnInputVersionReady, weak_factory_.GetWeakPtr())); |
137 } | 137 } |
138 | 138 |
139 void ArcBridgeService::OnInputVersionReady(int32_t version) { | 139 void ArcBridgeService::OnInputVersionReady(int32_t version) { |
140 DCHECK(CalledOnValidThread()); | 140 DCHECK(CalledOnValidThread()); |
141 input_ptr_ = std::move(temporary_input_ptr_); | 141 input_ptr_ = std::move(temporary_input_ptr_); |
142 FOR_EACH_OBSERVER(Observer, observer_list(), OnInputInstanceReady()); | |
143 input_ptr_.set_connection_error_handler(base::Bind( | 142 input_ptr_.set_connection_error_handler(base::Bind( |
144 &ArcBridgeService::CloseInputChannel, weak_factory_.GetWeakPtr())); | 143 &ArcBridgeService::CloseInputChannel, weak_factory_.GetWeakPtr())); |
| 144 FOR_EACH_OBSERVER(Observer, observer_list(), OnInputInstanceReady()); |
145 } | 145 } |
146 | 146 |
147 void ArcBridgeService::CloseInputChannel() { | 147 void ArcBridgeService::CloseInputChannel() { |
148 DCHECK(CalledOnValidThread()); | 148 DCHECK(CalledOnValidThread()); |
149 if (!input_ptr_) | 149 if (!input_ptr_) |
150 return; | 150 return; |
151 | 151 |
152 input_ptr_.reset(); | 152 input_ptr_.reset(); |
153 FOR_EACH_OBSERVER(Observer, observer_list(), OnInputInstanceClosed()); | 153 FOR_EACH_OBSERVER(Observer, observer_list(), OnInputInstanceClosed()); |
154 } | 154 } |
155 | 155 |
156 void ArcBridgeService::OnNotificationsInstanceReady( | 156 void ArcBridgeService::OnNotificationsInstanceReady( |
157 NotificationsInstancePtr notifications_ptr) { | 157 NotificationsInstancePtr notifications_ptr) { |
158 DCHECK(CalledOnValidThread()); | 158 DCHECK(CalledOnValidThread()); |
159 temporary_notifications_ptr_ = std::move(notifications_ptr); | 159 temporary_notifications_ptr_ = std::move(notifications_ptr); |
160 temporary_notifications_ptr_.QueryVersion( | 160 temporary_notifications_ptr_.QueryVersion( |
161 base::Bind(&ArcBridgeService::OnNotificationsVersionReady, | 161 base::Bind(&ArcBridgeService::OnNotificationsVersionReady, |
162 weak_factory_.GetWeakPtr())); | 162 weak_factory_.GetWeakPtr())); |
163 } | 163 } |
164 | 164 |
165 void ArcBridgeService::OnNotificationsVersionReady(int32_t version) { | 165 void ArcBridgeService::OnNotificationsVersionReady(int32_t version) { |
166 DCHECK(CalledOnValidThread()); | 166 DCHECK(CalledOnValidThread()); |
167 notifications_ptr_ = std::move(temporary_notifications_ptr_); | 167 notifications_ptr_ = std::move(temporary_notifications_ptr_); |
168 FOR_EACH_OBSERVER(Observer, observer_list(), OnNotificationsInstanceReady()); | |
169 notifications_ptr_.set_connection_error_handler( | 168 notifications_ptr_.set_connection_error_handler( |
170 base::Bind(&ArcBridgeService::CloseNotificationsChannel, | 169 base::Bind(&ArcBridgeService::CloseNotificationsChannel, |
171 weak_factory_.GetWeakPtr())); | 170 weak_factory_.GetWeakPtr())); |
| 171 FOR_EACH_OBSERVER(Observer, observer_list(), OnNotificationsInstanceReady()); |
172 } | 172 } |
173 | 173 |
174 void ArcBridgeService::CloseNotificationsChannel() { | 174 void ArcBridgeService::CloseNotificationsChannel() { |
175 DCHECK(CalledOnValidThread()); | 175 DCHECK(CalledOnValidThread()); |
176 if (!notifications_ptr_) | 176 if (!notifications_ptr_) |
177 return; | 177 return; |
178 | 178 |
179 notifications_ptr_.reset(); | 179 notifications_ptr_.reset(); |
180 FOR_EACH_OBSERVER(Observer, observer_list(), OnNotificationsInstanceClosed()); | 180 FOR_EACH_OBSERVER(Observer, observer_list(), OnNotificationsInstanceClosed()); |
181 } | 181 } |
182 | 182 |
183 void ArcBridgeService::OnPowerInstanceReady(PowerInstancePtr power_ptr) { | 183 void ArcBridgeService::OnPowerInstanceReady(PowerInstancePtr power_ptr) { |
184 DCHECK(CalledOnValidThread()); | 184 DCHECK(CalledOnValidThread()); |
185 temporary_power_ptr_ = std::move(power_ptr); | 185 temporary_power_ptr_ = std::move(power_ptr); |
186 temporary_power_ptr_.QueryVersion(base::Bind( | 186 temporary_power_ptr_.QueryVersion(base::Bind( |
187 &ArcBridgeService::OnPowerVersionReady, weak_factory_.GetWeakPtr())); | 187 &ArcBridgeService::OnPowerVersionReady, weak_factory_.GetWeakPtr())); |
188 } | 188 } |
189 | 189 |
190 void ArcBridgeService::OnPowerVersionReady(int32_t version) { | 190 void ArcBridgeService::OnPowerVersionReady(int32_t version) { |
191 DCHECK(CalledOnValidThread()); | 191 DCHECK(CalledOnValidThread()); |
192 power_ptr_ = std::move(temporary_power_ptr_); | 192 power_ptr_ = std::move(temporary_power_ptr_); |
193 FOR_EACH_OBSERVER(Observer, observer_list(), OnPowerInstanceReady()); | |
194 power_ptr_.set_connection_error_handler(base::Bind( | 193 power_ptr_.set_connection_error_handler(base::Bind( |
195 &ArcBridgeService::ClosePowerChannel, weak_factory_.GetWeakPtr())); | 194 &ArcBridgeService::ClosePowerChannel, weak_factory_.GetWeakPtr())); |
| 195 FOR_EACH_OBSERVER(Observer, observer_list(), OnPowerInstanceReady()); |
196 } | 196 } |
197 | 197 |
198 void ArcBridgeService::ClosePowerChannel() { | 198 void ArcBridgeService::ClosePowerChannel() { |
199 DCHECK(CalledOnValidThread()); | 199 DCHECK(CalledOnValidThread()); |
200 if (!power_ptr_) | 200 if (!power_ptr_) |
201 return; | 201 return; |
202 | 202 |
203 power_ptr_.reset(); | 203 power_ptr_.reset(); |
204 FOR_EACH_OBSERVER(Observer, observer_list(), OnPowerInstanceClosed()); | 204 FOR_EACH_OBSERVER(Observer, observer_list(), OnPowerInstanceClosed()); |
205 } | 205 } |
206 | 206 |
207 void ArcBridgeService::OnProcessInstanceReady(ProcessInstancePtr process_ptr) { | 207 void ArcBridgeService::OnProcessInstanceReady(ProcessInstancePtr process_ptr) { |
208 DCHECK(CalledOnValidThread()); | 208 DCHECK(CalledOnValidThread()); |
209 temporary_process_ptr_ = std::move(process_ptr); | 209 temporary_process_ptr_ = std::move(process_ptr); |
210 temporary_process_ptr_.QueryVersion(base::Bind( | 210 temporary_process_ptr_.QueryVersion(base::Bind( |
211 &ArcBridgeService::OnProcessVersionReady, weak_factory_.GetWeakPtr())); | 211 &ArcBridgeService::OnProcessVersionReady, weak_factory_.GetWeakPtr())); |
212 } | 212 } |
213 | 213 |
214 void ArcBridgeService::OnProcessVersionReady(int32_t version) { | 214 void ArcBridgeService::OnProcessVersionReady(int32_t version) { |
215 DCHECK(CalledOnValidThread()); | 215 DCHECK(CalledOnValidThread()); |
216 process_ptr_ = std::move(temporary_process_ptr_); | 216 process_ptr_ = std::move(temporary_process_ptr_); |
217 FOR_EACH_OBSERVER(Observer, observer_list(), OnProcessInstanceReady()); | |
218 process_ptr_.set_connection_error_handler(base::Bind( | 217 process_ptr_.set_connection_error_handler(base::Bind( |
219 &ArcBridgeService::CloseProcessChannel, weak_factory_.GetWeakPtr())); | 218 &ArcBridgeService::CloseProcessChannel, weak_factory_.GetWeakPtr())); |
| 219 FOR_EACH_OBSERVER(Observer, observer_list(), OnProcessInstanceReady()); |
220 } | 220 } |
221 | 221 |
222 void ArcBridgeService::CloseProcessChannel() { | 222 void ArcBridgeService::CloseProcessChannel() { |
223 DCHECK(CalledOnValidThread()); | 223 DCHECK(CalledOnValidThread()); |
224 if (!process_ptr_) | 224 if (!process_ptr_) |
225 return; | 225 return; |
226 | 226 |
227 process_ptr_.reset(); | 227 process_ptr_.reset(); |
228 FOR_EACH_OBSERVER(Observer, observer_list(), OnProcessInstanceClosed()); | 228 FOR_EACH_OBSERVER(Observer, observer_list(), OnProcessInstanceClosed()); |
229 } | 229 } |
230 | 230 |
231 void ArcBridgeService::OnSettingsInstanceReady( | 231 void ArcBridgeService::OnSettingsInstanceReady( |
232 SettingsInstancePtr settings_ptr) { | 232 SettingsInstancePtr settings_ptr) { |
233 DCHECK(CalledOnValidThread()); | 233 DCHECK(CalledOnValidThread()); |
234 temporary_settings_ptr_ = std::move(settings_ptr); | 234 temporary_settings_ptr_ = std::move(settings_ptr); |
235 temporary_settings_ptr_.QueryVersion(base::Bind( | 235 temporary_settings_ptr_.QueryVersion(base::Bind( |
236 &ArcBridgeService::OnSettingsVersionReady, weak_factory_.GetWeakPtr())); | 236 &ArcBridgeService::OnSettingsVersionReady, weak_factory_.GetWeakPtr())); |
237 } | 237 } |
238 | 238 |
239 void ArcBridgeService::OnSettingsVersionReady(int32_t version) { | 239 void ArcBridgeService::OnSettingsVersionReady(int32_t version) { |
| 240 DCHECK(CalledOnValidThread()); |
240 settings_ptr_ = std::move(temporary_settings_ptr_); | 241 settings_ptr_ = std::move(temporary_settings_ptr_); |
241 FOR_EACH_OBSERVER(Observer, observer_list(), OnSettingsInstanceReady()); | |
242 settings_ptr_.set_connection_error_handler(base::Bind( | 242 settings_ptr_.set_connection_error_handler(base::Bind( |
243 &ArcBridgeService::CloseSettingsChannel, weak_factory_.GetWeakPtr())); | 243 &ArcBridgeService::CloseSettingsChannel, weak_factory_.GetWeakPtr())); |
| 244 FOR_EACH_OBSERVER(Observer, observer_list(), OnSettingsInstanceReady()); |
244 } | 245 } |
245 | 246 |
246 void ArcBridgeService::CloseSettingsChannel() { | 247 void ArcBridgeService::CloseSettingsChannel() { |
247 DCHECK(CalledOnValidThread()); | 248 DCHECK(CalledOnValidThread()); |
248 if (!settings_ptr_) | 249 if (!settings_ptr_) |
249 return; | 250 return; |
250 | 251 |
251 settings_ptr_.reset(); | 252 settings_ptr_.reset(); |
252 FOR_EACH_OBSERVER(Observer, observer_list(), OnSettingsInstanceClosed()); | 253 FOR_EACH_OBSERVER(Observer, observer_list(), OnSettingsInstanceClosed()); |
253 } | 254 } |
254 | 255 |
255 void ArcBridgeService::OnVideoInstanceReady(VideoInstancePtr video_ptr) { | 256 void ArcBridgeService::OnVideoInstanceReady(VideoInstancePtr video_ptr) { |
256 DCHECK(CalledOnValidThread()); | 257 DCHECK(CalledOnValidThread()); |
257 temporary_video_ptr_ = std::move(video_ptr); | 258 temporary_video_ptr_ = std::move(video_ptr); |
258 temporary_video_ptr_.QueryVersion(base::Bind( | 259 temporary_video_ptr_.QueryVersion(base::Bind( |
259 &ArcBridgeService::OnVideoVersionReady, weak_factory_.GetWeakPtr())); | 260 &ArcBridgeService::OnVideoVersionReady, weak_factory_.GetWeakPtr())); |
260 } | 261 } |
261 | 262 |
262 void ArcBridgeService::OnVideoVersionReady(int32_t version) { | 263 void ArcBridgeService::OnVideoVersionReady(int32_t version) { |
| 264 DCHECK(CalledOnValidThread()); |
263 video_ptr_ = std::move(temporary_video_ptr_); | 265 video_ptr_ = std::move(temporary_video_ptr_); |
264 FOR_EACH_OBSERVER(Observer, observer_list(), OnVideoInstanceReady()); | |
265 video_ptr_.set_connection_error_handler(base::Bind( | 266 video_ptr_.set_connection_error_handler(base::Bind( |
266 &ArcBridgeService::CloseVideoChannel, weak_factory_.GetWeakPtr())); | 267 &ArcBridgeService::CloseVideoChannel, weak_factory_.GetWeakPtr())); |
| 268 FOR_EACH_OBSERVER(Observer, observer_list(), OnVideoInstanceReady()); |
267 } | 269 } |
268 | 270 |
269 void ArcBridgeService::CloseVideoChannel() { | 271 void ArcBridgeService::CloseVideoChannel() { |
270 DCHECK(CalledOnValidThread()); | 272 DCHECK(CalledOnValidThread()); |
271 if (!video_ptr_) | 273 if (!video_ptr_) |
272 return; | 274 return; |
273 | 275 |
274 video_ptr_.reset(); | 276 video_ptr_.reset(); |
275 FOR_EACH_OBSERVER(Observer, observer_list(), OnVideoInstanceClosed()); | 277 FOR_EACH_OBSERVER(Observer, observer_list(), OnVideoInstanceClosed()); |
276 } | 278 } |
(...skipping 25 matching lines...) Expand all Loading... |
302 CloseClipboardChannel(); | 304 CloseClipboardChannel(); |
303 CloseInputChannel(); | 305 CloseInputChannel(); |
304 CloseNotificationsChannel(); | 306 CloseNotificationsChannel(); |
305 ClosePowerChannel(); | 307 ClosePowerChannel(); |
306 CloseProcessChannel(); | 308 CloseProcessChannel(); |
307 CloseSettingsChannel(); | 309 CloseSettingsChannel(); |
308 CloseVideoChannel(); | 310 CloseVideoChannel(); |
309 } | 311 } |
310 | 312 |
311 } // namespace arc | 313 } // namespace arc |
OLD | NEW |