• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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