Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(243)

Side by Side Diff: chrome/browser/extensions/extension_content_settings_api.cc

Issue 7229012: Use extension match pattern syntax in content settings extension API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 9 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/browser/extensions/extension_content_settings_api.h" 5 #include "chrome/browser/extensions/extension_content_settings_api.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 bool SetContentSettingFunction::RunImpl() { 162 bool SetContentSettingFunction::RunImpl() {
163 std::string content_type_str; 163 std::string content_type_str;
164 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &content_type_str)); 164 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &content_type_str));
165 ContentSettingsType content_type = 165 ContentSettingsType content_type =
166 helpers::StringToContentSettingsType(content_type_str); 166 helpers::StringToContentSettingsType(content_type_str);
167 EXTENSION_FUNCTION_VALIDATE(content_type != CONTENT_SETTINGS_TYPE_DEFAULT); 167 EXTENSION_FUNCTION_VALIDATE(content_type != CONTENT_SETTINGS_TYPE_DEFAULT);
168 168
169 DictionaryValue* details = NULL; 169 DictionaryValue* details = NULL;
170 EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(1, &details)); 170 EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(1, &details));
171 171
172 DictionaryValue* top_level_pattern_dict = NULL; 172 std::string top_level_pattern_str;
173 std::string top_level_error;
173 EXTENSION_FUNCTION_VALIDATE( 174 EXTENSION_FUNCTION_VALIDATE(
174 details->GetDictionary(keys::kTopLevelPatternKey, 175 details->GetString(keys::kTopLevelPatternKey, &top_level_pattern_str));
175 &top_level_pattern_dict)); 176 ContentSettingsPattern top_level_pattern =
176 std::string top_level_pattern_str; 177 helpers::ParseExtensionPattern(top_level_pattern_str, &top_level_error);
178 if (!top_level_pattern.IsValid()) {
179 error_ = top_level_error;
180 return false;
181 }
182
183 std::string embedded_pattern_str;
184 std::string embedded_error;
177 EXTENSION_FUNCTION_VALIDATE( 185 EXTENSION_FUNCTION_VALIDATE(
178 top_level_pattern_dict->GetString(keys::kPatternKey, 186 details->GetString(keys::kEmbeddedPatternKey, &embedded_pattern_str));
179 &top_level_pattern_str));
180 ContentSettingsPattern top_level_pattern =
181 ContentSettingsPattern::FromString(top_level_pattern_str);
182 EXTENSION_FUNCTION_VALIDATE(top_level_pattern.IsValid());
183
184 DictionaryValue* embedded_pattern_dict = NULL;
185 EXTENSION_FUNCTION_VALIDATE(
186 details->GetDictionary(keys::kEmbeddedPatternKey,
187 &embedded_pattern_dict));
188 std::string embedded_pattern_str;
189 EXTENSION_FUNCTION_VALIDATE(
190 embedded_pattern_dict->GetString(keys::kPatternKey,
191 &embedded_pattern_str));
192 ContentSettingsPattern embedded_pattern = 187 ContentSettingsPattern embedded_pattern =
193 ContentSettingsPattern::FromString(embedded_pattern_str); 188 helpers::ParseExtensionPattern(embedded_pattern_str, &embedded_error);
194 EXTENSION_FUNCTION_VALIDATE(embedded_pattern.IsValid()); 189 if (!embedded_pattern.IsValid()) {
190 error_ = embedded_error;
191 return false;
192 }
195 193
196 std::string resource_identifier; 194 std::string resource_identifier;
197 if (details->HasKey(keys::kResourceIdentifierKey)) { 195 if (details->HasKey(keys::kResourceIdentifierKey)) {
198 DictionaryValue* resource_identifier_dict = NULL; 196 DictionaryValue* resource_identifier_dict = NULL;
199 EXTENSION_FUNCTION_VALIDATE( 197 EXTENSION_FUNCTION_VALIDATE(
200 details->GetDictionary(keys::kResourceIdentifierKey, 198 details->GetDictionary(keys::kResourceIdentifierKey,
201 &resource_identifier_dict)); 199 &resource_identifier_dict));
202 EXTENSION_FUNCTION_VALIDATE( 200 EXTENSION_FUNCTION_VALIDATE(
203 resource_identifier_dict->GetString(keys::kIdKey, 201 resource_identifier_dict->GetString(keys::kIdKey,
204 &resource_identifier)); 202 &resource_identifier));
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 BrowserThread::PostTask( 296 BrowserThread::PostTask(
299 BrowserThread::UI, FROM_HERE, base::Bind( 297 BrowserThread::UI, FROM_HERE, base::Bind(
300 &GetResourceIdentifiersFunction::SendResponse, this, true)); 298 &GetResourceIdentifiersFunction::SendResponse, this, true));
301 } 299 }
302 300
303 // static 301 // static
304 void GetResourceIdentifiersFunction::SetPluginListForTesting( 302 void GetResourceIdentifiersFunction::SetPluginListForTesting(
305 webkit::npapi::PluginList* plugin_list) { 303 webkit::npapi::PluginList* plugin_list) {
306 g_plugin_list = plugin_list; 304 g_plugin_list = plugin_list;
307 } 305 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/extensions/extension_content_settings_helpers.h » ('j') | chrome/common/extensions/url_pattern.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698