Chromium Code Reviews| Index: chrome/browser/extensions/extension_management_internal.cc |
| diff --git a/chrome/browser/extensions/extension_management_internal.cc b/chrome/browser/extensions/extension_management_internal.cc |
| index a2596ae6f4a73d2a9c4772dece0dfeb2c26e2e63..009aba63cd559c9ab25caf4d115e8858f817be2b 100644 |
| --- a/chrome/browser/extensions/extension_management_internal.cc |
| +++ b/chrome/browser/extensions/extension_management_internal.cc |
| @@ -115,6 +115,14 @@ bool IndividualSettings::Parse(const base::DictionaryValue* dict, |
| // Get the list of URLPatterns. |
| if (dict->GetListWithoutPathExpansion(key, |
| &host_list_value)) { |
| + if (host_list_value->GetSize() > |
| + schema_constants::kMaxItemsURLPatternSet) { |
| + LOG(WARNING) << "Exceeded maximum number of URL match patterns (" |
|
dcheng
2017/02/06 07:05:29
DLOG(WARNING)
nrpeter
2017/02/06 22:53:15
Why would we want to change this to a DLOG? We wan
dcheng
2017/02/07 07:47:12
In general, having release logging should be extre
|
| + << schema_constants::kMaxItemsURLPatternSet |
| + << ") for attribute '" << key << "'"; |
| + return false; |
| + } |
| + |
| out_value->ClearPatterns(); |
| const int extension_scheme_mask = |
| URLPattern::GetValidSchemeMaskForExtensions(); |
| @@ -122,7 +130,8 @@ bool IndividualSettings::Parse(const base::DictionaryValue* dict, |
| std::string unparsed_str; |
| host_list_value->GetString(i, &unparsed_str); |
| URLPattern pattern = URLPattern(extension_scheme_mask); |
| - URLPattern::ParseResult parse_result = pattern.Parse(unparsed_str); |
| + URLPattern::ParseResult parse_result = |
| + pattern.Parse(unparsed_str, true); |
| if (parse_result != URLPattern::PARSE_SUCCESS) { |
| LOG(WARNING) << kMalformedPreferenceWarning; |
| LOG(WARNING) << "Invalid URL pattern '" + unparsed_str + |