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

Unified Diff: chrome/common/extensions/extension.cc

Issue 2808051: Refactored extension privilege enumeration and implemented URLPattern compari... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 4 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
« no previous file with comments | « chrome/common/extensions/extension.h ('k') | chrome/common/extensions/extension_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/common/extensions/extension.cc
===================================================================
--- chrome/common/extensions/extension.cc (revision 54542)
+++ chrome/common/extensions/extension.cc (working copy)
@@ -862,17 +862,18 @@
if (new_extension->HasAccessToAllHosts())
return true;
- std::set<std::string> old_hosts =
- old_extension->GetEffectiveHostPermissions();
- std::set<std::string> new_hosts =
- new_extension->GetEffectiveHostPermissions();
+ ExtensionExtent::PatternList old_hosts =
+ old_extension->GetEffectiveHostPermissions().patterns();
+ ExtensionExtent::PatternList new_hosts =
+ new_extension->GetEffectiveHostPermissions().patterns();
- std::set<std::string> difference;
+ std::set<URLPattern, URLPattern::EffectiveHostCompareFunctor> diff;
std::set_difference(new_hosts.begin(), new_hosts.end(),
- old_hosts.begin(), old_hosts.end(),
- std::insert_iterator<std::set<std::string> >(
- difference, difference.end()));
- if (difference.size() > 0)
+ old_hosts.begin(), old_hosts.end(),
+ std::insert_iterator<std::set<URLPattern,
+ URLPattern::EffectiveHostCompareFunctor> >(diff, diff.end()),
+ URLPattern::EffectiveHostCompare);
+ if (diff.size() > 0)
return true;
}
@@ -1693,19 +1694,19 @@
return false;
}
-const std::set<std::string> Extension::GetEffectiveHostPermissions() const {
- std::set<std::string> effective_hosts;
+const ExtensionExtent Extension::GetEffectiveHostPermissions() const {
+ ExtensionExtent effective_hosts;
for (URLPatternList::const_iterator host = host_permissions_.begin();
host != host_permissions_.end(); ++host)
- effective_hosts.insert(host->host());
+ effective_hosts.AddPattern(*host);
for (UserScriptList::const_iterator content_script = content_scripts_.begin();
content_script != content_scripts_.end(); ++content_script) {
UserScript::PatternList::const_iterator pattern =
content_script->url_patterns().begin();
for (; pattern != content_script->url_patterns().end(); ++pattern)
- effective_hosts.insert(pattern->host());
+ effective_hosts.AddPattern(*pattern);
}
return effective_hosts;
« no previous file with comments | « chrome/common/extensions/extension.h ('k') | chrome/common/extensions/extension_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698