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

Unified Diff: extensions/browser/info_map.cc

Issue 1207363002: Simplify permission-related code for Web Notifications. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: further comments Created 5 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: extensions/browser/info_map.cc
diff --git a/extensions/browser/info_map.cc b/extensions/browser/info_map.cc
index 00b2437b682d7a7f2f67c6973fcafc8a5ef1b4e9..c97832ca4b29d8d86b1bff953726ab4a9c272c65 100644
--- a/extensions/browser/info_map.cc
+++ b/extensions/browser/info_map.cc
@@ -129,42 +129,26 @@ void InfoMap::UnregisterAllExtensionsInProcess(int process_id) {
process_map_.RemoveAllFromProcess(process_id);
}
-void InfoMap::GetExtensionsWithAPIPermissionForSecurityOrigin(
+bool InfoMap::SecurityOriginHasAPIPermission(
const GURL& origin,
int process_id,
- APIPermission::ID permission,
- ExtensionSet* extensions) const {
- DCHECK(extensions);
-
+ APIPermission::ID permission) const {
+ CheckOnValidThread();
if (origin.SchemeIs(kExtensionScheme)) {
const std::string& id = origin.host();
const Extension* extension = extensions_.GetByID(id);
- if (extension &&
- extension->permissions_data()->HasAPIPermission(permission) &&
- process_map_.Contains(id, process_id)) {
- extensions->Insert(extension);
- }
- return;
+ return extension &&
+ extension->permissions_data()->HasAPIPermission(permission) &&
+ process_map_.Contains(id, process_id);
}
-
- ExtensionSet::const_iterator i = extensions_.begin();
- for (; i != extensions_.end(); ++i) {
- if ((*i)->web_extent().MatchesSecurityOrigin(origin) &&
- process_map_.Contains((*i)->id(), process_id) &&
- (*i)->permissions_data()->HasAPIPermission(permission)) {
- extensions->Insert(*i);
+ for (const auto& extension : extensions_) {
+ if (extension->web_extent().MatchesSecurityOrigin(origin) &&
+ extension->permissions_data()->HasAPIPermission(permission) &&
+ process_map_.Contains(extension->id(), process_id)) {
+ return true;
}
}
-}
-
-bool InfoMap::SecurityOriginHasAPIPermission(const GURL& origin,
- int process_id,
- APIPermission::ID permission)
- const {
- ExtensionSet extensions;
- GetExtensionsWithAPIPermissionForSecurityOrigin(
- origin, process_id, permission, &extensions);
- return !extensions.is_empty();
+ return false;
}
// This function is security sensitive. Bugs could cause problems that break

Powered by Google App Engine
This is Rietveld 408576698