Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(57)

Side by Side Diff: components/arc/arc_bridge_service.cc

Issue 1584763002: Call FOR_EACH_OBSERVER after setting error handler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698