OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <CoreFoundation/CoreFoundation.h> | 5 #include <CoreFoundation/CoreFoundation.h> |
6 | 6 |
7 #include "remoting/host/setup/daemon_controller_delegate_mac.h" | 7 #include "remoting/host/setup/daemon_controller_delegate_mac.h" |
8 | 8 |
9 #include <launch.h> | 9 #include <launch.h> |
10 #include <stdio.h> | 10 #include <stdio.h> |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 // We can only have one callback registered at a time. This is enforced by the | 164 // We can only have one callback registered at a time. This is enforced by the |
165 // UX flow of the web-app. | 165 // UX flow of the web-app. |
166 DCHECK(current_callback_.is_null()); | 166 DCHECK(current_callback_.is_null()); |
167 current_callback_ = done; | 167 current_callback_ = done; |
168 | 168 |
169 CFNotificationCenterAddObserver( | 169 CFNotificationCenterAddObserver( |
170 CFNotificationCenterGetDistributedCenter(), | 170 CFNotificationCenterGetDistributedCenter(), |
171 this, | 171 this, |
172 &DaemonControllerDelegateMac::PreferencePaneCallback, | 172 &DaemonControllerDelegateMac::PreferencePaneCallback, |
173 CFSTR(UPDATE_SUCCEEDED_NOTIFICATION_NAME), | 173 CFSTR(UPDATE_SUCCEEDED_NOTIFICATION_NAME), |
174 NULL, | 174 nullptr, |
175 CFNotificationSuspensionBehaviorDeliverImmediately); | 175 CFNotificationSuspensionBehaviorDeliverImmediately); |
176 CFNotificationCenterAddObserver( | 176 CFNotificationCenterAddObserver( |
177 CFNotificationCenterGetDistributedCenter(), | 177 CFNotificationCenterGetDistributedCenter(), |
178 this, | 178 this, |
179 &DaemonControllerDelegateMac::PreferencePaneCallback, | 179 &DaemonControllerDelegateMac::PreferencePaneCallback, |
180 CFSTR(UPDATE_FAILED_NOTIFICATION_NAME), | 180 CFSTR(UPDATE_FAILED_NOTIFICATION_NAME), |
181 NULL, | 181 nullptr, |
182 CFNotificationSuspensionBehaviorDeliverImmediately); | 182 CFNotificationSuspensionBehaviorDeliverImmediately); |
183 } | 183 } |
184 | 184 |
185 void DaemonControllerDelegateMac::DeregisterForPreferencePaneNotifications() { | 185 void DaemonControllerDelegateMac::DeregisterForPreferencePaneNotifications() { |
186 CFNotificationCenterRemoveObserver( | 186 CFNotificationCenterRemoveObserver( |
187 CFNotificationCenterGetDistributedCenter(), | 187 CFNotificationCenterGetDistributedCenter(), |
188 this, | 188 this, |
189 CFSTR(UPDATE_SUCCEEDED_NOTIFICATION_NAME), | 189 CFSTR(UPDATE_SUCCEEDED_NOTIFICATION_NAME), |
190 NULL); | 190 nullptr); |
191 CFNotificationCenterRemoveObserver( | 191 CFNotificationCenterRemoveObserver( |
192 CFNotificationCenterGetDistributedCenter(), | 192 CFNotificationCenterGetDistributedCenter(), |
193 this, | 193 this, |
194 CFSTR(UPDATE_FAILED_NOTIFICATION_NAME), | 194 CFSTR(UPDATE_FAILED_NOTIFICATION_NAME), |
195 NULL); | 195 nullptr); |
196 } | 196 } |
197 | 197 |
198 void DaemonControllerDelegateMac::PreferencePaneCallbackDelegate( | 198 void DaemonControllerDelegateMac::PreferencePaneCallbackDelegate( |
199 CFStringRef name) { | 199 CFStringRef name) { |
200 DaemonController::AsyncResult result = DaemonController::RESULT_FAILED; | 200 DaemonController::AsyncResult result = DaemonController::RESULT_FAILED; |
201 if (CFStringCompare(name, CFSTR(UPDATE_SUCCEEDED_NOTIFICATION_NAME), 0) == | 201 if (CFStringCompare(name, CFSTR(UPDATE_SUCCEEDED_NOTIFICATION_NAME), 0) == |
202 kCFCompareEqualTo) { | 202 kCFCompareEqualTo) { |
203 result = DaemonController::RESULT_OK; | 203 result = DaemonController::RESULT_OK; |
204 } else if (CFStringCompare(name, CFSTR(UPDATE_FAILED_NOTIFICATION_NAME), 0) == | 204 } else if (CFStringCompare(name, CFSTR(UPDATE_FAILED_NOTIFICATION_NAME), 0) == |
205 kCFCompareEqualTo) { | 205 kCFCompareEqualTo) { |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 LOG(ERROR) << "Failed to get directory for local preference panes."; | 244 LOG(ERROR) << "Failed to get directory for local preference panes."; |
245 return false; | 245 return false; |
246 } | 246 } |
247 pane_path = pane_path.Append("PreferencePanes").Append(kPrefPaneFileName); | 247 pane_path = pane_path.Append("PreferencePanes").Append(kPrefPaneFileName); |
248 | 248 |
249 FSRef pane_path_ref; | 249 FSRef pane_path_ref; |
250 if (!base::mac::FSRefFromPath(pane_path.value(), &pane_path_ref)) { | 250 if (!base::mac::FSRefFromPath(pane_path.value(), &pane_path_ref)) { |
251 LOG(ERROR) << "Failed to create FSRef"; | 251 LOG(ERROR) << "Failed to create FSRef"; |
252 return false; | 252 return false; |
253 } | 253 } |
254 OSStatus status = LSOpenFSRef(&pane_path_ref, NULL); | 254 OSStatus status = LSOpenFSRef(&pane_path_ref, nullptr); |
255 if (status != noErr) { | 255 if (status != noErr) { |
256 OSSTATUS_LOG(ERROR, status) << "LSOpenFSRef failed for path: " | 256 OSSTATUS_LOG(ERROR, status) << "LSOpenFSRef failed for path: " |
257 << pane_path.value(); | 257 << pane_path.value(); |
258 return false; | 258 return false; |
259 } | 259 } |
260 | 260 |
261 CFNotificationCenterRef center = | 261 CFNotificationCenterRef center = |
262 CFNotificationCenterGetDistributedCenter(); | 262 CFNotificationCenterGetDistributedCenter(); |
263 base::ScopedCFTypeRef<CFStringRef> service_name(CFStringCreateWithCString( | 263 base::ScopedCFTypeRef<CFStringRef> service_name(CFStringCreateWithCString( |
264 kCFAllocatorDefault, remoting::kServiceName, kCFStringEncodingUTF8)); | 264 kCFAllocatorDefault, remoting::kServiceName, kCFStringEncodingUTF8)); |
265 CFNotificationCenterPostNotification(center, service_name, NULL, NULL, | 265 CFNotificationCenterPostNotification(center, service_name, nullptr, nullptr, |
266 TRUE); | 266 TRUE); |
267 return true; | 267 return true; |
268 } | 268 } |
269 | 269 |
270 // static | 270 // static |
271 void DaemonControllerDelegateMac::PreferencePaneCallback( | 271 void DaemonControllerDelegateMac::PreferencePaneCallback( |
272 CFNotificationCenterRef center, | 272 CFNotificationCenterRef center, |
273 void* observer, | 273 void* observer, |
274 CFStringRef name, | 274 CFStringRef name, |
275 const void* object, | 275 const void* object, |
276 CFDictionaryRef user_info) { | 276 CFDictionaryRef user_info) { |
277 DaemonControllerDelegateMac* self = | 277 DaemonControllerDelegateMac* self = |
278 reinterpret_cast<DaemonControllerDelegateMac*>(observer); | 278 reinterpret_cast<DaemonControllerDelegateMac*>(observer); |
279 if (!self) { | 279 if (!self) { |
280 LOG(WARNING) << "Ignoring notification with NULL observer: " << name; | 280 LOG(WARNING) << "Ignoring notification with nullptr observer: " << name; |
281 return; | 281 return; |
282 } | 282 } |
283 | 283 |
284 self->PreferencePaneCallbackDelegate(name); | 284 self->PreferencePaneCallbackDelegate(name); |
285 } | 285 } |
286 | 286 |
287 scoped_refptr<DaemonController> DaemonController::Create() { | 287 scoped_refptr<DaemonController> DaemonController::Create() { |
288 scoped_ptr<DaemonController::Delegate> delegate( | 288 scoped_ptr<DaemonController::Delegate> delegate( |
289 new DaemonControllerDelegateMac()); | 289 new DaemonControllerDelegateMac()); |
290 return new DaemonController(delegate.Pass()); | 290 return new DaemonController(delegate.Pass()); |
291 } | 291 } |
292 | 292 |
293 } // namespace remoting | 293 } // namespace remoting |
OLD | NEW |