OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "extensions/common/permissions/permission_set.h" | 5 #include "extensions/common/permissions/permission_set.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <iterator> | 8 #include <iterator> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 // We only need to check our host list to verify access. The host list should | 207 // We only need to check our host list to verify access. The host list should |
208 // already reflect any special rules (such as chrome://favicon, all hosts | 208 // already reflect any special rules (such as chrome://favicon, all hosts |
209 // access, etc.). | 209 // access, etc.). |
210 return scriptable_hosts().MatchesURL(origin); | 210 return scriptable_hosts().MatchesURL(origin); |
211 } | 211 } |
212 | 212 |
213 bool PermissionSet::HasEffectiveAccessToAllHosts() const { | 213 bool PermissionSet::HasEffectiveAccessToAllHosts() const { |
214 // There are two ways this set can have effective access to all hosts: | 214 // There are two ways this set can have effective access to all hosts: |
215 // 1) it has an <all_urls> URL pattern. | 215 // 1) it has an <all_urls> URL pattern. |
216 // 2) it has a named permission with implied full URL access. | 216 // 2) it has a named permission with implied full URL access. |
217 for (URLPatternSet::const_iterator host = effective_hosts().begin(); | 217 if (effective_hosts().MatchesAllURLs()) |
218 host != effective_hosts().end(); ++host) { | 218 return true; |
219 if (host->match_all_urls() || | |
220 (host->match_subdomains() && host->host().empty())) | |
221 return true; | |
222 } | |
223 | 219 |
224 for (APIPermissionSet::const_iterator i = apis().begin(); | 220 for (APIPermissionSet::const_iterator i = apis().begin(); |
225 i != apis().end(); ++i) { | 221 i != apis().end(); ++i) { |
226 if (i->info()->implies_full_url_access()) | 222 if (i->info()->implies_full_url_access()) |
227 return true; | 223 return true; |
228 } | 224 } |
229 return false; | 225 return false; |
230 } | 226 } |
231 | 227 |
232 bool PermissionSet::ShouldWarnAllHosts() const { | 228 bool PermissionSet::ShouldWarnAllHosts() const { |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 if (iter->ImpliesAllHosts()) { | 275 if (iter->ImpliesAllHosts()) { |
280 should_warn_all_hosts_ = WARN_ALL_HOSTS; | 276 should_warn_all_hosts_ = WARN_ALL_HOSTS; |
281 return; | 277 return; |
282 } | 278 } |
283 } | 279 } |
284 | 280 |
285 should_warn_all_hosts_ = DONT_WARN_ALL_HOSTS; | 281 should_warn_all_hosts_ = DONT_WARN_ALL_HOSTS; |
286 } | 282 } |
287 | 283 |
288 } // namespace extensions | 284 } // namespace extensions |
OLD | NEW |