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

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: hate 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/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 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 const PrefServiceBase::Preference* pref = 275 const PrefServiceBase::Preference* pref =
276 pref_service->FindPreference(browser_pref.c_str()); 276 pref_service->FindPreference(browser_pref.c_str());
277 CHECK(pref); 277 CHECK(pref);
278 ExtensionService* extension_service = profile_->GetExtensionService(); 278 ExtensionService* extension_service = profile_->GetExtensionService();
279 PrefTransformerInterface* transformer = 279 PrefTransformerInterface* transformer =
280 PrefMapping::GetInstance()->FindTransformerForBrowserPref(browser_pref); 280 PrefMapping::GetInstance()->FindTransformerForBrowserPref(browser_pref);
281 Value* transformed_value = 281 Value* transformed_value =
282 transformer->BrowserToExtensionPref(pref->GetValue()); 282 transformer->BrowserToExtensionPref(pref->GetValue());
283 if (!transformed_value) { 283 if (!transformed_value) {
284 LOG(ERROR) << 284 LOG(ERROR) <<
285 ExtensionErrorUtils::FormatErrorMessage(kConversionErrorMessage, 285 ErrorUtils::FormatErrorMessage(kConversionErrorMessage,
286 pref->name()); 286 pref->name());
287 return; 287 return;
288 } 288 }
289 289
290 dict->Set(keys::kValue, transformed_value); 290 dict->Set(keys::kValue, transformed_value);
291 if (incognito) { 291 if (incognito) {
292 extensions::ExtensionPrefs* ep = extension_service->extension_prefs(); 292 extensions::ExtensionPrefs* ep = extension_service->extension_prefs();
293 dict->SetBoolean(keys::kIncognitoSpecific, 293 dict->SetBoolean(keys::kIncognitoSpecific,
294 ep->HasIncognitoPrefValue(browser_pref)); 294 ep->HasIncognitoPrefValue(browser_pref));
295 } 295 }
296 296
297 helpers::DispatchEventToExtensions(profile_, 297 helpers::DispatchEventToExtensions(profile_,
298 event_name, 298 event_name,
299 &args, 299 &args,
300 permission, 300 permission,
301 incognito, 301 incognito,
302 browser_pref); 302 browser_pref);
303 } 303 }
304 304
305 PreferenceFunction::~PreferenceFunction() { } 305 PreferenceFunction::~PreferenceFunction() { }
306 306
307 bool PreferenceFunction::ValidateBrowserPref( 307 bool PreferenceFunction::ValidateBrowserPref(
308 const std::string& extension_pref_key, 308 const std::string& extension_pref_key,
309 std::string* browser_pref_key) { 309 std::string* browser_pref_key) {
310 APIPermission::ID permission = APIPermission::kInvalid; 310 APIPermission::ID permission = APIPermission::kInvalid;
311 EXTENSION_FUNCTION_VALIDATE( 311 EXTENSION_FUNCTION_VALIDATE(
312 PrefMapping::GetInstance()->FindBrowserPrefForExtensionPref( 312 PrefMapping::GetInstance()->FindBrowserPrefForExtensionPref(
313 extension_pref_key, browser_pref_key, &permission)); 313 extension_pref_key, browser_pref_key, &permission));
314 if (!GetExtension()->HasAPIPermission(permission)) { 314 if (!GetExtension()->HasAPIPermission(permission)) {
315 error_ = ExtensionErrorUtils::FormatErrorMessage( 315 error_ = ErrorUtils::FormatErrorMessage(
316 keys::kPermissionErrorMessage, extension_pref_key); 316 keys::kPermissionErrorMessage, extension_pref_key);
317 return false; 317 return false;
318 } 318 }
319 return true; 319 return true;
320 } 320 }
321 321
322 GetPreferenceFunction::~GetPreferenceFunction() { } 322 GetPreferenceFunction::~GetPreferenceFunction() { }
323 323
324 bool GetPreferenceFunction::RunImpl() { 324 bool GetPreferenceFunction::RunImpl() {
325 std::string pref_key; 325 std::string pref_key;
(...skipping 30 matching lines...) Expand all
356 incognito); 356 incognito);
357 result->SetString(keys::kLevelOfControl, level_of_control); 357 result->SetString(keys::kLevelOfControl, level_of_control);
358 358
359 // Retrieve pref value. 359 // Retrieve pref value.
360 PrefTransformerInterface* transformer = 360 PrefTransformerInterface* transformer =
361 PrefMapping::GetInstance()->FindTransformerForBrowserPref(browser_pref); 361 PrefMapping::GetInstance()->FindTransformerForBrowserPref(browser_pref);
362 Value* transformed_value = 362 Value* transformed_value =
363 transformer->BrowserToExtensionPref(pref->GetValue()); 363 transformer->BrowserToExtensionPref(pref->GetValue());
364 if (!transformed_value) { 364 if (!transformed_value) {
365 LOG(ERROR) << 365 LOG(ERROR) <<
366 ExtensionErrorUtils::FormatErrorMessage(kConversionErrorMessage, 366 ErrorUtils::FormatErrorMessage(kConversionErrorMessage,
367 pref->name()); 367 pref->name());
368 return false; 368 return false;
369 } 369 }
370 result->Set(keys::kValue, transformed_value); 370 result->Set(keys::kValue, transformed_value);
371 371
372 // Retrieve incognito status. 372 // Retrieve incognito status.
373 if (incognito) { 373 if (incognito) {
374 extensions::ExtensionPrefs* ep = 374 extensions::ExtensionPrefs* ep =
375 profile_->GetExtensionService()->extension_prefs(); 375 profile_->GetExtensionService()->extension_prefs();
376 result->SetBoolean(keys::kIncognitoSpecific, 376 result->SetBoolean(keys::kIncognitoSpecific,
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 error_ = error; 449 error_ = error;
450 bad_message_ = bad_message; 450 bad_message_ = bad_message;
451 return false; 451 return false;
452 } 452 }
453 453
454 // Validate also that the stored value can be converted back by the 454 // Validate also that the stored value can be converted back by the
455 // transformer. 455 // transformer.
456 scoped_ptr<Value> extensionPrefValue( 456 scoped_ptr<Value> extensionPrefValue(
457 transformer->BrowserToExtensionPref(browser_pref_value.get())); 457 transformer->BrowserToExtensionPref(browser_pref_value.get()));
458 if (!extensionPrefValue) { 458 if (!extensionPrefValue) {
459 error_ = ExtensionErrorUtils::FormatErrorMessage(kConversionErrorMessage, 459 error_ = ErrorUtils::FormatErrorMessage(kConversionErrorMessage,
460 pref->name()); 460 pref->name());
461 bad_message_ = true; 461 bad_message_ = true;
462 return false; 462 return false;
463 } 463 }
464 464
465 prefs->SetExtensionControlledPref(extension_id(), 465 prefs->SetExtensionControlledPref(extension_id(),
466 browser_pref, 466 browser_pref,
467 scope, 467 scope,
468 browser_pref_value.release()); 468 browser_pref_value.release());
469 return true; 469 return true;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 if (!ValidateBrowserPref(pref_key, &browser_pref)) 507 if (!ValidateBrowserPref(pref_key, &browser_pref))
508 return false; 508 return false;
509 509
510 extensions::ExtensionPrefs* prefs = 510 extensions::ExtensionPrefs* prefs =
511 profile_->GetExtensionService()->extension_prefs(); 511 profile_->GetExtensionService()->extension_prefs();
512 prefs->RemoveExtensionControlledPref(extension_id(), browser_pref, scope); 512 prefs->RemoveExtensionControlledPref(extension_id(), browser_pref, scope);
513 return true; 513 return true;
514 } 514 }
515 515
516 } // namespace extensions 516 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698