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

Side by Side Diff: chrome/browser/extensions/api/preference/preference_api.cc

Issue 11312228: Move extension_error_utils.* and url_pattern_set.* into (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: move into extensions namespace Created 8 years, 1 month 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/api/preference/preference_api.h" 5 #include "chrome/browser/extensions/api/preference/preference_api.h"
6 6
7 #include <map> 7 #include <map>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/memory/singleton.h" 10 #include "base/memory/singleton.h"
11 #include "base/stl_util.h" 11 #include "base/stl_util.h"
12 #include "base/stringprintf.h" 12 #include "base/stringprintf.h"
13 #include "base/values.h" 13 #include "base/values.h"
14 #include "chrome/browser/extensions/api/preference/preference_api_constants.h" 14 #include "chrome/browser/extensions/api/preference/preference_api_constants.h"
15 #include "chrome/browser/extensions/api/preference/preference_helpers.h" 15 #include "chrome/browser/extensions/api/preference/preference_helpers.h"
16 #include "chrome/browser/extensions/api/proxy/proxy_api.h" 16 #include "chrome/browser/extensions/api/proxy/proxy_api.h"
17 #include "chrome/browser/extensions/extension_prefs.h" 17 #include "chrome/browser/extensions/extension_prefs.h"
18 #include "chrome/browser/extensions/extension_prefs_scope.h" 18 #include "chrome/browser/extensions/extension_prefs_scope.h"
19 #include "chrome/browser/extensions/extension_service.h" 19 #include "chrome/browser/extensions/extension_service.h"
20 #include "chrome/browser/prefs/pref_service.h" 20 #include "chrome/browser/prefs/pref_service.h"
21 #include "chrome/browser/profiles/profile.h" 21 #include "chrome/browser/profiles/profile.h"
22 #include "chrome/common/chrome_notification_types.h" 22 #include "chrome/common/chrome_notification_types.h"
23 #include "chrome/common/extensions/extension_error_utils.h"
24 #include "chrome/common/extensions/permissions/api_permission.h" 23 #include "chrome/common/extensions/permissions/api_permission.h"
25 #include "chrome/common/pref_names.h" 24 #include "chrome/common/pref_names.h"
26 #include "content/public/browser/notification_details.h" 25 #include "content/public/browser/notification_details.h"
27 #include "content/public/browser/notification_source.h" 26 #include "content/public/browser/notification_source.h"
27 #include "extensions/common/extension_error_utils.h"
28 28
29 namespace keys = extensions::preference_api_constants; 29 namespace keys = extensions::preference_api_constants;
30 namespace helpers = extensions::preference_helpers; 30 namespace helpers = extensions::preference_helpers;
31 31
32 namespace extensions { 32 namespace extensions {
33 33
34 namespace { 34 namespace {
35 35
36 struct PrefMappingEntry { 36 struct PrefMappingEntry {
37 // Name of the preference referenced by the extension API JSON. 37 // Name of the preference referenced by the extension API JSON.
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 const PrefServiceBase::Preference* pref = 274 const PrefServiceBase::Preference* pref =
275 pref_service->FindPreference(browser_pref.c_str()); 275 pref_service->FindPreference(browser_pref.c_str());
276 CHECK(pref); 276 CHECK(pref);
277 ExtensionService* extension_service = profile_->GetExtensionService(); 277 ExtensionService* extension_service = profile_->GetExtensionService();
278 PrefTransformerInterface* transformer = 278 PrefTransformerInterface* transformer =
279 PrefMapping::GetInstance()->FindTransformerForBrowserPref(browser_pref); 279 PrefMapping::GetInstance()->FindTransformerForBrowserPref(browser_pref);
280 Value* transformed_value = 280 Value* transformed_value =
281 transformer->BrowserToExtensionPref(pref->GetValue()); 281 transformer->BrowserToExtensionPref(pref->GetValue());
282 if (!transformed_value) { 282 if (!transformed_value) {
283 LOG(ERROR) << 283 LOG(ERROR) <<
284 ExtensionErrorUtils::FormatErrorMessage(kConversionErrorMessage, 284 ErrorUtils::FormatErrorMessage(kConversionErrorMessage,
285 pref->name()); 285 pref->name());
286 return; 286 return;
287 } 287 }
288 288
289 dict->Set(keys::kValue, transformed_value); 289 dict->Set(keys::kValue, transformed_value);
290 if (incognito) { 290 if (incognito) {
291 extensions::ExtensionPrefs* ep = extension_service->extension_prefs(); 291 extensions::ExtensionPrefs* ep = extension_service->extension_prefs();
292 dict->SetBoolean(keys::kIncognitoSpecific, 292 dict->SetBoolean(keys::kIncognitoSpecific,
293 ep->HasIncognitoPrefValue(browser_pref)); 293 ep->HasIncognitoPrefValue(browser_pref));
294 } 294 }
295 295
296 helpers::DispatchEventToExtensions(profile_, 296 helpers::DispatchEventToExtensions(profile_,
297 event_name, 297 event_name,
298 &args, 298 &args,
299 permission, 299 permission,
300 incognito, 300 incognito,
301 browser_pref); 301 browser_pref);
302 } 302 }
303 303
304 PreferenceFunction::~PreferenceFunction() { } 304 PreferenceFunction::~PreferenceFunction() { }
305 305
306 bool PreferenceFunction::ValidateBrowserPref( 306 bool PreferenceFunction::ValidateBrowserPref(
307 const std::string& extension_pref_key, 307 const std::string& extension_pref_key,
308 std::string* browser_pref_key) { 308 std::string* browser_pref_key) {
309 APIPermission::ID permission = APIPermission::kInvalid; 309 APIPermission::ID permission = APIPermission::kInvalid;
310 EXTENSION_FUNCTION_VALIDATE( 310 EXTENSION_FUNCTION_VALIDATE(
311 PrefMapping::GetInstance()->FindBrowserPrefForExtensionPref( 311 PrefMapping::GetInstance()->FindBrowserPrefForExtensionPref(
312 extension_pref_key, browser_pref_key, &permission)); 312 extension_pref_key, browser_pref_key, &permission));
313 if (!GetExtension()->HasAPIPermission(permission)) { 313 if (!GetExtension()->HasAPIPermission(permission)) {
314 error_ = ExtensionErrorUtils::FormatErrorMessage( 314 error_ = ErrorUtils::FormatErrorMessage(
315 keys::kPermissionErrorMessage, extension_pref_key); 315 keys::kPermissionErrorMessage, extension_pref_key);
316 return false; 316 return false;
317 } 317 }
318 return true; 318 return true;
319 } 319 }
320 320
321 GetPreferenceFunction::~GetPreferenceFunction() { } 321 GetPreferenceFunction::~GetPreferenceFunction() { }
322 322
323 bool GetPreferenceFunction::RunImpl() { 323 bool GetPreferenceFunction::RunImpl() {
324 std::string pref_key; 324 std::string pref_key;
(...skipping 30 matching lines...) Expand all
355 incognito); 355 incognito);
356 result->SetString(keys::kLevelOfControl, level_of_control); 356 result->SetString(keys::kLevelOfControl, level_of_control);
357 357
358 // Retrieve pref value. 358 // Retrieve pref value.
359 PrefTransformerInterface* transformer = 359 PrefTransformerInterface* transformer =
360 PrefMapping::GetInstance()->FindTransformerForBrowserPref(browser_pref); 360 PrefMapping::GetInstance()->FindTransformerForBrowserPref(browser_pref);
361 Value* transformed_value = 361 Value* transformed_value =
362 transformer->BrowserToExtensionPref(pref->GetValue()); 362 transformer->BrowserToExtensionPref(pref->GetValue());
363 if (!transformed_value) { 363 if (!transformed_value) {
364 LOG(ERROR) << 364 LOG(ERROR) <<
365 ExtensionErrorUtils::FormatErrorMessage(kConversionErrorMessage, 365 ErrorUtils::FormatErrorMessage(kConversionErrorMessage,
366 pref->name()); 366 pref->name());
367 return false; 367 return false;
368 } 368 }
369 result->Set(keys::kValue, transformed_value); 369 result->Set(keys::kValue, transformed_value);
370 370
371 // Retrieve incognito status. 371 // Retrieve incognito status.
372 if (incognito) { 372 if (incognito) {
373 extensions::ExtensionPrefs* ep = 373 extensions::ExtensionPrefs* ep =
374 profile_->GetExtensionService()->extension_prefs(); 374 profile_->GetExtensionService()->extension_prefs();
375 result->SetBoolean(keys::kIncognitoSpecific, 375 result->SetBoolean(keys::kIncognitoSpecific,
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 error_ = error; 448 error_ = error;
449 bad_message_ = bad_message; 449 bad_message_ = bad_message;
450 return false; 450 return false;
451 } 451 }
452 452
453 // Validate also that the stored value can be converted back by the 453 // Validate also that the stored value can be converted back by the
454 // transformer. 454 // transformer.
455 scoped_ptr<Value> extensionPrefValue( 455 scoped_ptr<Value> extensionPrefValue(
456 transformer->BrowserToExtensionPref(browser_pref_value.get())); 456 transformer->BrowserToExtensionPref(browser_pref_value.get()));
457 if (!extensionPrefValue) { 457 if (!extensionPrefValue) {
458 error_ = ExtensionErrorUtils::FormatErrorMessage(kConversionErrorMessage, 458 error_ = ErrorUtils::FormatErrorMessage(kConversionErrorMessage,
459 pref->name()); 459 pref->name());
460 bad_message_ = true; 460 bad_message_ = true;
461 return false; 461 return false;
462 } 462 }
463 463
464 prefs->SetExtensionControlledPref(extension_id(), 464 prefs->SetExtensionControlledPref(extension_id(),
465 browser_pref, 465 browser_pref,
466 scope, 466 scope,
467 browser_pref_value.release()); 467 browser_pref_value.release());
468 return true; 468 return true;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 if (!ValidateBrowserPref(pref_key, &browser_pref)) 506 if (!ValidateBrowserPref(pref_key, &browser_pref))
507 return false; 507 return false;
508 508
509 extensions::ExtensionPrefs* prefs = 509 extensions::ExtensionPrefs* prefs =
510 profile_->GetExtensionService()->extension_prefs(); 510 profile_->GetExtensionService()->extension_prefs();
511 prefs->RemoveExtensionControlledPref(extension_id(), browser_pref, scope); 511 prefs->RemoveExtensionControlledPref(extension_id(), browser_pref, scope);
512 return true; 512 return true;
513 } 513 }
514 514
515 } // namespace extensions 515 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698