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.
4
5#include "components/content_settings/core/browser/content_settings_observable_provider.h"
6
7namespace content_settings {
8
9// ////////////////////////////////////////////////////////////////////////////
10// ObservableProvider
11//
12
13ObservableProvider::ObservableProvider() {
14}
15
16ObservableProvider::~ObservableProvider() {
17}
18
19void ObservableProvider::AddObserver(Observer* observer) {
20  observer_list_.AddObserver(observer);
21}
22
23void ObservableProvider::RemoveObserver(Observer* observer) {
24  observer_list_.RemoveObserver(observer);
25}
26
27void ObservableProvider::NotifyObservers(
28    const ContentSettingsPattern& primary_pattern,
29    const ContentSettingsPattern& secondary_pattern,
30    ContentSettingsType content_type,
31    const std::string& resource_identifier) {
32  FOR_EACH_OBSERVER(Observer,
33                    observer_list_,
34                    OnContentSettingChanged(
35                        primary_pattern,
36                        secondary_pattern,
37                        content_type,
38                        resource_identifier));
39}
40
41void ObservableProvider::RemoveAllObservers() {
42  observer_list_.Clear();
43}
44
45}  // namespace content_settings
46