OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 "chrome/browser/content_settings/content_settings_pref_provider.h" | 5 #include "chrome/browser/content_settings/content_settings_pref_provider.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 | 113 |
114 // Read content settings exceptions. | 114 // Read content settings exceptions. |
115 ReadContentSettingsFromPref(false); | 115 ReadContentSettingsFromPref(false); |
116 | 116 |
117 if (!is_incognito_) { | 117 if (!is_incognito_) { |
118 UMA_HISTOGRAM_COUNTS("ContentSettings.NumberOfExceptions", | 118 UMA_HISTOGRAM_COUNTS("ContentSettings.NumberOfExceptions", |
119 value_map_.size()); | 119 value_map_.size()); |
120 } | 120 } |
121 | 121 |
122 pref_change_registrar_.Init(prefs_); | 122 pref_change_registrar_.Init(prefs_); |
123 pref_change_registrar_.Add(prefs::kContentSettingsPatternPairs, this); | 123 pref_change_registrar_.Add( |
| 124 prefs::kContentSettingsPatternPairs, |
| 125 base::Bind(&PrefProvider::OnContentSettingsPatternPairsChanged, |
| 126 base::Unretained(this))); |
124 } | 127 } |
125 | 128 |
126 bool PrefProvider::SetWebsiteSetting( | 129 bool PrefProvider::SetWebsiteSetting( |
127 const ContentSettingsPattern& primary_pattern, | 130 const ContentSettingsPattern& primary_pattern, |
128 const ContentSettingsPattern& secondary_pattern, | 131 const ContentSettingsPattern& secondary_pattern, |
129 ContentSettingsType content_type, | 132 ContentSettingsType content_type, |
130 const ResourceIdentifier& resource_identifier, | 133 const ResourceIdentifier& resource_identifier, |
131 Value* in_value) { | 134 Value* in_value) { |
132 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 135 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
133 DCHECK(prefs_); | 136 DCHECK(prefs_); |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 content_type, | 213 content_type, |
211 "", | 214 "", |
212 NULL); | 215 NULL); |
213 } | 216 } |
214 NotifyObservers(ContentSettingsPattern(), | 217 NotifyObservers(ContentSettingsPattern(), |
215 ContentSettingsPattern(), | 218 ContentSettingsPattern(), |
216 content_type, | 219 content_type, |
217 std::string()); | 220 std::string()); |
218 } | 221 } |
219 | 222 |
220 void PrefProvider::OnPreferenceChanged(PrefServiceBase* service, | |
221 const std::string& name) { | |
222 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | |
223 DCHECK_EQ(prefs_, service); | |
224 DCHECK_EQ(std::string(prefs::kContentSettingsPatternPairs), name); | |
225 | |
226 if (updating_preferences_) | |
227 return; | |
228 | |
229 ReadContentSettingsFromPref(true); | |
230 | |
231 NotifyObservers(ContentSettingsPattern(), | |
232 ContentSettingsPattern(), | |
233 CONTENT_SETTINGS_TYPE_DEFAULT, | |
234 std::string()); | |
235 } | |
236 | |
237 PrefProvider::~PrefProvider() { | 223 PrefProvider::~PrefProvider() { |
238 DCHECK(!prefs_); | 224 DCHECK(!prefs_); |
239 } | 225 } |
240 | 226 |
241 RuleIterator* PrefProvider::GetRuleIterator( | 227 RuleIterator* PrefProvider::GetRuleIterator( |
242 ContentSettingsType content_type, | 228 ContentSettingsType content_type, |
243 const ResourceIdentifier& resource_identifier, | 229 const ResourceIdentifier& resource_identifier, |
244 bool incognito) const { | 230 bool incognito) const { |
245 if (incognito) | 231 if (incognito) |
246 return incognito_value_map_.GetRuleIterator(content_type, | 232 return incognito_value_map_.GetRuleIterator(content_type, |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
377 value_map_.SetValue(pattern_pair.first, | 363 value_map_.SetValue(pattern_pair.first, |
378 pattern_pair.second, | 364 pattern_pair.second, |
379 content_type, | 365 content_type, |
380 ResourceIdentifier(""), | 366 ResourceIdentifier(""), |
381 value); | 367 value); |
382 } | 368 } |
383 } | 369 } |
384 } | 370 } |
385 } | 371 } |
386 | 372 |
| 373 void PrefProvider::OnContentSettingsPatternPairsChanged() { |
| 374 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 375 |
| 376 if (updating_preferences_) |
| 377 return; |
| 378 |
| 379 ReadContentSettingsFromPref(true); |
| 380 |
| 381 NotifyObservers(ContentSettingsPattern(), |
| 382 ContentSettingsPattern(), |
| 383 CONTENT_SETTINGS_TYPE_DEFAULT, |
| 384 std::string()); |
| 385 } |
| 386 |
387 void PrefProvider::UpdatePatternPairsSettings( | 387 void PrefProvider::UpdatePatternPairsSettings( |
388 const ContentSettingsPattern& primary_pattern, | 388 const ContentSettingsPattern& primary_pattern, |
389 const ContentSettingsPattern& secondary_pattern, | 389 const ContentSettingsPattern& secondary_pattern, |
390 ContentSettingsType content_type, | 390 ContentSettingsType content_type, |
391 const ResourceIdentifier& resource_identifier, | 391 const ResourceIdentifier& resource_identifier, |
392 const base::Value* value, | 392 const base::Value* value, |
393 DictionaryValue* pattern_pairs_settings) { | 393 DictionaryValue* pattern_pairs_settings) { |
394 // Get settings dictionary for the given patterns. | 394 // Get settings dictionary for the given patterns. |
395 std::string pattern_str(CreatePatternString(primary_pattern, | 395 std::string pattern_str(CreatePatternString(primary_pattern, |
396 secondary_pattern)); | 396 secondary_pattern)); |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
690 | 690 |
691 void PrefProvider::AssertLockNotHeld() const { | 691 void PrefProvider::AssertLockNotHeld() const { |
692 #if !defined(NDEBUG) | 692 #if !defined(NDEBUG) |
693 // |Lock::Acquire()| will assert if the lock is held by this thread. | 693 // |Lock::Acquire()| will assert if the lock is held by this thread. |
694 lock_.Acquire(); | 694 lock_.Acquire(); |
695 lock_.Release(); | 695 lock_.Release(); |
696 #endif | 696 #endif |
697 } | 697 } |
698 | 698 |
699 } // namespace content_settings | 699 } // namespace content_settings |
OLD | NEW |