Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(228)

Side by Side Diff: chrome/browser/content_settings/content_settings_pref_provider.cc

Issue 615083004: Use ThreadChecker rather than DCHECK_CURRENTLY_ON. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
11 #include "base/auto_reset.h" 11 #include "base/auto_reset.h"
12 #include "base/bind.h"
12 #include "base/command_line.h" 13 #include "base/command_line.h"
13 #include "base/memory/scoped_ptr.h" 14 #include "base/memory/scoped_ptr.h"
14 #include "base/metrics/histogram.h" 15 #include "base/metrics/histogram.h"
15 #include "base/prefs/pref_service.h" 16 #include "base/prefs/pref_service.h"
16 #include "base/prefs/scoped_user_pref_update.h" 17 #include "base/prefs/scoped_user_pref_update.h"
17 #include "base/strings/string_split.h" 18 #include "base/strings/string_split.h"
18 #include "base/time/clock.h" 19 #include "base/time/clock.h"
19 #include "base/time/default_clock.h" 20 #include "base/time/default_clock.h"
20 #include "chrome/browser/content_settings/content_settings_utils.h" 21 #include "chrome/browser/content_settings/content_settings_utils.h"
21 #include "chrome/browser/content_settings/host_content_settings_map.h" 22 #include "chrome/browser/content_settings/host_content_settings_map.h"
22 #include "chrome/common/chrome_switches.h"
23 #include "chrome/common/pref_names.h" 23 #include "chrome/common/pref_names.h"
24 #include "components/content_settings/core/browser/content_settings_rule.h" 24 #include "components/content_settings/core/browser/content_settings_rule.h"
25 #include "components/content_settings/core/common/content_settings.h" 25 #include "components/content_settings/core/common/content_settings.h"
26 #include "components/content_settings/core/common/content_settings_pattern.h" 26 #include "components/content_settings/core/common/content_settings_pattern.h"
27 #include "components/pref_registry/pref_registry_syncable.h" 27 #include "components/pref_registry/pref_registry_syncable.h"
28 #include "content/public/browser/browser_thread.h"
29 #include "url/gurl.h" 28 #include "url/gurl.h"
30 29
31 using content::BrowserThread;
32
33 namespace { 30 namespace {
34 31
35 typedef std::pair<std::string, std::string> StringPair; 32 typedef std::pair<std::string, std::string> StringPair;
36 typedef std::map<std::string, std::string> StringMap; 33 typedef std::map<std::string, std::string> StringMap;
37 34
38 const char kPerPluginPrefName[] = "per_plugin"; 35 const char kPerPluginPrefName[] = "per_plugin";
39 const char kAudioKey[] = "audio"; 36 const char kAudioKey[] = "audio";
40 const char kVideoKey[] = "video"; 37 const char kVideoKey[] = "video";
41 const char kLastUsed[] = "last_used"; 38 const char kLastUsed[] = "last_used";
42 39
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 base::Bind(&PrefProvider::OnContentSettingsPatternPairsChanged, 114 base::Bind(&PrefProvider::OnContentSettingsPatternPairsChanged,
118 base::Unretained(this))); 115 base::Unretained(this)));
119 } 116 }
120 117
121 bool PrefProvider::SetWebsiteSetting( 118 bool PrefProvider::SetWebsiteSetting(
122 const ContentSettingsPattern& primary_pattern, 119 const ContentSettingsPattern& primary_pattern,
123 const ContentSettingsPattern& secondary_pattern, 120 const ContentSettingsPattern& secondary_pattern,
124 ContentSettingsType content_type, 121 ContentSettingsType content_type,
125 const ResourceIdentifier& resource_identifier, 122 const ResourceIdentifier& resource_identifier,
126 base::Value* in_value) { 123 base::Value* in_value) {
127 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 124 DCHECK(CalledOnValidThread());
128 DCHECK(prefs_); 125 DCHECK(prefs_);
129 // Default settings are set using a wildcard pattern for both 126 // Default settings are set using a wildcard pattern for both
130 // |primary_pattern| and |secondary_pattern|. Don't store default settings in 127 // |primary_pattern| and |secondary_pattern|. Don't store default settings in
131 // the |PrefProvider|. The |PrefProvider| handles settings for specific 128 // the |PrefProvider|. The |PrefProvider| handles settings for specific
132 // sites/origins defined by the |primary_pattern| and the |secondary_pattern|. 129 // sites/origins defined by the |primary_pattern| and the |secondary_pattern|.
133 // Default settings are handled by the |DefaultProvider|. 130 // Default settings are handled by the |DefaultProvider|.
134 if (primary_pattern == ContentSettingsPattern::Wildcard() && 131 if (primary_pattern == ContentSettingsPattern::Wildcard() &&
135 secondary_pattern == ContentSettingsPattern::Wildcard() && 132 secondary_pattern == ContentSettingsPattern::Wildcard() &&
136 resource_identifier.empty()) { 133 resource_identifier.empty()) {
137 return false; 134 return false;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 } 168 }
172 169
173 NotifyObservers( 170 NotifyObservers(
174 primary_pattern, secondary_pattern, content_type, resource_identifier); 171 primary_pattern, secondary_pattern, content_type, resource_identifier);
175 172
176 return true; 173 return true;
177 } 174 }
178 175
179 void PrefProvider::ClearAllContentSettingsRules( 176 void PrefProvider::ClearAllContentSettingsRules(
180 ContentSettingsType content_type) { 177 ContentSettingsType content_type) {
181 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 178 DCHECK(CalledOnValidThread());
182 DCHECK(prefs_); 179 DCHECK(prefs_);
183 180
184 OriginIdentifierValueMap* map_to_modify = &incognito_value_map_; 181 OriginIdentifierValueMap* map_to_modify = &incognito_value_map_;
185 if (!is_incognito_) 182 if (!is_incognito_)
186 map_to_modify = &value_map_; 183 map_to_modify = &value_map_;
187 184
188 std::vector<Rule> rules_to_delete; 185 std::vector<Rule> rules_to_delete;
189 { 186 {
190 base::AutoLock auto_lock(lock_); 187 base::AutoLock auto_lock(lock_);
191 scoped_ptr<RuleIterator> rule_iterator( 188 scoped_ptr<RuleIterator> rule_iterator(
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 } 479 }
483 UMA_HISTOGRAM_COUNTS("ContentSettings.NumberOfBlockCookiesExceptions", 480 UMA_HISTOGRAM_COUNTS("ContentSettings.NumberOfBlockCookiesExceptions",
484 cookies_block_exception_count); 481 cookies_block_exception_count);
485 UMA_HISTOGRAM_COUNTS("ContentSettings.NumberOfAllowCookiesExceptions", 482 UMA_HISTOGRAM_COUNTS("ContentSettings.NumberOfAllowCookiesExceptions",
486 cookies_allow_exception_count); 483 cookies_allow_exception_count);
487 UMA_HISTOGRAM_COUNTS("ContentSettings.NumberOfSessionOnlyCookiesExceptions", 484 UMA_HISTOGRAM_COUNTS("ContentSettings.NumberOfSessionOnlyCookiesExceptions",
488 cookies_session_only_exception_count); 485 cookies_session_only_exception_count);
489 } 486 }
490 487
491 void PrefProvider::OnContentSettingsPatternPairsChanged() { 488 void PrefProvider::OnContentSettingsPatternPairsChanged() {
492 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 489 DCHECK(CalledOnValidThread());
493 490
494 if (updating_preferences_) 491 if (updating_preferences_)
495 return; 492 return;
496 493
497 ReadContentSettingsFromPref(true); 494 ReadContentSettingsFromPref(true);
498 495
499 NotifyObservers(ContentSettingsPattern(), 496 NotifyObservers(ContentSettingsPattern(),
500 ContentSettingsPattern(), 497 ContentSettingsPattern(),
501 CONTENT_SETTINGS_TYPE_DEFAULT, 498 CONTENT_SETTINGS_TYPE_DEFAULT,
502 std::string()); 499 std::string());
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 for (size_t i = 0; i < move_items.size(); ++i) { 549 for (size_t i = 0; i < move_items.size(); ++i) {
553 scoped_ptr<base::Value> pattern_settings_dictionary; 550 scoped_ptr<base::Value> pattern_settings_dictionary;
554 all_settings_dictionary->RemoveWithoutPathExpansion( 551 all_settings_dictionary->RemoveWithoutPathExpansion(
555 move_items[i].first, &pattern_settings_dictionary); 552 move_items[i].first, &pattern_settings_dictionary);
556 all_settings_dictionary->SetWithoutPathExpansion( 553 all_settings_dictionary->SetWithoutPathExpansion(
557 move_items[i].second, pattern_settings_dictionary.release()); 554 move_items[i].second, pattern_settings_dictionary.release());
558 } 555 }
559 } 556 }
560 557
561 void PrefProvider::ShutdownOnUIThread() { 558 void PrefProvider::ShutdownOnUIThread() {
562 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 559 DCHECK(CalledOnValidThread());
563 DCHECK(prefs_); 560 DCHECK(prefs_);
564 RemoveAllObservers(); 561 RemoveAllObservers();
565 pref_change_registrar_.RemoveAll(); 562 pref_change_registrar_.RemoveAll();
566 prefs_ = NULL; 563 prefs_ = NULL;
567 } 564 }
568 565
569 void PrefProvider::UpdateLastUsage( 566 void PrefProvider::UpdateLastUsage(
570 const ContentSettingsPattern& primary_pattern, 567 const ContentSettingsPattern& primary_pattern,
571 const ContentSettingsPattern& secondary_pattern, 568 const ContentSettingsPattern& secondary_pattern,
572 ContentSettingsType content_type) { 569 ContentSettingsType content_type) {
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 lock_.Acquire(); 648 lock_.Acquire();
652 lock_.Release(); 649 lock_.Release();
653 #endif 650 #endif
654 } 651 }
655 652
656 void PrefProvider::SetClockForTesting(scoped_ptr<base::Clock> clock) { 653 void PrefProvider::SetClockForTesting(scoped_ptr<base::Clock> clock) {
657 clock_ = clock.Pass(); 654 clock_ = clock.Pass();
658 } 655 }
659 656
660 } // namespace content_settings 657 } // namespace content_settings
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698