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 "chrome/browser/content_settings/content_settings_custom_extension_provider.h"
6
7 #include "base/memory/scoped_ptr.h"
8 #include "chrome/browser/content_settings/content_settings_utils.h"
9 #include "chrome/browser/extensions/api/content_settings/content_settings_store.h"
10 #include "chrome/common/content_settings_pattern.h"
11
12 namespace content_settings {
13
CustomExtensionProvider(extensions::ContentSettingsStore * extensions_settings,bool incognito)14 CustomExtensionProvider::CustomExtensionProvider(
15 extensions::ContentSettingsStore* extensions_settings,
16 bool incognito)
17 : incognito_(incognito),
18 extensions_settings_(extensions_settings) {
19 extensions_settings_->AddObserver(this);
20 }
21
~CustomExtensionProvider()22 CustomExtensionProvider::~CustomExtensionProvider() {
23 }
24
GetRuleIterator(ContentSettingsType content_type,const ResourceIdentifier & resource_identifier,bool incognito) const25 RuleIterator* CustomExtensionProvider::GetRuleIterator(
26 ContentSettingsType content_type,
27 const ResourceIdentifier& resource_identifier,
28 bool incognito) const {
29 return extensions_settings_->GetRuleIterator(content_type,
30 resource_identifier,
31 incognito);
32 }
33
SetWebsiteSetting(const ContentSettingsPattern & primary_pattern,const ContentSettingsPattern & secondary_pattern,ContentSettingsType content_type,const ResourceIdentifier & resource_identifier,Value * value)34 bool CustomExtensionProvider::SetWebsiteSetting(
35 const ContentSettingsPattern& primary_pattern,
36 const ContentSettingsPattern& secondary_pattern,
37 ContentSettingsType content_type,
38 const ResourceIdentifier& resource_identifier,
39 Value* value) {
40 return false;
41 }
42
ShutdownOnUIThread()43 void CustomExtensionProvider::ShutdownOnUIThread() {
44 RemoveAllObservers();
45 extensions_settings_->RemoveObserver(this);
46 }
47
OnContentSettingChanged(const std::string & extension_id,bool incognito)48 void CustomExtensionProvider::OnContentSettingChanged(
49 const std::string& extension_id,
50 bool incognito) {
51 if (incognito_ != incognito)
52 return;
53 // TODO(markusheintz): Be more concise.
54 NotifyObservers(ContentSettingsPattern(),
55 ContentSettingsPattern(),
56 CONTENT_SETTINGS_TYPE_DEFAULT,
57 std::string());
58 }
59
60 } // namespace content_settings
61