| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/content_settings/core/browser/content_settings_pref.h" | 5 #include "components/content_settings/core/browser/content_settings_pref.h" |
| 6 | 6 |
| 7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/metrics/histogram_macros.h" | 10 #include "base/metrics/histogram_macros.h" |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 resource_identifier, | 136 resource_identifier, |
| 137 value.get()); | 137 value.get()); |
| 138 } | 138 } |
| 139 | 139 |
| 140 notify_callback_.Run( | 140 notify_callback_.Run( |
| 141 primary_pattern, secondary_pattern, content_type_, resource_identifier); | 141 primary_pattern, secondary_pattern, content_type_, resource_identifier); |
| 142 | 142 |
| 143 return true; | 143 return true; |
| 144 } | 144 } |
| 145 | 145 |
| 146 void ContentSettingsPref::ClearPref() { |
| 147 DCHECK(thread_checker_.CalledOnValidThread()); |
| 148 DCHECK(prefs_); |
| 149 |
| 150 { |
| 151 base::AutoLock auto_lock(lock_); |
| 152 value_map_.clear(); |
| 153 } |
| 154 |
| 155 { |
| 156 base::AutoReset<bool> auto_reset(&updating_preferences_, true); |
| 157 DictionaryPrefUpdate update(prefs_, pref_name_); |
| 158 base::DictionaryValue* pattern_pairs_settings = update.Get(); |
| 159 pattern_pairs_settings->Clear(); |
| 160 } |
| 161 } |
| 162 |
| 146 void ContentSettingsPref::ClearAllContentSettingsRules() { | 163 void ContentSettingsPref::ClearAllContentSettingsRules() { |
| 147 DCHECK(thread_checker_.CalledOnValidThread()); | 164 DCHECK(thread_checker_.CalledOnValidThread()); |
| 148 DCHECK(prefs_); | 165 DCHECK(prefs_); |
| 149 | 166 |
| 150 OriginIdentifierValueMap* map_to_modify = &incognito_value_map_; | 167 if (is_incognito_) { |
| 151 if (!is_incognito_) | |
| 152 map_to_modify = &value_map_; | |
| 153 | |
| 154 { | |
| 155 base::AutoLock auto_lock(lock_); | 168 base::AutoLock auto_lock(lock_); |
| 156 map_to_modify->clear(); | 169 incognito_value_map_.clear(); |
| 157 } | 170 } else { |
| 158 | 171 ClearPref(); |
| 159 if (!is_incognito_) { | |
| 160 // Clear the preference. | |
| 161 { | |
| 162 base::AutoReset<bool> auto_reset(&updating_preferences_, true); | |
| 163 DictionaryPrefUpdate update(prefs_, pref_name_); | |
| 164 base::DictionaryValue* pattern_pairs_settings = update.Get(); | |
| 165 pattern_pairs_settings->Clear(); | |
| 166 } | |
| 167 } | 172 } |
| 168 | 173 |
| 169 notify_callback_.Run(ContentSettingsPattern(), | 174 notify_callback_.Run(ContentSettingsPattern(), |
| 170 ContentSettingsPattern(), | 175 ContentSettingsPattern(), |
| 171 content_type_, | 176 content_type_, |
| 172 ResourceIdentifier()); | 177 ResourceIdentifier()); |
| 173 } | 178 } |
| 174 | 179 |
| 175 void ContentSettingsPref::UpdateLastUsage( | 180 void ContentSettingsPref::UpdateLastUsage( |
| 176 const ContentSettingsPattern& primary_pattern, | 181 const ContentSettingsPattern& primary_pattern, |
| (...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 503 | 508 |
| 504 void ContentSettingsPref::AssertLockNotHeld() const { | 509 void ContentSettingsPref::AssertLockNotHeld() const { |
| 505 #if !defined(NDEBUG) | 510 #if !defined(NDEBUG) |
| 506 // |Lock::Acquire()| will assert if the lock is held by this thread. | 511 // |Lock::Acquire()| will assert if the lock is held by this thread. |
| 507 lock_.Acquire(); | 512 lock_.Acquire(); |
| 508 lock_.Release(); | 513 lock_.Release(); |
| 509 #endif | 514 #endif |
| 510 } | 515 } |
| 511 | 516 |
| 512 } // namespace content_settings | 517 } // namespace content_settings |
| OLD | NEW |