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 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 22 CustomExtensionProvider::~CustomExtensionProvider() { 23 } 24 25 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 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 43 void CustomExtensionProvider::ShutdownOnUIThread() { 44 RemoveAllObservers(); 45 extensions_settings_->RemoveObserver(this); 46 } 47 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