summaryrefslogtreecommitdiffstats
path: root/chrome/app/chrome_main_mac.mm
diff options
context:
space:
mode:
authorpastarmovj@chromium.org <pastarmovj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-14 13:31:15 +0000
committerpastarmovj@chromium.org <pastarmovj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-14 13:31:15 +0000
commitdb778a24822f8324b14d1704752f30bcca51e799 (patch)
treeda134b4895dd6f55b7d4041c1247beb7650e9154 /chrome/app/chrome_main_mac.mm
parent50431b97f7a1e41be35cd03f717fa73fdac9d9a7 (diff)
downloadchromium_src-db778a24822f8324b14d1704752f30bcca51e799.zip
chromium_src-db778a24822f8324b14d1704752f30bcca51e799.tar.gz
chromium_src-db778a24822f8324b14d1704752f30bcca51e799.tar.bz2
Fixed leaky code in the UserDataDir policy code for mac.
BUG=72741 TEST=Valgrind bots should be happy again. Review URL: http://codereview.chromium.org/6475008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74814 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/app/chrome_main_mac.mm')
-rw-r--r--chrome/app/chrome_main_mac.mm22
1 files changed, 9 insertions, 13 deletions
diff --git a/chrome/app/chrome_main_mac.mm b/chrome/app/chrome_main_mac.mm
index 3aca6e4..10239a1 100644
--- a/chrome/app/chrome_main_mac.mm
+++ b/chrome/app/chrome_main_mac.mm
@@ -61,7 +61,7 @@ std::string TranslateMacVariablesInPolicy(
}
position = result.find(kMachineNamePolicyVarName);
if (position != std::string::npos) {
- NSString *machinename = [[NSHost currentHost] name];
+ NSString* machinename = [[NSHost currentHost] name];
if (machinename) {
result.replace(position, strlen(kMachineNamePolicyVarName),
base::SysNSStringToUTF8(machinename));
@@ -79,17 +79,13 @@ std::string TranslateMacVariablesInPolicy(
void CheckUserDataDirPolicy(FilePath* user_data_dir) {
// Since the configuration management infrastructure is not initialized when
// this code runs, read the policy preference directly.
- CFStringRef key = base::SysUTF8ToCFStringRef(policy::key::kUserDataDir);
- CFPropertyListRef value =
- CFPreferencesCopyAppValue(key, kCFPreferencesCurrentApplication);
- if (value &&
- CFPreferencesAppValueIsForced(key, kCFPreferencesCurrentApplication)) {
- if (CFGetTypeID(value) == CFStringGetTypeID()) {
- std::string string_value =
- base::SysCFStringRefToUTF8((CFStringRef)value);
- // Now replace any vars the user might have used.
- string_value = TranslateMacVariablesInPolicy(string_value);
- *user_data_dir = FilePath(string_value);
- }
+ NSString* key = base::SysUTF8ToNSString(policy::key::kUserDataDir);
+ NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
+ NSString* value = [defaults stringForKey:key];
+ if (value && [defaults objectIsForcedForKey:key]) {
+ std::string string_value = base::SysNSStringToUTF8(value);
+ // Now replace any vars the user might have used.
+ string_value = TranslateMacVariablesInPolicy(string_value);
+ *user_data_dir = FilePath(string_value);
}
}