summaryrefslogtreecommitdiffstats
path: root/sync
diff options
context:
space:
mode:
Diffstat (limited to 'sync')
-rw-r--r--sync/util/get_session_name_mac.mm17
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