summaryrefslogtreecommitdiffstats
path: root/chrome/common/extensions/extension.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/common/extensions/extension.cc')
-rw-r--r--chrome/common/extensions/extension.cc18
1 files changed, 11 insertions, 7 deletions
diff --git a/chrome/common/extensions/extension.cc b/chrome/common/extensions/extension.cc
index de50d07..74f6b22 100644
--- a/chrome/common/extensions/extension.cc
+++ b/chrome/common/extensions/extension.cc
@@ -534,12 +534,11 @@ bool Extension::LoadUserScriptHelper(const DictionaryValue* content_script,
return false;
}
- URLPattern pattern;
+ URLPattern pattern(UserScript::kValidUserScriptSchemes);
if (CanExecuteScriptEverywhere())
- pattern = URLPattern(URLPattern::SCHEME_ALL);
- else
- pattern = URLPattern(UserScript::kValidUserScriptSchemes);
- if (!pattern.Parse(match_str)) {
+ pattern.set_valid_schemes(URLPattern::SCHEME_ALL);
+
+ if (URLPattern::PARSE_SUCCESS != pattern.Parse(match_str)) {
*error = ExtensionErrorUtils::FormatErrorMessage(errors::kInvalidMatch,
base::IntToString(definition_index), base::IntToString(j));
return false;
@@ -816,7 +815,12 @@ bool Extension::LoadExtent(const DictionaryValue* manifest,
}
URLPattern pattern(kValidWebExtentSchemes);
- if (!pattern.Parse(pattern_string)) {
+ URLPattern::ParseResult result = pattern.Parse(pattern_string);
+ if (result == URLPattern::PARSE_ERROR_EMPTY_PATH) {
+ pattern_string += "/";
+ result = pattern.Parse(pattern_string);
+ }
+ if (URLPattern::PARSE_SUCCESS != result) {
*error = ExtensionErrorUtils::FormatErrorMessage(value_error,
base::UintToString(i));
return false;
@@ -1729,7 +1733,7 @@ bool Extension::InitFromValue(const DictionaryValue& source, bool require_key,
(UserScript::kValidUserScriptSchemes |
URLPattern::SCHEME_CHROMEUI) & ~URLPattern::SCHEME_FILE);
- if (!pattern.Parse(permission_str)) {
+ if (URLPattern::PARSE_SUCCESS != pattern.Parse(permission_str)) {
*error = ExtensionErrorUtils::FormatErrorMessage(
errors::kInvalidPermission, base::IntToString(i));
return false;