summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-13 10:45:29 +0000
committerbauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-13 10:45:29 +0000
commit753c6cb7275a9f937d304952027fc33b8a984733 (patch)
treeb394e07e6fa5fdae3f18941a8812585e881577c8
parentfa40033d085aff31f7382b3b9c95f2e8c3e9a1b0 (diff)
downloadchromium_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
-rw-r--r--chrome/browser/content_settings/content_settings_base_provider.h4
-rw-r--r--chrome/browser/content_settings/content_settings_mock_provider.cc13
-rw-r--r--chrome/browser/content_settings/content_settings_mock_provider.h11
-rw-r--r--chrome/browser/content_settings/content_settings_notification_provider.cc5
-rw-r--r--chrome/browser/content_settings/content_settings_notification_provider.h4
-rw-r--r--chrome/browser/content_settings/content_settings_policy_provider.cc51
-rw-r--r--chrome/browser/content_settings/content_settings_policy_provider.h10
-rw-r--r--chrome/browser/content_settings/content_settings_policy_provider_unittest.cc6
-rw-r--r--chrome/browser/content_settings/content_settings_pref_provider.cc5
-rw-r--r--chrome/browser/content_settings/content_settings_pref_provider.h4
-rw-r--r--chrome/browser/content_settings/content_settings_provider.h5
-rw-r--r--chrome/browser/content_settings/host_content_settings_map.cc11
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;