Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Side by Side Diff: chrome/browser/content_settings/content_settings_policy_provider.cc

Issue 7327007: Moving notification types which are chrome specific to a new header file chrome_notification_type... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/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/command_line.h" 10 #include "base/command_line.h"
11 #include "chrome/browser/content_settings/content_settings_details.h" 11 #include "chrome/browser/content_settings/content_settings_details.h"
12 #include "chrome/browser/content_settings/content_settings_pattern.h" 12 #include "chrome/browser/content_settings/content_settings_pattern.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_service.h" 14 #include "chrome/browser/prefs/pref_service.h"
15 #include "chrome/browser/prefs/scoped_user_pref_update.h" 15 #include "chrome/browser/prefs/scoped_user_pref_update.h"
16 #include "chrome/browser/profiles/profile.h" 16 #include "chrome/browser/profiles/profile.h"
17 #include "chrome/common/chrome_notification_types.h"
17 #include "chrome/common/pref_names.h" 18 #include "chrome/common/pref_names.h"
18 #include "content/browser/browser_thread.h" 19 #include "content/browser/browser_thread.h"
19 #include "content/common/notification_details.h" 20 #include "content/common/notification_details.h"
20 #include "content/common/notification_service.h" 21 #include "content/common/notification_service.h"
21 #include "content/common/notification_source.h" 22 #include "content/common/notification_source.h"
22 #include "webkit/plugins/npapi/plugin_group.h" 23 #include "webkit/plugins/npapi/plugin_group.h"
23 #include "webkit/plugins/npapi/plugin_list.h" 24 #include "webkit/plugins/npapi/plugin_list.h"
24 25
25 namespace { 26 namespace {
26 27
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 // value. If the value for any of the following perferences is set then the 116 // value. If the value for any of the following perferences is set then the
116 // corresponding default-content-setting is managed. These preferences exist 117 // corresponding default-content-setting is managed. These preferences exist
117 // in parallel to the preference default-content-settings. If a 118 // in parallel to the preference default-content-settings. If a
118 // default-content-settings-type is managed any user defined excpetions 119 // default-content-settings-type is managed any user defined excpetions
119 // (patterns) for this type are ignored. 120 // (patterns) for this type are ignored.
120 pref_change_registrar_.Add(prefs::kManagedDefaultCookiesSetting, this); 121 pref_change_registrar_.Add(prefs::kManagedDefaultCookiesSetting, this);
121 pref_change_registrar_.Add(prefs::kManagedDefaultImagesSetting, this); 122 pref_change_registrar_.Add(prefs::kManagedDefaultImagesSetting, this);
122 pref_change_registrar_.Add(prefs::kManagedDefaultJavaScriptSetting, this); 123 pref_change_registrar_.Add(prefs::kManagedDefaultJavaScriptSetting, this);
123 pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, this); 124 pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, this);
124 pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, this); 125 pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, this);
125 notification_registrar_.Add(this, NotificationType::PROFILE_DESTROYED, 126 notification_registrar_.Add(this, chrome::NOTIFICATION_PROFILE_DESTROYED,
126 Source<Profile>(profile_)); 127 Source<Profile>(profile_));
127 } 128 }
128 129
129 PolicyDefaultProvider::~PolicyDefaultProvider() { 130 PolicyDefaultProvider::~PolicyDefaultProvider() {
130 UnregisterObservers(); 131 UnregisterObservers();
131 } 132 }
132 133
133 ContentSetting PolicyDefaultProvider::ProvideDefaultSetting( 134 ContentSetting PolicyDefaultProvider::ProvideDefaultSetting(
134 ContentSettingsType content_type) const { 135 ContentSettingsType content_type) const {
135 base::AutoLock auto_lock(lock_); 136 base::AutoLock auto_lock(lock_);
136 return managed_default_content_settings_.settings[content_type]; 137 return managed_default_content_settings_.settings[content_type];
137 } 138 }
138 139
139 void PolicyDefaultProvider::UpdateDefaultSetting( 140 void PolicyDefaultProvider::UpdateDefaultSetting(
140 ContentSettingsType content_type, 141 ContentSettingsType content_type,
141 ContentSetting setting) { 142 ContentSetting setting) {
142 } 143 }
143 144
144 bool PolicyDefaultProvider::DefaultSettingIsManaged( 145 bool PolicyDefaultProvider::DefaultSettingIsManaged(
145 ContentSettingsType content_type) const { 146 ContentSettingsType content_type) const {
146 base::AutoLock lock(lock_); 147 base::AutoLock lock(lock_);
147 if (managed_default_content_settings_.settings[content_type] != 148 if (managed_default_content_settings_.settings[content_type] !=
148 CONTENT_SETTING_DEFAULT) { 149 CONTENT_SETTING_DEFAULT) {
149 return true; 150 return true;
150 } else { 151 } else {
151 return false; 152 return false;
152 } 153 }
153 } 154 }
154 155
155 void PolicyDefaultProvider::Observe(NotificationType type, 156 void PolicyDefaultProvider::Observe(int type,
156 const NotificationSource& source, 157 const NotificationSource& source,
157 const NotificationDetails& details) { 158 const NotificationDetails& details) {
158 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 159 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
159 160
160 if (type == NotificationType::PREF_CHANGED) { 161 if (type == chrome::NOTIFICATION_PREF_CHANGED) {
161 DCHECK_EQ(profile_->GetPrefs(), Source<PrefService>(source).ptr()); 162 DCHECK_EQ(profile_->GetPrefs(), Source<PrefService>(source).ptr());
162 std::string* name = Details<std::string>(details).ptr(); 163 std::string* name = Details<std::string>(details).ptr();
163 if (*name == prefs::kManagedDefaultCookiesSetting) { 164 if (*name == prefs::kManagedDefaultCookiesSetting) {
164 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES); 165 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES);
165 } else if (*name == prefs::kManagedDefaultImagesSetting) { 166 } else if (*name == prefs::kManagedDefaultImagesSetting) {
166 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_IMAGES); 167 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_IMAGES);
167 } else if (*name == prefs::kManagedDefaultJavaScriptSetting) { 168 } else if (*name == prefs::kManagedDefaultJavaScriptSetting) {
168 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT); 169 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT);
169 } else if (*name == prefs::kManagedDefaultPluginsSetting) { 170 } else if (*name == prefs::kManagedDefaultPluginsSetting) {
170 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_PLUGINS); 171 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_PLUGINS);
171 } else if (*name == prefs::kManagedDefaultPopupsSetting) { 172 } else if (*name == prefs::kManagedDefaultPopupsSetting) {
172 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_POPUPS); 173 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_POPUPS);
173 } else { 174 } else {
174 NOTREACHED() << "Unexpected preference observed"; 175 NOTREACHED() << "Unexpected preference observed";
175 return; 176 return;
176 } 177 }
177 178
178 if (!is_off_the_record_) { 179 if (!is_off_the_record_) {
179 ContentSettingsDetails details(ContentSettingsPattern(), 180 ContentSettingsDetails details(ContentSettingsPattern(),
180 ContentSettingsPattern(), 181 ContentSettingsPattern(),
181 CONTENT_SETTINGS_TYPE_DEFAULT, 182 CONTENT_SETTINGS_TYPE_DEFAULT,
182 std::string()); 183 std::string());
183 NotifyObservers(details); 184 NotifyObservers(details);
184 } 185 }
185 } else if (type == NotificationType::PROFILE_DESTROYED) { 186 } else if (type == chrome::NOTIFICATION_PROFILE_DESTROYED) {
186 DCHECK_EQ(profile_, Source<Profile>(source).ptr()); 187 DCHECK_EQ(profile_, Source<Profile>(source).ptr());
187 UnregisterObservers(); 188 UnregisterObservers();
188 } else { 189 } else {
189 NOTREACHED() << "Unexpected notification"; 190 NOTREACHED() << "Unexpected notification";
190 } 191 }
191 } 192 }
192 193
193 void PolicyDefaultProvider::UnregisterObservers() { 194 void PolicyDefaultProvider::UnregisterObservers() {
194 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 195 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
195 if (!profile_) 196 if (!profile_)
196 return; 197 return;
197 pref_change_registrar_.RemoveAll(); 198 pref_change_registrar_.RemoveAll();
198 notification_registrar_.Remove(this, NotificationType::PROFILE_DESTROYED, 199 notification_registrar_.Remove(this, chrome::NOTIFICATION_PROFILE_DESTROYED,
199 Source<Profile>(profile_)); 200 Source<Profile>(profile_));
200 profile_ = NULL; 201 profile_ = NULL;
201 } 202 }
202 203
203 204
204 void PolicyDefaultProvider::NotifyObservers( 205 void PolicyDefaultProvider::NotifyObservers(
205 const ContentSettingsDetails& details) { 206 const ContentSettingsDetails& details) {
206 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 207 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
207 if (profile_ == NULL) 208 if (profile_ == NULL)
208 return; 209 return;
209 NotificationService::current()->Notify( 210 NotificationService::current()->Notify(
210 NotificationType::CONTENT_SETTINGS_CHANGED, 211 chrome::NOTIFICATION_CONTENT_SETTINGS_CHANGED,
211 Source<HostContentSettingsMap>(profile_->GetHostContentSettingsMap()), 212 Source<HostContentSettingsMap>(profile_->GetHostContentSettingsMap()),
212 Details<const ContentSettingsDetails>(&details)); 213 Details<const ContentSettingsDetails>(&details));
213 } 214 }
214 215
215 void PolicyDefaultProvider::ReadManagedDefaultSettings() { 216 void PolicyDefaultProvider::ReadManagedDefaultSettings() {
216 for (size_t type = 0; type < arraysize(kPrefToManageType); ++type) { 217 for (size_t type = 0; type < arraysize(kPrefToManageType); ++type) {
217 if (kPrefToManageType[type] == NULL) { 218 if (kPrefToManageType[type] == NULL) {
218 continue; 219 continue;
219 } 220 }
220 UpdateManagedDefaultSetting(ContentSettingsType(type)); 221 UpdateManagedDefaultSetting(ContentSettingsType(type));
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 pref_change_registrar_.Add(prefs::kManagedCookiesSessionOnlyForUrls, this); 310 pref_change_registrar_.Add(prefs::kManagedCookiesSessionOnlyForUrls, this);
310 pref_change_registrar_.Add(prefs::kManagedImagesBlockedForUrls, this); 311 pref_change_registrar_.Add(prefs::kManagedImagesBlockedForUrls, this);
311 pref_change_registrar_.Add(prefs::kManagedImagesAllowedForUrls, this); 312 pref_change_registrar_.Add(prefs::kManagedImagesAllowedForUrls, this);
312 pref_change_registrar_.Add(prefs::kManagedJavaScriptBlockedForUrls, this); 313 pref_change_registrar_.Add(prefs::kManagedJavaScriptBlockedForUrls, this);
313 pref_change_registrar_.Add(prefs::kManagedJavaScriptAllowedForUrls, this); 314 pref_change_registrar_.Add(prefs::kManagedJavaScriptAllowedForUrls, this);
314 pref_change_registrar_.Add(prefs::kManagedPluginsBlockedForUrls, this); 315 pref_change_registrar_.Add(prefs::kManagedPluginsBlockedForUrls, this);
315 pref_change_registrar_.Add(prefs::kManagedPluginsAllowedForUrls, this); 316 pref_change_registrar_.Add(prefs::kManagedPluginsAllowedForUrls, this);
316 pref_change_registrar_.Add(prefs::kManagedPopupsBlockedForUrls, this); 317 pref_change_registrar_.Add(prefs::kManagedPopupsBlockedForUrls, this);
317 pref_change_registrar_.Add(prefs::kManagedPopupsAllowedForUrls, this); 318 pref_change_registrar_.Add(prefs::kManagedPopupsAllowedForUrls, this);
318 319
319 notification_registrar_.Add(this, NotificationType::PROFILE_DESTROYED, 320 notification_registrar_.Add(this, chrome::NOTIFICATION_PROFILE_DESTROYED,
320 Source<Profile>(profile_)); 321 Source<Profile>(profile_));
321 } 322 }
322 323
323 void PolicyProvider::GetContentSettingsFromPreferences( 324 void PolicyProvider::GetContentSettingsFromPreferences(
324 PrefService* prefs, 325 PrefService* prefs,
325 ContentSettingsRules* rules) { 326 ContentSettingsRules* rules) {
326 for (size_t i = 0; i < arraysize(kPrefsForManagedContentSettingsMap); ++i) { 327 for (size_t i = 0; i < arraysize(kPrefsForManagedContentSettingsMap); ++i) {
327 const char* pref_name = kPrefsForManagedContentSettingsMap[i].pref_name; 328 const char* pref_name = kPrefsForManagedContentSettingsMap[i].pref_name;
328 // Skip unset policies. 329 // Skip unset policies.
329 if (!prefs->HasPrefPath(pref_name)) { 330 if (!prefs->HasPrefPath(pref_name)) {
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 441
441 void PolicyProvider::ClearAllContentSettingsRules( 442 void PolicyProvider::ClearAllContentSettingsRules(
442 ContentSettingsType content_type) { 443 ContentSettingsType content_type) {
443 } 444 }
444 445
445 void PolicyProvider::UnregisterObservers() { 446 void PolicyProvider::UnregisterObservers() {
446 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 447 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
447 if (!profile_) 448 if (!profile_)
448 return; 449 return;
449 pref_change_registrar_.RemoveAll(); 450 pref_change_registrar_.RemoveAll();
450 notification_registrar_.Remove(this, NotificationType::PROFILE_DESTROYED, 451 notification_registrar_.Remove(this, chrome::NOTIFICATION_PROFILE_DESTROYED,
451 Source<Profile>(profile_)); 452 Source<Profile>(profile_));
452 profile_ = NULL; 453 profile_ = NULL;
453 } 454 }
454 455
455 void PolicyProvider::NotifyObservers( 456 void PolicyProvider::NotifyObservers(
456 const ContentSettingsDetails& details) { 457 const ContentSettingsDetails& details) {
457 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 458 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
458 if (profile_ == NULL) 459 if (profile_ == NULL)
459 return; 460 return;
460 NotificationService::current()->Notify( 461 NotificationService::current()->Notify(
461 NotificationType::CONTENT_SETTINGS_CHANGED, 462 chrome::NOTIFICATION_CONTENT_SETTINGS_CHANGED,
462 Source<HostContentSettingsMap>(profile_->GetHostContentSettingsMap()), 463 Source<HostContentSettingsMap>(profile_->GetHostContentSettingsMap()),
463 Details<const ContentSettingsDetails>(&details)); 464 Details<const ContentSettingsDetails>(&details));
464 } 465 }
465 466
466 void PolicyProvider::Observe(NotificationType type, 467 void PolicyProvider::Observe(int type,
467 const NotificationSource& source, 468 const NotificationSource& source,
468 const NotificationDetails& details) { 469 const NotificationDetails& details) {
469 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 470 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
470 471
471 if (type == NotificationType::PREF_CHANGED) { 472 if (type == chrome::NOTIFICATION_PREF_CHANGED) {
472 DCHECK_EQ(profile_->GetPrefs(), Source<PrefService>(source).ptr()); 473 DCHECK_EQ(profile_->GetPrefs(), Source<PrefService>(source).ptr());
473 std::string* name = Details<std::string>(details).ptr(); 474 std::string* name = Details<std::string>(details).ptr();
474 if (*name == prefs::kManagedCookiesAllowedForUrls || 475 if (*name == prefs::kManagedCookiesAllowedForUrls ||
475 *name == prefs::kManagedCookiesBlockedForUrls || 476 *name == prefs::kManagedCookiesBlockedForUrls ||
476 *name == prefs::kManagedCookiesSessionOnlyForUrls || 477 *name == prefs::kManagedCookiesSessionOnlyForUrls ||
477 *name == prefs::kManagedImagesAllowedForUrls || 478 *name == prefs::kManagedImagesAllowedForUrls ||
478 *name == prefs::kManagedImagesBlockedForUrls || 479 *name == prefs::kManagedImagesBlockedForUrls ||
479 *name == prefs::kManagedJavaScriptAllowedForUrls || 480 *name == prefs::kManagedJavaScriptAllowedForUrls ||
480 *name == prefs::kManagedJavaScriptBlockedForUrls || 481 *name == prefs::kManagedJavaScriptBlockedForUrls ||
481 *name == prefs::kManagedPluginsAllowedForUrls || 482 *name == prefs::kManagedPluginsAllowedForUrls ||
482 *name == prefs::kManagedPluginsBlockedForUrls || 483 *name == prefs::kManagedPluginsBlockedForUrls ||
483 *name == prefs::kManagedPopupsAllowedForUrls || 484 *name == prefs::kManagedPopupsAllowedForUrls ||
484 *name == prefs::kManagedPopupsBlockedForUrls) { 485 *name == prefs::kManagedPopupsBlockedForUrls) {
485 ReadManagedContentSettings(true); 486 ReadManagedContentSettings(true);
486 ContentSettingsDetails details(ContentSettingsPattern(), 487 ContentSettingsDetails details(ContentSettingsPattern(),
487 ContentSettingsPattern(), 488 ContentSettingsPattern(),
488 CONTENT_SETTINGS_TYPE_DEFAULT, 489 CONTENT_SETTINGS_TYPE_DEFAULT,
489 std::string()); 490 std::string());
490 NotifyObservers(details); 491 NotifyObservers(details);
491 } 492 }
492 } else if (type == NotificationType::PROFILE_DESTROYED) { 493 } else if (type == chrome::NOTIFICATION_PROFILE_DESTROYED) {
493 DCHECK_EQ(profile_, Source<Profile>(source).ptr()); 494 DCHECK_EQ(profile_, Source<Profile>(source).ptr());
494 UnregisterObservers(); 495 UnregisterObservers();
495 } else { 496 } else {
496 NOTREACHED() << "Unexpected notification"; 497 NOTREACHED() << "Unexpected notification";
497 } 498 }
498 } 499 }
499 500
500 } // namespace content_settings 501 } // namespace content_settings
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698