Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 "chrome/common/extensions/extension.h" | 5 #include "chrome/common/extensions/extension.h" |
| 6 | 6 |
| 7 #include "app/resource_bundle.h" | 7 #include "app/resource_bundle.h" |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
| 10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
| (...skipping 964 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 975 } | 975 } |
| 976 | 976 |
| 977 // Only accept http/https persmissions at the moment. | 977 // Only accept http/https persmissions at the moment. |
| 978 if ((pattern.scheme() != chrome::kHttpScheme) && | 978 if ((pattern.scheme() != chrome::kHttpScheme) && |
| 979 (pattern.scheme() != chrome::kHttpsScheme)) { | 979 (pattern.scheme() != chrome::kHttpsScheme)) { |
| 980 *error = ExtensionErrorUtils::FormatErrorMessage( | 980 *error = ExtensionErrorUtils::FormatErrorMessage( |
| 981 errors::kInvalidPermissionScheme, IntToString(i)); | 981 errors::kInvalidPermissionScheme, IntToString(i)); |
| 982 return false; | 982 return false; |
| 983 } | 983 } |
| 984 | 984 |
| 985 // The path component is not used for host permissions, so we force it to | |
|
Erik does not do reviews
2009/09/10 18:23:21
I guess this means we can wind up with multiple du
Aaron Boodman
2009/09/10 18:55:31
Actually the permissions are kept in a vector now,
| |
| 986 // match all paths. | |
| 987 pattern.set_path("/*"); | |
| 988 | |
| 985 host_permissions_.push_back(pattern); | 989 host_permissions_.push_back(pattern); |
| 986 } | 990 } |
| 987 } | 991 } |
| 988 | 992 |
| 989 // Initialize default locale (if present). | 993 // Initialize default locale (if present). |
| 990 if (source.HasKey(keys::kDefaultLocale)) { | 994 if (source.HasKey(keys::kDefaultLocale)) { |
| 991 std::string default_locale; | 995 std::string default_locale; |
| 992 if (!source.GetString(keys::kDefaultLocale, &default_locale)) { | 996 if (!source.GetString(keys::kDefaultLocale, &default_locale)) { |
| 993 *error = errors::kInvalidDefaultLocale; | 997 *error = errors::kInvalidDefaultLocale; |
| 994 return false; | 998 return false; |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1080 } | 1084 } |
| 1081 | 1085 |
| 1082 FilePath Extension::GetIconPath(Icons icon) { | 1086 FilePath Extension::GetIconPath(Icons icon) { |
| 1083 std::map<int, std::string>::const_iterator iter = | 1087 std::map<int, std::string>::const_iterator iter = |
| 1084 icons_.find(Extension::EXTENSION_ICON_LARGE); | 1088 icons_.find(Extension::EXTENSION_ICON_LARGE); |
| 1085 if (iter == icons_.end()) | 1089 if (iter == icons_.end()) |
| 1086 return FilePath(); | 1090 return FilePath(); |
| 1087 return GetResourcePath(iter->second); | 1091 return GetResourcePath(iter->second); |
| 1088 } | 1092 } |
| 1089 | 1093 |
| 1094 bool Extension::CanAccessHost(const GURL& url) const { | |
| 1095 for (HostPermissions::const_iterator host = host_permissions_.begin(); | |
| 1096 host != host_permissions_.end(); ++host) { | |
| 1097 if (host->MatchesUrl(url)) | |
| 1098 return true; | |
| 1099 } | |
| 1100 | |
| 1101 return false; | |
| 1102 } | |
| 1103 | |
| 1090 const std::set<std::string> Extension::GetEffectiveHostPermissions() const { | 1104 const std::set<std::string> Extension::GetEffectiveHostPermissions() const { |
| 1091 std::set<std::string> effective_hosts; | 1105 std::set<std::string> effective_hosts; |
| 1092 | 1106 |
| 1093 for (HostPermissions::const_iterator host = host_permissions_.begin(); | 1107 for (HostPermissions::const_iterator host = host_permissions_.begin(); |
| 1094 host != host_permissions_.end(); ++host) | 1108 host != host_permissions_.end(); ++host) |
| 1095 effective_hosts.insert(host->host()); | 1109 effective_hosts.insert(host->host()); |
| 1096 | 1110 |
| 1097 for (UserScriptList::const_iterator content_script = content_scripts_.begin(); | 1111 for (UserScriptList::const_iterator content_script = content_scripts_.begin(); |
| 1098 content_script != content_scripts_.end(); ++content_script) { | 1112 content_script != content_scripts_.end(); ++content_script) { |
| 1099 UserScript::PatternList::const_iterator pattern = | 1113 UserScript::PatternList::const_iterator pattern = |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 1117 UserScript::PatternList::const_iterator pattern = | 1131 UserScript::PatternList::const_iterator pattern = |
| 1118 content_script->url_patterns().begin(); | 1132 content_script->url_patterns().begin(); |
| 1119 for (; pattern != content_script->url_patterns().end(); ++pattern) { | 1133 for (; pattern != content_script->url_patterns().end(); ++pattern) { |
| 1120 if (pattern->match_subdomains() && pattern->host().empty()) | 1134 if (pattern->match_subdomains() && pattern->host().empty()) |
| 1121 return true; | 1135 return true; |
| 1122 } | 1136 } |
| 1123 } | 1137 } |
| 1124 | 1138 |
| 1125 return false; | 1139 return false; |
| 1126 } | 1140 } |
| OLD | NEW |