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 "sync/util/get_session_name_mac.h" | 5 #include "sync/util/get_session_name_mac.h" |
6 | 6 |
7 #import <Foundation/Foundation.h> | |
8 #import <SystemConfiguration/SCDynamicStoreCopySpecific.h> | 7 #import <SystemConfiguration/SCDynamicStoreCopySpecific.h> |
9 #include <sys/sysctl.h> // sysctlbyname() | |
10 | 8 |
11 #include "base/mac/foundation_util.h" | 9 #include "base/mac/scoped_cftyperef.h" |
12 #include "base/mac/mac_util.h" | |
13 #include "base/memory/scoped_nsobject.h" | |
14 #include "base/string_util.h" | |
15 #include "base/sys_info.h" | |
16 #include "base/sys_string_conversions.h" | 10 #include "base/sys_string_conversions.h" |
17 | 11 |
18 namespace syncer { | 12 namespace syncer { |
19 namespace internal { | 13 namespace internal { |
20 | 14 |
21 std::string GetHardwareModelName() { | 15 std::string GetHardwareModelName() { |
22 NSHost* myHost = [NSHost currentHost]; | 16 // Do not use NSHost currentHost, as it's very slow. http://crbug.com/138570 |
23 return base::SysNSStringToUTF8([myHost localizedName]); | 17 SCDynamicStoreContext context = { 0, NULL, NULL, NULL }; |
| 18 base::mac::ScopedCFTypeRef<SCDynamicStoreRef> store( |
| 19 SCDynamicStoreCreate(kCFAllocatorDefault, CFSTR("policy_subsystem"), |
| 20 NULL, &context)); |
| 21 CFStringRef machine_name = SCDynamicStoreCopyLocalHostName(store.get()); |
| 22 return base::SysCFStringRefToUTF8(machine_name); |
24 } | 23 } |
25 | 24 |
26 } // namespace internal | 25 } // namespace internal |
27 } // namespace syncer | 26 } // namespace syncer |
OLD | NEW |