diff options
author | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-13 10:45:29 +0000 |
---|---|---|
committer | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-13 10:45:29 +0000 |
commit | 753c6cb7275a9f937d304952027fc33b8a984733 (patch) | |
tree | b394e07e6fa5fdae3f18941a8812585e881577c8 | |
parent | fa40033d085aff31f7382b3b9c95f2e8c3e9a1b0 (diff) | |
download | chromium_src-753c6cb7275a9f937d304952027fc33b8a984733.zip chromium_src-753c6cb7275a9f937d304952027fc33b8a984733.tar.gz chromium_src-753c6cb7275a9f937d304952027fc33b8a984733.tar.bz2 |
Remove content_settings::ProviderInterface::ContentSettingsTypeIsManaged.
BUG=none
TEST=unit tests
Review URL: http://codereview.chromium.org/6969032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85258 0039d316-1c4b-4281-b951-d872f2087c98
12 files changed, 23 insertions, 106 deletions
diff --git a/chrome/browser/content_settings/content_settings_base_provider.h b/chrome/browser/content_settings/content_settings_base_provider.h index 6f3ae4d..05dd94e 100644 --- a/chrome/browser/content_settings/content_settings_base_provider.h +++ b/chrome/browser/content_settings/content_settings_base_provider.h @@ -48,10 +48,6 @@ class BaseProvider : public ProviderInterface { // Initializes the Provider. virtual void Init() = 0; - // ProviderInterface Implementation - virtual bool ContentSettingsTypeIsManaged( - ContentSettingsType content_type) = 0; - virtual ContentSetting GetContentSetting( const GURL& requesting_url, const GURL& embedding_url, diff --git a/chrome/browser/content_settings/content_settings_mock_provider.cc b/chrome/browser/content_settings/content_settings_mock_provider.cc index c166dd6..8bd42b9 100644 --- a/chrome/browser/content_settings/content_settings_mock_provider.cc +++ b/chrome/browser/content_settings/content_settings_mock_provider.cc @@ -46,8 +46,7 @@ MockProvider::MockProvider() content_type_(CONTENT_SETTINGS_TYPE_COOKIES), resource_identifier_(""), setting_(CONTENT_SETTING_DEFAULT), - read_only_(false), - is_managed_(false) {} + read_only_(false) {} MockProvider::MockProvider(ContentSettingsPattern requesting_url_pattern, ContentSettingsPattern embedding_url_pattern, @@ -61,8 +60,7 @@ MockProvider::MockProvider(ContentSettingsPattern requesting_url_pattern, content_type_(content_type), resource_identifier_(resource_identifier), setting_(setting), - read_only_(read_only), - is_managed_(is_managed) {} + read_only_(read_only) {} MockProvider::~MockProvider() {} @@ -94,11 +92,4 @@ void MockProvider::SetContentSetting( setting_ = content_setting; } -bool MockProvider::ContentSettingsTypeIsManaged(ContentSettingsType type) { - if (type == content_type_) { - return is_managed_; - } - return false; -} - } // namespace content_settings diff --git a/chrome/browser/content_settings/content_settings_mock_provider.h b/chrome/browser/content_settings/content_settings_mock_provider.h index 17ced25..3a6f7e3 100644 --- a/chrome/browser/content_settings/content_settings_mock_provider.h +++ b/chrome/browser/content_settings/content_settings_mock_provider.h @@ -53,8 +53,6 @@ class MockProvider : public ProviderInterface { bool is_managed); virtual ~MockProvider(); - virtual bool ContentSettingsTypeIsManaged(ContentSettingsType type); - // ProviderInterface implementation virtual ContentSetting GetContentSetting( const GURL& requesting_url, @@ -130,14 +128,6 @@ class MockProvider : public ProviderInterface { return read_only_; } - void set_is_managed(bool is_managed) { - is_managed_ = is_managed; - } - - bool is_managed() const { - return is_managed_; - } - private: ContentSettingsPattern requesting_url_pattern_; ContentSettingsPattern embedding_url_pattern_; @@ -145,7 +135,6 @@ class MockProvider : public ProviderInterface { ResourceIdentifier resource_identifier_; ContentSetting setting_; bool read_only_; - bool is_managed_; DISALLOW_COPY_AND_ASSIGN(MockProvider); }; diff --git a/chrome/browser/content_settings/content_settings_notification_provider.cc b/chrome/browser/content_settings/content_settings_notification_provider.cc index fe3554c..7d7a0e3 100644 --- a/chrome/browser/content_settings/content_settings_notification_provider.cc +++ b/chrome/browser/content_settings/content_settings_notification_provider.cc @@ -91,11 +91,6 @@ NotificationProvider::~NotificationProvider() { StopObserving(); } -bool NotificationProvider::ContentSettingsTypeIsManaged( - ContentSettingsType content_type) { - return false; -} - ContentSetting NotificationProvider::GetContentSetting( const GURL& requesting_url, const GURL& embedding_url, diff --git a/chrome/browser/content_settings/content_settings_notification_provider.h b/chrome/browser/content_settings/content_settings_notification_provider.h index fde8072..9db47c5 100644 --- a/chrome/browser/content_settings/content_settings_notification_provider.h +++ b/chrome/browser/content_settings/content_settings_notification_provider.h @@ -34,10 +34,6 @@ class NotificationProvider : public ProviderInterface, virtual ~NotificationProvider(); - // ProviderInterface implementation - virtual bool ContentSettingsTypeIsManaged( - ContentSettingsType content_type); - virtual ContentSetting GetContentSetting( const GURL& requesting_url, const GURL& embedding_url, diff --git a/chrome/browser/content_settings/content_settings_policy_provider.cc b/chrome/browser/content_settings/content_settings_policy_provider.cc index 0855c2d..1b16947 100644 --- a/chrome/browser/content_settings/content_settings_policy_provider.cc +++ b/chrome/browser/content_settings/content_settings_policy_provider.cc @@ -286,9 +286,11 @@ void PolicyProvider::RegisterUserPrefs(PrefService* prefs) { PrefService::UNSYNCABLE_PREF); } -PolicyProvider::PolicyProvider(Profile* profile) +PolicyProvider::PolicyProvider(Profile* profile, + DefaultProviderInterface* default_provider) : BaseProvider(profile->IsOffTheRecord()), - profile_(profile) { + profile_(profile), + default_provider_(default_provider) { Init(); } @@ -296,23 +298,10 @@ PolicyProvider::~PolicyProvider() { UnregisterObservers(); } -void PolicyProvider::ReadManagedContentSettingsTypes( - ContentSettingsType content_type) { - PrefService* prefs = profile_->GetPrefs(); - if (kPrefToManageType[content_type] == NULL) { - content_type_is_managed_[content_type] = false; - } else { - content_type_is_managed_[content_type] = - prefs->IsManagedPreference(kPrefToManageType[content_type]); - } -} - void PolicyProvider::Init() { PrefService* prefs = profile_->GetPrefs(); ReadManagedContentSettings(false); - for (int i = 0; i < CONTENT_SETTINGS_NUM_TYPES; ++i) - ReadManagedContentSettingsTypes(ContentSettingsType(i)); pref_change_registrar_.Init(prefs); pref_change_registrar_.Add(prefs::kManagedCookiesBlockedForUrls, this); @@ -327,21 +316,10 @@ void PolicyProvider::Init() { pref_change_registrar_.Add(prefs::kManagedPopupsBlockedForUrls, this); pref_change_registrar_.Add(prefs::kManagedPopupsAllowedForUrls, this); - pref_change_registrar_.Add(prefs::kManagedDefaultCookiesSetting, this); - pref_change_registrar_.Add(prefs::kManagedDefaultImagesSetting, this); - pref_change_registrar_.Add(prefs::kManagedDefaultJavaScriptSetting, this); - pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, this); - pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, this); - notification_registrar_.Add(this, NotificationType::PROFILE_DESTROYED, Source<Profile>(profile_)); } -bool PolicyProvider::ContentSettingsTypeIsManaged( - ContentSettingsType content_type) { - return content_type_is_managed_[content_type]; -} - void PolicyProvider::GetContentSettingsFromPreferences( PrefService* prefs, ContentSettingsRules* rules) { @@ -411,11 +389,14 @@ ContentSetting PolicyProvider::GetContentSetting( const GURL& embedding_url, ContentSettingsType content_type, const ResourceIdentifier& resource_identifier) const { - return BaseProvider::GetContentSetting( + ContentSetting setting = BaseProvider::GetContentSetting( requesting_url, embedding_url, content_type, NO_RESOURCE_IDENTIFIER); + if (setting == CONTENT_SETTING_DEFAULT && default_provider_) + setting = default_provider_->ProvideDefaultSetting(content_type); + return setting; } void PolicyProvider::ClearAllContentSettingsRules( @@ -468,22 +449,6 @@ void PolicyProvider::Observe(NotificationType type, ReadManagedContentSettings(true); NotifyObservers(ContentSettingsDetails( ContentSettingsPattern(), CONTENT_SETTINGS_TYPE_DEFAULT, "")); - // We do not want to sent a notification when managed default content - // settings change. The DefaultProvider will take care of that. We are - // only a passive observer. - // TODO(markusheintz): NOTICE: This is still work in progress and part of - // a larger refactoring. The code will change and be much cleaner and - // clearer in the end. - } else if (*name == prefs::kManagedDefaultCookiesSetting) { - ReadManagedContentSettingsTypes(CONTENT_SETTINGS_TYPE_COOKIES); - } else if (*name == prefs::kManagedDefaultImagesSetting) { - ReadManagedContentSettingsTypes(CONTENT_SETTINGS_TYPE_IMAGES); - } else if (*name == prefs::kManagedDefaultJavaScriptSetting) { - ReadManagedContentSettingsTypes(CONTENT_SETTINGS_TYPE_JAVASCRIPT); - } else if (*name == prefs::kManagedDefaultPluginsSetting) { - ReadManagedContentSettingsTypes(CONTENT_SETTINGS_TYPE_PLUGINS); - } else if (*name == prefs::kManagedDefaultPopupsSetting) { - ReadManagedContentSettingsTypes(CONTENT_SETTINGS_TYPE_POPUPS); } } else if (type == NotificationType::PROFILE_DESTROYED) { DCHECK_EQ(profile_, Source<Profile>(source).ptr()); diff --git a/chrome/browser/content_settings/content_settings_policy_provider.h b/chrome/browser/content_settings/content_settings_policy_provider.h index bf04820..f4b9e25 100644 --- a/chrome/browser/content_settings/content_settings_policy_provider.h +++ b/chrome/browser/content_settings/content_settings_policy_provider.h @@ -84,17 +84,14 @@ class PolicyDefaultProvider : public DefaultProviderInterface, class PolicyProvider : public BaseProvider, public NotificationObserver { public: - explicit PolicyProvider(Profile* profile); + explicit PolicyProvider(Profile* profile, + DefaultProviderInterface* default_provider); ~PolicyProvider(); static void RegisterUserPrefs(PrefService* prefs); // BaseProvider Implementation virtual void Init(); - // ProviderInterface Implementation - virtual bool ContentSettingsTypeIsManaged( - ContentSettingsType content_type); - virtual void SetContentSetting( const ContentSettingsPattern& requesting_pattern, const ContentSettingsPattern& embedding_pattern, @@ -141,7 +138,8 @@ class PolicyProvider : public BaseProvider, Profile* profile_; - bool content_type_is_managed_[CONTENT_SETTINGS_NUM_TYPES]; + // Weak, owned by HostContentSettingsMap. + DefaultProviderInterface* default_provider_; PrefChangeRegistrar pref_change_registrar_; NotificationRegistrar notification_registrar_; diff --git a/chrome/browser/content_settings/content_settings_policy_provider_unittest.cc b/chrome/browser/content_settings/content_settings_policy_provider_unittest.cc index 1d1053c..d18d7a2 100644 --- a/chrome/browser/content_settings/content_settings_policy_provider_unittest.cc +++ b/chrome/browser/content_settings/content_settings_policy_provider_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -108,7 +108,7 @@ TEST_F(PolicyProviderTest, Default) { prefs->SetManagedPref(prefs::kManagedImagesBlockedForUrls, value); - PolicyProvider provider(static_cast<Profile*>(&profile)); + PolicyProvider provider(&profile, NULL); ContentSettingsPattern yt_url_pattern("www.youtube.com"); GURL youtube_url("http://www.youtube.com"); @@ -145,7 +145,7 @@ TEST_F(PolicyProviderTest, ResourceIdentifier) { prefs->SetManagedPref(prefs::kManagedPluginsAllowedForUrls, value); - PolicyProvider provider(static_cast<Profile*>(&profile)); + PolicyProvider provider(&profile, NULL); GURL youtube_url("http://www.youtube.com"); GURL google_url("http://mail.google.com"); diff --git a/chrome/browser/content_settings/content_settings_pref_provider.cc b/chrome/browser/content_settings/content_settings_pref_provider.cc index 467d502..a9ae7c3 100644 --- a/chrome/browser/content_settings/content_settings_pref_provider.cc +++ b/chrome/browser/content_settings/content_settings_pref_provider.cc @@ -380,11 +380,6 @@ void PrefProvider::Init() { initializing_ = false; } -bool PrefProvider::ContentSettingsTypeIsManaged( - ContentSettingsType content_type) { - return false; -} - void PrefProvider::SetContentSetting( const ContentSettingsPattern& requesting_pattern, const ContentSettingsPattern& embedding_pattern, diff --git a/chrome/browser/content_settings/content_settings_pref_provider.h b/chrome/browser/content_settings/content_settings_pref_provider.h index 70891d7..479ddd1 100644 --- a/chrome/browser/content_settings/content_settings_pref_provider.h +++ b/chrome/browser/content_settings/content_settings_pref_provider.h @@ -107,10 +107,6 @@ class PrefProvider : public BaseProvider, explicit PrefProvider(Profile* profile); virtual ~PrefProvider(); - // ContentSettingsProvider implementation. - virtual bool ContentSettingsTypeIsManaged( - ContentSettingsType content_type); - virtual void SetContentSetting( const ContentSettingsPattern& requesting_pattern, const ContentSettingsPattern& embedding_pattern, diff --git a/chrome/browser/content_settings/content_settings_provider.h b/chrome/browser/content_settings/content_settings_provider.h index 6306858..733041d 100644 --- a/chrome/browser/content_settings/content_settings_provider.h +++ b/chrome/browser/content_settings/content_settings_provider.h @@ -67,11 +67,6 @@ class ProviderInterface { virtual ~ProviderInterface() {} - // Returns true whether the content settings provider manages the - // |content_type|. - virtual bool ContentSettingsTypeIsManaged( - ContentSettingsType content_type) = 0; - // Returns a single ContentSetting which applies to a given |requesting_url|, // |embedding_url| pair or CONTENT_SETTING_DEFAULT, if no rule applies. For // ContentSettingsTypes that require a resource identifier to be specified, diff --git a/chrome/browser/content_settings/host_content_settings_map.cc b/chrome/browser/content_settings/host_content_settings_map.cc index ffc253b0..8320b0e 100644 --- a/chrome/browser/content_settings/host_content_settings_map.cc +++ b/chrome/browser/content_settings/host_content_settings_map.cc @@ -70,9 +70,10 @@ HostContentSettingsMap::HostContentSettingsMap(Profile* profile) default_content_settings_providers_.push_back( DefaultContentSettingsProviderPtr( new content_settings::PrefDefaultProvider(profile))); + content_settings::DefaultProviderInterface* policy_default_provider = + new content_settings::PolicyDefaultProvider(profile); default_content_settings_providers_.push_back( - DefaultContentSettingsProviderPtr( - new content_settings::PolicyDefaultProvider(profile))); + DefaultContentSettingsProviderPtr(policy_default_provider)); PrefService* prefs = profile_->GetPrefs(); @@ -100,7 +101,8 @@ HostContentSettingsMap::HostContentSettingsMap(Profile* profile) // as providers that are further up in the list (i.e. added earlier) override // providers further down. content_settings_providers_.push_back( - make_linked_ptr(new content_settings::PolicyProvider(profile))); + make_linked_ptr(new content_settings::PolicyProvider( + profile, policy_default_provider))); content_settings_providers_.push_back( make_linked_ptr(new content_settings::PrefProvider(profile))); @@ -180,8 +182,7 @@ ContentSetting HostContentSettingsMap::GetNonDefaultContentSetting( ++provider) { provided_setting = (*provider)->GetContentSetting( url, url, content_type, resource_identifier); - bool isManaged = (*provider)->ContentSettingsTypeIsManaged(content_type); - if (provided_setting != CONTENT_SETTING_DEFAULT || isManaged) + if (provided_setting != CONTENT_SETTING_DEFAULT) return provided_setting; } return provided_setting; |