| Index: chrome/browser/extensions/extension_content_settings_api.cc
|
| diff --git a/chrome/browser/extensions/extension_content_settings_api.cc b/chrome/browser/extensions/extension_content_settings_api.cc
|
| index eaed7c08cbd7064bd49defcecae5b0bc49f1b6f8..58f83438e687f7870bd5cd91d2324b6010a0c118 100644
|
| --- a/chrome/browser/extensions/extension_content_settings_api.cc
|
| +++ b/chrome/browser/extensions/extension_content_settings_api.cc
|
| @@ -169,29 +169,27 @@ bool SetContentSettingFunction::RunImpl() {
|
| DictionaryValue* details = NULL;
|
| EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(1, &details));
|
|
|
| - DictionaryValue* top_level_pattern_dict = NULL;
|
| - EXTENSION_FUNCTION_VALIDATE(
|
| - details->GetDictionary(keys::kTopLevelPatternKey,
|
| - &top_level_pattern_dict));
|
| std::string top_level_pattern_str;
|
| + std::string top_level_error;
|
| EXTENSION_FUNCTION_VALIDATE(
|
| - top_level_pattern_dict->GetString(keys::kPatternKey,
|
| - &top_level_pattern_str));
|
| + details->GetString(keys::kTopLevelPatternKey, &top_level_pattern_str));
|
| ContentSettingsPattern top_level_pattern =
|
| - ContentSettingsPattern::FromString(top_level_pattern_str);
|
| - EXTENSION_FUNCTION_VALIDATE(top_level_pattern.IsValid());
|
| + helpers::ParseExtensionPattern(top_level_pattern_str, &top_level_error);
|
| + if (!top_level_pattern.IsValid()) {
|
| + error_ = top_level_error;
|
| + return false;
|
| + }
|
|
|
| - DictionaryValue* embedded_pattern_dict = NULL;
|
| - EXTENSION_FUNCTION_VALIDATE(
|
| - details->GetDictionary(keys::kEmbeddedPatternKey,
|
| - &embedded_pattern_dict));
|
| std::string embedded_pattern_str;
|
| + std::string embedded_error;
|
| EXTENSION_FUNCTION_VALIDATE(
|
| - embedded_pattern_dict->GetString(keys::kPatternKey,
|
| - &embedded_pattern_str));
|
| + details->GetString(keys::kEmbeddedPatternKey, &embedded_pattern_str));
|
| ContentSettingsPattern embedded_pattern =
|
| - ContentSettingsPattern::FromString(embedded_pattern_str);
|
| - EXTENSION_FUNCTION_VALIDATE(embedded_pattern.IsValid());
|
| + helpers::ParseExtensionPattern(embedded_pattern_str, &embedded_error);
|
| + if (!embedded_pattern.IsValid()) {
|
| + error_ = embedded_error;
|
| + return false;
|
| + }
|
|
|
| std::string resource_identifier;
|
| if (details->HasKey(keys::kResourceIdentifierKey)) {
|
|
|