Home | History | Annotate | Download | only in content_settings
      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