| 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_origin_identifier_val
ue_map.h" | 5 #include "chrome/browser/content_settings/content_settings_origin_identifier_val
ue_map.h" |
| 6 | 6 |
| 7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/synchronization/lock.h" | 10 #include "base/synchronization/lock.h" |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 EntryMap::const_iterator it; | 113 EntryMap::const_iterator it; |
| 114 for (it = entries_.begin(); it != entries_.end(); ++it) | 114 for (it = entries_.begin(); it != entries_.end(); ++it) |
| 115 size += it->second.size(); | 115 size += it->second.size(); |
| 116 return size; | 116 return size; |
| 117 } | 117 } |
| 118 | 118 |
| 119 OriginIdentifierValueMap::OriginIdentifierValueMap() {} | 119 OriginIdentifierValueMap::OriginIdentifierValueMap() {} |
| 120 | 120 |
| 121 OriginIdentifierValueMap::~OriginIdentifierValueMap() {} | 121 OriginIdentifierValueMap::~OriginIdentifierValueMap() {} |
| 122 | 122 |
| 123 Value* OriginIdentifierValueMap::GetValue( | 123 base::Value* OriginIdentifierValueMap::GetValue( |
| 124 const GURL& primary_url, | 124 const GURL& primary_url, |
| 125 const GURL& secondary_url, | 125 const GURL& secondary_url, |
| 126 ContentSettingsType content_type, | 126 ContentSettingsType content_type, |
| 127 const ResourceIdentifier& resource_identifier) const { | 127 const ResourceIdentifier& resource_identifier) const { |
| 128 EntryMapKey key(content_type, resource_identifier); | 128 EntryMapKey key(content_type, resource_identifier); |
| 129 EntryMap::const_iterator it = entries_.find(key); | 129 EntryMap::const_iterator it = entries_.find(key); |
| 130 if (it == entries_.end()) | 130 if (it == entries_.end()) |
| 131 return NULL; | 131 return NULL; |
| 132 | 132 |
| 133 // Iterate the entries in until a match is found. Since the rules are stored | 133 // Iterate the entries in until a match is found. Since the rules are stored |
| 134 // in the order of decreasing precedence, the most specific match is found | 134 // in the order of decreasing precedence, the most specific match is found |
| 135 // first. | 135 // first. |
| 136 Rules::const_iterator entry; | 136 Rules::const_iterator entry; |
| 137 for (entry = it->second.begin(); entry != it->second.end(); ++entry) { | 137 for (entry = it->second.begin(); entry != it->second.end(); ++entry) { |
| 138 if (entry->first.primary_pattern.Matches(primary_url) && | 138 if (entry->first.primary_pattern.Matches(primary_url) && |
| 139 entry->first.secondary_pattern.Matches(secondary_url)) { | 139 entry->first.secondary_pattern.Matches(secondary_url)) { |
| 140 return entry->second.get(); | 140 return entry->second.get(); |
| 141 } | 141 } |
| 142 } | 142 } |
| 143 return NULL; | 143 return NULL; |
| 144 } | 144 } |
| 145 | 145 |
| 146 void OriginIdentifierValueMap::SetValue( | 146 void OriginIdentifierValueMap::SetValue( |
| 147 const ContentSettingsPattern& primary_pattern, | 147 const ContentSettingsPattern& primary_pattern, |
| 148 const ContentSettingsPattern& secondary_pattern, | 148 const ContentSettingsPattern& secondary_pattern, |
| 149 ContentSettingsType content_type, | 149 ContentSettingsType content_type, |
| 150 const ResourceIdentifier& resource_identifier, | 150 const ResourceIdentifier& resource_identifier, |
| 151 Value* value) { | 151 base::Value* value) { |
| 152 DCHECK(primary_pattern.IsValid()); | 152 DCHECK(primary_pattern.IsValid()); |
| 153 DCHECK(secondary_pattern.IsValid()); | 153 DCHECK(secondary_pattern.IsValid()); |
| 154 DCHECK(value); | 154 DCHECK(value); |
| 155 EntryMapKey key(content_type, resource_identifier); | 155 EntryMapKey key(content_type, resource_identifier); |
| 156 PatternPair patterns(primary_pattern, secondary_pattern); | 156 PatternPair patterns(primary_pattern, secondary_pattern); |
| 157 // This will create the entry and the linked_ptr if needed. | 157 // This will create the entry and the linked_ptr if needed. |
| 158 entries_[key][patterns].reset(value); | 158 entries_[key][patterns].reset(value); |
| 159 } | 159 } |
| 160 | 160 |
| 161 void OriginIdentifierValueMap::DeleteValue( | 161 void OriginIdentifierValueMap::DeleteValue( |
| (...skipping 15 matching lines...) Expand all Loading... |
| 177 EntryMapKey key(content_type, resource_identifier); | 177 EntryMapKey key(content_type, resource_identifier); |
| 178 entries_.erase(key); | 178 entries_.erase(key); |
| 179 } | 179 } |
| 180 | 180 |
| 181 void OriginIdentifierValueMap::clear() { | 181 void OriginIdentifierValueMap::clear() { |
| 182 // Delete all owned value objects. | 182 // Delete all owned value objects. |
| 183 entries_.clear(); | 183 entries_.clear(); |
| 184 } | 184 } |
| 185 | 185 |
| 186 } // namespace content_settings | 186 } // namespace content_settings |
| OLD | NEW |