diff options
Diffstat (limited to 'sync')
-rw-r--r-- | sync/util/get_session_name_mac.mm | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/sync/util/get_session_name_mac.mm b/sync/util/get_session_name_mac.mm index e7d29c4..b8eb25e 100644 --- a/sync/util/get_session_name_mac.mm +++ b/sync/util/get_session_name_mac.mm @@ -4,23 +4,22 @@ #include "sync/util/get_session_name_mac.h" -#import <Foundation/Foundation.h> #import <SystemConfiguration/SCDynamicStoreCopySpecific.h> -#include <sys/sysctl.h> // sysctlbyname() -#include "base/mac/foundation_util.h" -#include "base/mac/mac_util.h" -#include "base/memory/scoped_nsobject.h" -#include "base/string_util.h" -#include "base/sys_info.h" +#include "base/mac/scoped_cftyperef.h" #include "base/sys_string_conversions.h" namespace syncer { namespace internal { std::string GetHardwareModelName() { - NSHost* myHost = [NSHost currentHost]; - return base::SysNSStringToUTF8([myHost localizedName]); + // Do not use NSHost currentHost, as it's very slow. http://crbug.com/138570 + SCDynamicStoreContext context = { 0, NULL, NULL, NULL }; + base::mac::ScopedCFTypeRef<SCDynamicStoreRef> store( + SCDynamicStoreCreate(kCFAllocatorDefault, CFSTR("policy_subsystem"), + NULL, &context)); + CFStringRef machine_name = SCDynamicStoreCopyLocalHostName(store.get()); + return base::SysCFStringRefToUTF8(machine_name); } } // namespace internal |