| Index: chrome/browser/content_settings/content_settings_pref_provider.h
|
| diff --git a/chrome/browser/content_settings/content_settings_pref_provider.h b/chrome/browser/content_settings/content_settings_pref_provider.h
|
| index 479ddd14bb54d6b09e0bb2c12984c73516c2a2b7..4e00ae516acafc554b3b187d4a21b7c56f4270cb 100644
|
| --- a/chrome/browser/content_settings/content_settings_pref_provider.h
|
| +++ b/chrome/browser/content_settings/content_settings_pref_provider.h
|
| @@ -14,8 +14,9 @@
|
|
|
| #include "base/basictypes.h"
|
| #include "base/synchronization/lock.h"
|
| -#include "chrome/browser/content_settings/content_settings_base_provider.h"
|
| +#include "chrome/browser/content_settings/content_settings_origin_identifier_value_map.h"
|
| #include "chrome/browser/content_settings/content_settings_provider.h"
|
| +#include "chrome/browser/content_settings/content_settings_utils.h"
|
| #include "chrome/browser/prefs/pref_change_registrar.h"
|
| #include "content/common/notification_observer.h"
|
| #include "content/common/notification_registrar.h"
|
| @@ -99,7 +100,7 @@ class PrefDefaultProvider : public DefaultProviderInterface,
|
|
|
| // Content settings provider that provides content settings from the user
|
| // preference.
|
| -class PrefProvider : public BaseProvider,
|
| +class PrefProvider : public ProviderInterface,
|
| public NotificationObserver {
|
| public:
|
| static void RegisterUserPrefs(PrefService* prefs);
|
| @@ -107,6 +108,7 @@ class PrefProvider : public BaseProvider,
|
| explicit PrefProvider(Profile* profile);
|
| virtual ~PrefProvider();
|
|
|
| + // ProviderInterface implementations.
|
| virtual void SetContentSetting(
|
| const ContentSettingsPattern& requesting_pattern,
|
| const ContentSettingsPattern& embedding_pattern,
|
| @@ -114,20 +116,30 @@ class PrefProvider : public BaseProvider,
|
| const ResourceIdentifier& resource_identifier,
|
| ContentSetting content_setting);
|
|
|
| + virtual ContentSetting GetContentSetting(
|
| + const GURL& requesting_url,
|
| + const GURL& embedding_url,
|
| + ContentSettingsType content_type,
|
| + const ResourceIdentifier& resource_identifier) const;
|
| +
|
| + virtual void GetAllContentSettingsRules(
|
| + ContentSettingsType content_type,
|
| + const ResourceIdentifier& resource_identifier,
|
| + Rules* content_setting_rules) const;
|
| +
|
| virtual void ClearAllContentSettingsRules(
|
| ContentSettingsType content_type);
|
|
|
| virtual void ResetToDefaults();
|
|
|
| - // BaseProvider implementations.
|
| - virtual void Init();
|
| -
|
| // NotificationObserver implementation.
|
| virtual void Observe(NotificationType type,
|
| const NotificationSource& source,
|
| const NotificationDetails& details);
|
|
|
| private:
|
| + void Init();
|
| +
|
| void ReadExceptions(bool overwrite);
|
|
|
| // Various migration methods (old cookie, popup and per-host data gets
|
| @@ -138,20 +150,14 @@ class PrefProvider : public BaseProvider,
|
| void CanonicalizeContentSettingsExceptions(
|
| DictionaryValue* all_settings_dictionary);
|
|
|
| - void GetSettingsFromDictionary(
|
| - const DictionaryValue* dictionary,
|
| - ContentSettings* settings);
|
| -
|
| - void GetResourceSettingsFromDictionary(
|
| - const DictionaryValue* dictionary,
|
| - ResourceContentSettings* settings);
|
| -
|
| void NotifyObservers(const ContentSettingsDetails& details);
|
|
|
| void UnregisterObservers();
|
|
|
| Profile* profile_;
|
|
|
| + bool is_incognito_;
|
| +
|
| PrefChangeRegistrar pref_change_registrar_;
|
| NotificationRegistrar notification_registrar_;
|
|
|
| @@ -162,6 +168,14 @@ class PrefProvider : public BaseProvider,
|
| // Do not fire any Notifications as long as we are in the constructor.
|
| bool initializing_;
|
|
|
| + OriginIdentifierValueMap value_map_;
|
| +
|
| + OriginIdentifierValueMap incognito_value_map_;
|
| +
|
| + // Used around accesses to the value map objects to guarantee
|
| + // thread safety.
|
| + mutable base::Lock lock_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(PrefProvider);
|
| };
|
|
|
|
|