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

Side by Side Diff: chrome/browser/extensions/api/content_settings/content_settings_store.cc

Issue 1871713002: Convert //chrome/browser/extensions from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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/extensions/api/content_settings/content_settings_store. h" 5 #include "chrome/browser/extensions/api/content_settings/content_settings_store. h"
6 6
7 #include <memory>
7 #include <set> 8 #include <set>
8 #include <utility> 9 #include <utility>
9 #include <vector> 10 #include <vector>
10 11
11 #include "base/debug/alias.h" 12 #include "base/debug/alias.h"
12 #include "base/logging.h" 13 #include "base/logging.h"
13 #include "base/memory/scoped_ptr.h"
14 #include "base/stl_util.h" 14 #include "base/stl_util.h"
15 #include "base/strings/string_util.h" 15 #include "base/strings/string_util.h"
16 #include "base/values.h" 16 #include "base/values.h"
17 #include "chrome/browser/extensions/api/content_settings/content_settings_api_co nstants.h" 17 #include "chrome/browser/extensions/api/content_settings/content_settings_api_co nstants.h"
18 #include "chrome/browser/extensions/api/content_settings/content_settings_helper s.h" 18 #include "chrome/browser/extensions/api/content_settings/content_settings_helper s.h"
19 #include "components/content_settings/core/browser/content_settings_origin_ident ifier_value_map.h" 19 #include "components/content_settings/core/browser/content_settings_origin_ident ifier_value_map.h"
20 #include "components/content_settings/core/browser/content_settings_rule.h" 20 #include "components/content_settings/core/browser/content_settings_rule.h"
21 #include "components/content_settings/core/browser/content_settings_utils.h" 21 #include "components/content_settings/core/browser/content_settings_utils.h"
22 #include "content/public/browser/browser_thread.h" 22 #include "content/public/browser/browser_thread.h"
23 23
(...skipping 24 matching lines...) Expand all
48 }; 48 };
49 49
50 ContentSettingsStore::ContentSettingsStore() { 50 ContentSettingsStore::ContentSettingsStore() {
51 DCHECK(OnCorrectThread()); 51 DCHECK(OnCorrectThread());
52 } 52 }
53 53
54 ContentSettingsStore::~ContentSettingsStore() { 54 ContentSettingsStore::~ContentSettingsStore() {
55 STLDeleteValues(&entries_); 55 STLDeleteValues(&entries_);
56 } 56 }
57 57
58 scoped_ptr<RuleIterator> ContentSettingsStore::GetRuleIterator( 58 std::unique_ptr<RuleIterator> ContentSettingsStore::GetRuleIterator(
59 ContentSettingsType type, 59 ContentSettingsType type,
60 const content_settings::ResourceIdentifier& identifier, 60 const content_settings::ResourceIdentifier& identifier,
61 bool incognito) const { 61 bool incognito) const {
62 std::vector<scoped_ptr<RuleIterator>> iterators; 62 std::vector<std::unique_ptr<RuleIterator>> iterators;
63 // Iterate the extensions based on install time (last installed extensions 63 // Iterate the extensions based on install time (last installed extensions
64 // first). 64 // first).
65 ExtensionEntryMap::const_reverse_iterator entry; 65 ExtensionEntryMap::const_reverse_iterator entry;
66 66
67 // The individual |RuleIterators| shouldn't lock; pass |lock_| to the 67 // The individual |RuleIterators| shouldn't lock; pass |lock_| to the
68 // |ConcatenationIterator| in a locked state. 68 // |ConcatenationIterator| in a locked state.
69 scoped_ptr<base::AutoLock> auto_lock(new base::AutoLock(lock_)); 69 std::unique_ptr<base::AutoLock> auto_lock(new base::AutoLock(lock_));
70 70
71 for (entry = entries_.rbegin(); entry != entries_.rend(); ++entry) { 71 for (entry = entries_.rbegin(); entry != entries_.rend(); ++entry) {
72 if (!entry->second->enabled) 72 if (!entry->second->enabled)
73 continue; 73 continue;
74 74
75 if (incognito) { 75 if (incognito) {
76 iterators.push_back( 76 iterators.push_back(
77 entry->second->incognito_session_only_settings.GetRuleIterator( 77 entry->second->incognito_session_only_settings.GetRuleIterator(
78 type, 78 type,
79 identifier, 79 identifier,
80 NULL)); 80 NULL));
81 iterators.push_back( 81 iterators.push_back(
82 entry->second->incognito_persistent_settings.GetRuleIterator( 82 entry->second->incognito_persistent_settings.GetRuleIterator(
83 type, 83 type,
84 identifier, 84 identifier,
85 NULL)); 85 NULL));
86 } else { 86 } else {
87 iterators.push_back( 87 iterators.push_back(
88 entry->second->settings.GetRuleIterator(type, identifier, NULL)); 88 entry->second->settings.GetRuleIterator(type, identifier, NULL));
89 } 89 }
90 } 90 }
91 return scoped_ptr<RuleIterator>( 91 return std::unique_ptr<RuleIterator>(
92 new ConcatenationIterator(std::move(iterators), auto_lock.release())); 92 new ConcatenationIterator(std::move(iterators), auto_lock.release()));
93 } 93 }
94 94
95 void ContentSettingsStore::SetExtensionContentSetting( 95 void ContentSettingsStore::SetExtensionContentSetting(
96 const std::string& ext_id, 96 const std::string& ext_id,
97 const ContentSettingsPattern& primary_pattern, 97 const ContentSettingsPattern& primary_pattern,
98 const ContentSettingsPattern& secondary_pattern, 98 const ContentSettingsPattern& secondary_pattern,
99 ContentSettingsType type, 99 ContentSettingsType type,
100 const content_settings::ResourceIdentifier& identifier, 100 const content_settings::ResourceIdentifier& identifier,
101 ContentSetting setting, 101 ContentSetting setting,
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 base::ListValue* ContentSettingsStore::GetSettingsForExtension( 248 base::ListValue* ContentSettingsStore::GetSettingsForExtension(
249 const std::string& extension_id, 249 const std::string& extension_id,
250 ExtensionPrefsScope scope) const { 250 ExtensionPrefsScope scope) const {
251 base::AutoLock lock(lock_); 251 base::AutoLock lock(lock_);
252 const OriginIdentifierValueMap* map = GetValueMap(extension_id, scope); 252 const OriginIdentifierValueMap* map = GetValueMap(extension_id, scope);
253 if (!map) 253 if (!map)
254 return NULL; 254 return NULL;
255 base::ListValue* settings = new base::ListValue(); 255 base::ListValue* settings = new base::ListValue();
256 OriginIdentifierValueMap::EntryMap::const_iterator it; 256 OriginIdentifierValueMap::EntryMap::const_iterator it;
257 for (it = map->begin(); it != map->end(); ++it) { 257 for (it = map->begin(); it != map->end(); ++it) {
258 scoped_ptr<RuleIterator> rule_iterator( 258 std::unique_ptr<RuleIterator> rule_iterator(map->GetRuleIterator(
259 map->GetRuleIterator(it->first.content_type, 259 it->first.content_type, it->first.resource_identifier,
260 it->first.resource_identifier, 260 NULL)); // We already hold the lock.
261 NULL)); // We already hold the lock.
262 while (rule_iterator->HasNext()) { 261 while (rule_iterator->HasNext()) {
263 const Rule& rule = rule_iterator->Next(); 262 const Rule& rule = rule_iterator->Next();
264 base::DictionaryValue* setting_dict = new base::DictionaryValue(); 263 base::DictionaryValue* setting_dict = new base::DictionaryValue();
265 setting_dict->SetString(keys::kPrimaryPatternKey, 264 setting_dict->SetString(keys::kPrimaryPatternKey,
266 rule.primary_pattern.ToString()); 265 rule.primary_pattern.ToString());
267 setting_dict->SetString(keys::kSecondaryPatternKey, 266 setting_dict->SetString(keys::kSecondaryPatternKey,
268 rule.secondary_pattern.ToString()); 267 rule.secondary_pattern.ToString());
269 setting_dict->SetString( 268 setting_dict->SetString(
270 keys::kContentSettingsTypeKey, 269 keys::kContentSettingsTypeKey,
271 helpers::ContentSettingsTypeToString(it->first.content_type)); 270 helpers::ContentSettingsTypeToString(it->first.content_type));
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 ContentSettingsStore::FindEntry(const std::string& ext_id) const { 372 ContentSettingsStore::FindEntry(const std::string& ext_id) const {
374 ExtensionEntryMap::const_iterator i; 373 ExtensionEntryMap::const_iterator i;
375 for (i = entries_.begin(); i != entries_.end(); ++i) { 374 for (i = entries_.begin(); i != entries_.end(); ++i) {
376 if (i->second->id == ext_id) 375 if (i->second->id == ext_id)
377 return i; 376 return i;
378 } 377 }
379 return entries_.end(); 378 return entries_.end();
380 } 379 }
381 380
382 } // namespace extensions 381 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698