OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/browser/policy/configuration_policy_provider_mac.h" | 5 #include "chrome/browser/policy/configuration_policy_provider_mac.h" |
6 | 6 |
7 #include "base/file_path.h" | 7 #include "base/file_path.h" |
8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
9 #include "base/mac/scoped_cftyperef.h" | 9 #include "base/mac/scoped_cftyperef.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
11 #include "base/platform_file.h" | 11 #include "base/platform_file.h" |
12 #include "base/sys_string_conversions.h" | 12 #include "base/sys_string_conversions.h" |
13 #include "chrome/browser/preferences_mac.h" | 13 #include "chrome/browser/preferences_mac.h" |
14 #include "chrome/common/chrome_paths.h" | 14 #include "chrome/common/chrome_paths.h" |
| 15 #include "policy/policy_constants.h" |
15 | 16 |
16 namespace policy { | 17 namespace policy { |
17 | 18 |
18 namespace { | 19 namespace { |
19 | 20 |
20 FilePath GetManagedPolicyPath() { | 21 FilePath GetManagedPolicyPath() { |
21 // This constructs the path to the plist file in which Mac OS X stores the | 22 // This constructs the path to the plist file in which Mac OS X stores the |
22 // managed preference for the application. This is undocumented and therefore | 23 // managed preference for the application. This is undocumented and therefore |
23 // fragile, but if it doesn't work out, FileBasedPolicyLoader has a task that | 24 // fragile, but if it doesn't work out, FileBasedPolicyLoader has a task that |
24 // polls periodically in order to reload managed preferences later even if we | 25 // polls periodically in order to reload managed preferences later even if we |
(...skipping 10 matching lines...) Expand all Loading... |
35 if (!bundle_id) | 36 if (!bundle_id) |
36 return FilePath(); | 37 return FilePath(); |
37 | 38 |
38 return path.Append(base::SysCFStringRefToUTF8(bundle_id) + ".plist"); | 39 return path.Append(base::SysCFStringRefToUTF8(bundle_id) + ".plist"); |
39 } | 40 } |
40 | 41 |
41 } // namespace | 42 } // namespace |
42 | 43 |
43 MacPreferencesPolicyProviderDelegate::MacPreferencesPolicyProviderDelegate( | 44 MacPreferencesPolicyProviderDelegate::MacPreferencesPolicyProviderDelegate( |
44 MacPreferences* preferences, | 45 MacPreferences* preferences, |
45 const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list) | 46 const PolicyDefinitionList* policy_list) |
46 : FileBasedPolicyProvider::ProviderDelegate(GetManagedPolicyPath()), | 47 : FileBasedPolicyProvider::ProviderDelegate(GetManagedPolicyPath()), |
47 policy_list_(policy_list), | 48 policy_list_(policy_list), |
48 preferences_(preferences) { | 49 preferences_(preferences) { |
49 } | 50 } |
50 | 51 |
51 MacPreferencesPolicyProviderDelegate::~MacPreferencesPolicyProviderDelegate() {} | 52 MacPreferencesPolicyProviderDelegate::~MacPreferencesPolicyProviderDelegate() {} |
52 | 53 |
53 DictionaryValue* MacPreferencesPolicyProviderDelegate::Load() { | 54 DictionaryValue* MacPreferencesPolicyProviderDelegate::Load() { |
54 preferences_->AppSynchronize(kCFPreferencesCurrentApplication); | 55 preferences_->AppSynchronize(kCFPreferencesCurrentApplication); |
55 DictionaryValue* policy = new DictionaryValue; | 56 DictionaryValue* policy = new DictionaryValue; |
56 | 57 |
57 const ConfigurationPolicyProvider::PolicyDefinitionList::Entry* current; | 58 const PolicyDefinitionList::Entry* current; |
58 for (current = policy_list_->begin; current != policy_list_->end; ++current) { | 59 for (current = policy_list_->begin; current != policy_list_->end; ++current) { |
59 base::mac::ScopedCFTypeRef<CFStringRef> name( | 60 base::mac::ScopedCFTypeRef<CFStringRef> name( |
60 base::SysUTF8ToCFStringRef(current->name)); | 61 base::SysUTF8ToCFStringRef(current->name)); |
61 base::mac::ScopedCFTypeRef<CFPropertyListRef> value( | 62 base::mac::ScopedCFTypeRef<CFPropertyListRef> value( |
62 preferences_->CopyAppValue(name, kCFPreferencesCurrentApplication)); | 63 preferences_->CopyAppValue(name, kCFPreferencesCurrentApplication)); |
63 if (!value.get()) | 64 if (!value.get()) |
64 continue; | 65 continue; |
65 if (!preferences_->AppValueIsForced(name, kCFPreferencesCurrentApplication)) | 66 if (!preferences_->AppValueIsForced(name, kCFPreferencesCurrentApplication)) |
66 continue; | 67 continue; |
67 | 68 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 base::PlatformFileInfo file_info; | 123 base::PlatformFileInfo file_info; |
123 if (!file_util::GetFileInfo(config_file_path(), &file_info) || | 124 if (!file_util::GetFileInfo(config_file_path(), &file_info) || |
124 file_info.is_directory) { | 125 file_info.is_directory) { |
125 return base::Time(); | 126 return base::Time(); |
126 } | 127 } |
127 | 128 |
128 return file_info.last_modified; | 129 return file_info.last_modified; |
129 } | 130 } |
130 | 131 |
131 ConfigurationPolicyProviderMac::ConfigurationPolicyProviderMac( | 132 ConfigurationPolicyProviderMac::ConfigurationPolicyProviderMac( |
132 const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list) | 133 const PolicyDefinitionList* policy_list) |
133 : FileBasedPolicyProvider(policy_list, | 134 : FileBasedPolicyProvider(policy_list, |
134 new MacPreferencesPolicyProviderDelegate(new MacPreferences, | 135 new MacPreferencesPolicyProviderDelegate(new MacPreferences, |
135 policy_list)) { | 136 policy_list)) { |
136 } | 137 } |
137 | 138 |
138 ConfigurationPolicyProviderMac::ConfigurationPolicyProviderMac( | 139 ConfigurationPolicyProviderMac::ConfigurationPolicyProviderMac( |
139 const ConfigurationPolicyProvider::PolicyDefinitionList* policy_list, | 140 const PolicyDefinitionList* policy_list, |
140 MacPreferences* preferences) | 141 MacPreferences* preferences) |
141 : FileBasedPolicyProvider(policy_list, | 142 : FileBasedPolicyProvider(policy_list, |
142 new MacPreferencesPolicyProviderDelegate(preferences, | 143 new MacPreferencesPolicyProviderDelegate(preferences, |
143 policy_list)) { | 144 policy_list)) { |
144 } | 145 } |
145 | 146 |
146 } // namespace policy | 147 } // namespace policy |
OLD | NEW |