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 "chrome/browser/content_settings/content_settings_policy_provider.h" | 5 #include "chrome/browser/content_settings/content_settings_policy_provider.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
11 #include "base/values.h" | 11 #include "base/values.h" |
12 #include "chrome/browser/content_settings/content_settings_rule.h" | 12 #include "chrome/browser/content_settings/content_settings_rule.h" |
13 #include "chrome/browser/content_settings/content_settings_utils.h" | 13 #include "chrome/browser/content_settings/content_settings_utils.h" |
| 14 #include "chrome/browser/prefs/pref_registry_syncable.h" |
14 #include "chrome/browser/prefs/pref_service.h" | 15 #include "chrome/browser/prefs/pref_service.h" |
15 #include "chrome/common/chrome_notification_types.h" | 16 #include "chrome/common/chrome_notification_types.h" |
16 #include "chrome/common/content_settings_pattern.h" | 17 #include "chrome/common/content_settings_pattern.h" |
17 #include "chrome/common/pref_names.h" | 18 #include "chrome/common/pref_names.h" |
18 #include "content/public/browser/browser_thread.h" | 19 #include "content/public/browser/browser_thread.h" |
19 #include "content/public/browser/notification_details.h" | 20 #include "content/public/browser/notification_details.h" |
20 #include "content/public/browser/notification_source.h" | 21 #include "content/public/browser/notification_source.h" |
21 | 22 |
22 using content::BrowserThread; | 23 using content::BrowserThread; |
23 | 24 |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, | 111 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
111 CONTENT_SETTING_BLOCK | 112 CONTENT_SETTING_BLOCK |
112 } | 113 } |
113 }; | 114 }; |
114 | 115 |
115 } // namespace | 116 } // namespace |
116 | 117 |
117 namespace content_settings { | 118 namespace content_settings { |
118 | 119 |
119 // static | 120 // static |
120 void PolicyProvider::RegisterUserPrefs(PrefServiceSyncable* prefs) { | 121 void PolicyProvider::RegisterUserPrefs(PrefRegistrySyncable* registry) { |
121 prefs->RegisterListPref(prefs::kManagedAutoSelectCertificateForUrls, | 122 registry->RegisterListPref(prefs::kManagedAutoSelectCertificateForUrls, |
122 PrefServiceSyncable::UNSYNCABLE_PREF); | 123 PrefRegistrySyncable::UNSYNCABLE_PREF); |
123 prefs->RegisterListPref(prefs::kManagedCookiesAllowedForUrls, | 124 registry->RegisterListPref(prefs::kManagedCookiesAllowedForUrls, |
124 PrefServiceSyncable::UNSYNCABLE_PREF); | 125 PrefRegistrySyncable::UNSYNCABLE_PREF); |
125 prefs->RegisterListPref(prefs::kManagedCookiesBlockedForUrls, | 126 registry->RegisterListPref(prefs::kManagedCookiesBlockedForUrls, |
126 PrefServiceSyncable::UNSYNCABLE_PREF); | 127 PrefRegistrySyncable::UNSYNCABLE_PREF); |
127 prefs->RegisterListPref(prefs::kManagedCookiesSessionOnlyForUrls, | 128 registry->RegisterListPref(prefs::kManagedCookiesSessionOnlyForUrls, |
128 PrefServiceSyncable::UNSYNCABLE_PREF); | 129 PrefRegistrySyncable::UNSYNCABLE_PREF); |
129 prefs->RegisterListPref(prefs::kManagedImagesAllowedForUrls, | 130 registry->RegisterListPref(prefs::kManagedImagesAllowedForUrls, |
130 PrefServiceSyncable::UNSYNCABLE_PREF); | 131 PrefRegistrySyncable::UNSYNCABLE_PREF); |
131 prefs->RegisterListPref(prefs::kManagedImagesBlockedForUrls, | 132 registry->RegisterListPref(prefs::kManagedImagesBlockedForUrls, |
132 PrefServiceSyncable::UNSYNCABLE_PREF); | 133 PrefRegistrySyncable::UNSYNCABLE_PREF); |
133 prefs->RegisterListPref(prefs::kManagedJavaScriptAllowedForUrls, | 134 registry->RegisterListPref(prefs::kManagedJavaScriptAllowedForUrls, |
134 PrefServiceSyncable::UNSYNCABLE_PREF); | 135 PrefRegistrySyncable::UNSYNCABLE_PREF); |
135 prefs->RegisterListPref(prefs::kManagedJavaScriptBlockedForUrls, | 136 registry->RegisterListPref(prefs::kManagedJavaScriptBlockedForUrls, |
136 PrefServiceSyncable::UNSYNCABLE_PREF); | 137 PrefRegistrySyncable::UNSYNCABLE_PREF); |
137 prefs->RegisterListPref(prefs::kManagedPluginsAllowedForUrls, | 138 registry->RegisterListPref(prefs::kManagedPluginsAllowedForUrls, |
138 PrefServiceSyncable::UNSYNCABLE_PREF); | 139 PrefRegistrySyncable::UNSYNCABLE_PREF); |
139 prefs->RegisterListPref(prefs::kManagedPluginsBlockedForUrls, | 140 registry->RegisterListPref(prefs::kManagedPluginsBlockedForUrls, |
140 PrefServiceSyncable::UNSYNCABLE_PREF); | 141 PrefRegistrySyncable::UNSYNCABLE_PREF); |
141 prefs->RegisterListPref(prefs::kManagedPopupsAllowedForUrls, | 142 registry->RegisterListPref(prefs::kManagedPopupsAllowedForUrls, |
142 PrefServiceSyncable::UNSYNCABLE_PREF); | 143 PrefRegistrySyncable::UNSYNCABLE_PREF); |
143 prefs->RegisterListPref(prefs::kManagedPopupsBlockedForUrls, | 144 registry->RegisterListPref(prefs::kManagedPopupsBlockedForUrls, |
144 PrefServiceSyncable::UNSYNCABLE_PREF); | 145 PrefRegistrySyncable::UNSYNCABLE_PREF); |
145 prefs->RegisterListPref(prefs::kManagedNotificationsAllowedForUrls, | 146 registry->RegisterListPref(prefs::kManagedNotificationsAllowedForUrls, |
146 PrefServiceSyncable::UNSYNCABLE_PREF); | 147 PrefRegistrySyncable::UNSYNCABLE_PREF); |
147 prefs->RegisterListPref(prefs::kManagedNotificationsBlockedForUrls, | 148 registry->RegisterListPref(prefs::kManagedNotificationsBlockedForUrls, |
148 PrefServiceSyncable::UNSYNCABLE_PREF); | 149 PrefRegistrySyncable::UNSYNCABLE_PREF); |
149 // Preferences for default content setting policies. If a policy is not set of | 150 // Preferences for default content setting policies. If a policy is not set of |
150 // the corresponding preferences below is set to CONTENT_SETTING_DEFAULT. | 151 // the corresponding preferences below is set to CONTENT_SETTING_DEFAULT. |
151 prefs->RegisterIntegerPref(prefs::kManagedDefaultCookiesSetting, | 152 registry->RegisterIntegerPref(prefs::kManagedDefaultCookiesSetting, |
152 CONTENT_SETTING_DEFAULT, | 153 CONTENT_SETTING_DEFAULT, |
153 PrefServiceSyncable::UNSYNCABLE_PREF); | 154 PrefRegistrySyncable::UNSYNCABLE_PREF); |
154 prefs->RegisterIntegerPref(prefs::kManagedDefaultImagesSetting, | 155 registry->RegisterIntegerPref(prefs::kManagedDefaultImagesSetting, |
155 CONTENT_SETTING_DEFAULT, | 156 CONTENT_SETTING_DEFAULT, |
156 PrefServiceSyncable::UNSYNCABLE_PREF); | 157 PrefRegistrySyncable::UNSYNCABLE_PREF); |
157 prefs->RegisterIntegerPref(prefs::kManagedDefaultJavaScriptSetting, | 158 registry->RegisterIntegerPref(prefs::kManagedDefaultJavaScriptSetting, |
158 CONTENT_SETTING_DEFAULT, | 159 CONTENT_SETTING_DEFAULT, |
159 PrefServiceSyncable::UNSYNCABLE_PREF); | 160 PrefRegistrySyncable::UNSYNCABLE_PREF); |
160 prefs->RegisterIntegerPref(prefs::kManagedDefaultPluginsSetting, | 161 registry->RegisterIntegerPref(prefs::kManagedDefaultPluginsSetting, |
161 CONTENT_SETTING_DEFAULT, | 162 CONTENT_SETTING_DEFAULT, |
162 PrefServiceSyncable::UNSYNCABLE_PREF); | 163 PrefRegistrySyncable::UNSYNCABLE_PREF); |
163 prefs->RegisterIntegerPref(prefs::kManagedDefaultPopupsSetting, | 164 registry->RegisterIntegerPref(prefs::kManagedDefaultPopupsSetting, |
164 CONTENT_SETTING_DEFAULT, | 165 CONTENT_SETTING_DEFAULT, |
165 PrefServiceSyncable::UNSYNCABLE_PREF); | 166 PrefRegistrySyncable::UNSYNCABLE_PREF); |
166 prefs->RegisterIntegerPref(prefs::kManagedDefaultGeolocationSetting, | 167 registry->RegisterIntegerPref(prefs::kManagedDefaultGeolocationSetting, |
167 CONTENT_SETTING_DEFAULT, | 168 CONTENT_SETTING_DEFAULT, |
168 PrefServiceSyncable::UNSYNCABLE_PREF); | 169 PrefRegistrySyncable::UNSYNCABLE_PREF); |
169 prefs->RegisterIntegerPref(prefs::kManagedDefaultNotificationsSetting, | 170 registry->RegisterIntegerPref(prefs::kManagedDefaultNotificationsSetting, |
170 CONTENT_SETTING_DEFAULT, | 171 CONTENT_SETTING_DEFAULT, |
171 PrefServiceSyncable::UNSYNCABLE_PREF); | 172 PrefRegistrySyncable::UNSYNCABLE_PREF); |
172 prefs->RegisterIntegerPref(prefs::kManagedDefaultMediaStreamSetting, | 173 registry->RegisterIntegerPref(prefs::kManagedDefaultMediaStreamSetting, |
173 CONTENT_SETTING_DEFAULT, | 174 CONTENT_SETTING_DEFAULT, |
174 PrefServiceSyncable::UNSYNCABLE_PREF); | 175 PrefRegistrySyncable::UNSYNCABLE_PREF); |
175 } | 176 } |
176 | 177 |
177 PolicyProvider::PolicyProvider(PrefService* prefs) : prefs_(prefs) { | 178 PolicyProvider::PolicyProvider(PrefService* prefs) : prefs_(prefs) { |
178 ReadManagedDefaultSettings(); | 179 ReadManagedDefaultSettings(); |
179 ReadManagedContentSettings(false); | 180 ReadManagedContentSettings(false); |
180 | 181 |
181 pref_change_registrar_.Init(prefs_); | 182 pref_change_registrar_.Init(prefs_); |
182 PrefChangeRegistrar::NamedChangeCallback callback = | 183 PrefChangeRegistrar::NamedChangeCallback callback = |
183 base::Bind(&PolicyProvider::OnPreferenceChanged, base::Unretained(this)); | 184 base::Bind(&PolicyProvider::OnPreferenceChanged, base::Unretained(this)); |
184 pref_change_registrar_.Add( | 185 pref_change_registrar_.Add( |
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
473 ReadManagedDefaultSettings(); | 474 ReadManagedDefaultSettings(); |
474 } | 475 } |
475 | 476 |
476 NotifyObservers(ContentSettingsPattern(), | 477 NotifyObservers(ContentSettingsPattern(), |
477 ContentSettingsPattern(), | 478 ContentSettingsPattern(), |
478 CONTENT_SETTINGS_TYPE_DEFAULT, | 479 CONTENT_SETTINGS_TYPE_DEFAULT, |
479 std::string()); | 480 std::string()); |
480 } | 481 } |
481 | 482 |
482 } // namespace content_settings | 483 } // namespace content_settings |
OLD | NEW |