Index: chrome/common/extensions/extension_permission_set.cc |
diff --git a/chrome/common/extensions/extension_permission_set.cc b/chrome/common/extensions/extension_permission_set.cc |
index ee15ac8b3420f1779324a4e00d5ad93855092c1d..05550022fa656dff70a5dccdeb2d6b90832f6afe 100644 |
--- a/chrome/common/extensions/extension_permission_set.cc |
+++ b/chrome/common/extensions/extension_permission_set.cc |
@@ -747,15 +747,18 @@ std::set<std::string> ExtensionPermissionSet::GetDistinctHosts( |
void ExtensionPermissionSet::InitEffectiveHosts() { |
effective_hosts_.ClearPatterns(); |
+ URLPatternSet::CreateUnion( |
+ explicit_hosts(), scriptable_hosts(), &effective_hosts_); |
+ |
+ // When this has effective access to all hosts, compact the list of hosts |
+ // to only contain <all_urls>. |
if (HasEffectiveAccessToAllHosts()) { |
URLPattern all_urls(URLPattern::SCHEME_ALL); |
all_urls.SetMatchAllURLs(true); |
+ effective_hosts_.ClearPatterns(); |
effective_hosts_.AddPattern(all_urls); |
return; |
} |
- |
- URLPatternSet::CreateUnion( |
- explicit_hosts(), scriptable_hosts(), &effective_hosts_); |
} |
void ExtensionPermissionSet::InitImplicitExtensionPermissions( |