| Index: chrome/common/extensions/extension.cc
|
| ===================================================================
|
| --- chrome/common/extensions/extension.cc (revision 56058)
|
| +++ chrome/common/extensions/extension.cc (working copy)
|
| @@ -850,17 +850,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;
|
| }
|
|
|
| @@ -1678,19 +1679,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;
|
|
|