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
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_CONTENT_SETTINGS_CONTENT_SETTINGS_OBSERVABLE_PROVIDER_H_
6 #define CHROME_BROWSER_CONTENT_SETTINGS_CONTENT_SETTINGS_OBSERVABLE_PROVIDER_H_
10 #include "base/observer_list.h"
11 #include "chrome/browser/content_settings/content_settings_provider.h"
12 #include "chrome/browser/content_settings/content_settings_observer.h"
13 #include "chrome/common/content_settings_pattern.h"
15 namespace content_settings
{
17 class ObservableProvider
: public ProviderInterface
{
20 virtual ~ObservableProvider();
22 void AddObserver(Observer
* observer
);
23 void RemoveObserver(Observer
* observer
);
26 void NotifyObservers(const ContentSettingsPattern
& primary_pattern
,
27 const ContentSettingsPattern
& secondary_pattern
,
28 ContentSettingsType content_type
,
29 const std::string
& resource_identifier
);
30 void RemoveAllObservers();
33 ObserverList
<Observer
, true> observer_list_
;
36 } // namespace content_settings
38 #endif // CHROME_BROWSER_CONTENT_SETTINGS_CONTENT_SETTINGS_OBSERVABLE_PROVIDER_H_