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

Side by Side Diff: extensions/common/permissions/permission_set.cc

Issue 377553003: Create a ManifestPermission implementation for Automation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Working, probably; untested Created 6 years, 5 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 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 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 // We only need to check our host list to verify access. The host list should 209 // We only need to check our host list to verify access. The host list should
210 // already reflect any special rules (such as chrome://favicon, all hosts 210 // already reflect any special rules (such as chrome://favicon, all hosts
211 // access, etc.). 211 // access, etc.).
212 return scriptable_hosts().MatchesURL(origin); 212 return scriptable_hosts().MatchesURL(origin);
213 } 213 }
214 214
215 bool PermissionSet::HasEffectiveAccessToAllHosts() const { 215 bool PermissionSet::HasEffectiveAccessToAllHosts() const {
216 // There are two ways this set can have effective access to all hosts: 216 // There are two ways this set can have effective access to all hosts:
217 // 1) it has an <all_urls> URL pattern. 217 // 1) it has an <all_urls> URL pattern.
218 // 2) it has a named permission with implied full URL access. 218 // 2) it has a named permission with implied full URL access.
219 for (URLPatternSet::const_iterator host = effective_hosts().begin(); 219 if (effective_hosts().MatchesAllURLs())
220 host != effective_hosts().end(); ++host) { 220 return true;
221 if (host->match_all_urls() ||
222 (host->match_subdomains() && host->host().empty()))
223 return true;
224 }
225 221
226 for (APIPermissionSet::const_iterator i = apis().begin(); 222 for (APIPermissionSet::const_iterator i = apis().begin();
227 i != apis().end(); ++i) { 223 i != apis().end(); ++i) {
228 if (i->info()->implies_full_url_access()) 224 if (i->info()->implies_full_url_access())
229 return true; 225 return true;
230 } 226 }
231 return false; 227 return false;
232 } 228 }
233 229
234 bool PermissionSet::ShouldWarnAllHosts() const { 230 bool PermissionSet::ShouldWarnAllHosts() const {
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 if (registry_length > 0) { 303 if (registry_length > 0) {
308 should_warn_all_hosts_ = WARN_ALL_HOSTS; 304 should_warn_all_hosts_ = WARN_ALL_HOSTS;
309 return; 305 return;
310 } 306 }
311 } 307 }
312 308
313 should_warn_all_hosts_ = DONT_WARN_ALL_HOSTS; 309 should_warn_all_hosts_ = DONT_WARN_ALL_HOSTS;
314 } 310 }
315 311
316 } // namespace extensions 312 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698