| OLD | NEW |
| 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/extensions/extension_system.h" |
| 20 #include "chrome/browser/prefs/pref_service.h" | 21 #include "chrome/browser/prefs/pref_service.h" |
| 21 #include "chrome/browser/profiles/profile.h" | 22 #include "chrome/browser/profiles/profile.h" |
| 22 #include "chrome/common/chrome_notification_types.h" | 23 #include "chrome/common/chrome_notification_types.h" |
| 23 #include "chrome/common/extensions/permissions/api_permission.h" | 24 #include "chrome/common/extensions/permissions/api_permission.h" |
| 24 #include "chrome/common/pref_names.h" | 25 #include "chrome/common/pref_names.h" |
| 25 #include "content/public/browser/notification_details.h" | 26 #include "content/public/browser/notification_details.h" |
| 26 #include "content/public/browser/notification_source.h" | 27 #include "content/public/browser/notification_source.h" |
| 27 #include "extensions/common/error_utils.h" | 28 #include "extensions/common/error_utils.h" |
| 28 | 29 |
| 29 namespace keys = extensions::preference_api_constants; | 30 namespace keys = extensions::preference_api_constants; |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 268 bool rv = PrefMapping::GetInstance()->FindEventForBrowserPref( | 269 bool rv = PrefMapping::GetInstance()->FindEventForBrowserPref( |
| 269 browser_pref, &event_name, &permission); | 270 browser_pref, &event_name, &permission); |
| 270 DCHECK(rv); | 271 DCHECK(rv); |
| 271 | 272 |
| 272 ListValue args; | 273 ListValue args; |
| 273 DictionaryValue* dict = new DictionaryValue(); | 274 DictionaryValue* dict = new DictionaryValue(); |
| 274 args.Append(dict); | 275 args.Append(dict); |
| 275 const PrefServiceBase::Preference* pref = | 276 const PrefServiceBase::Preference* pref = |
| 276 pref_service->FindPreference(browser_pref.c_str()); | 277 pref_service->FindPreference(browser_pref.c_str()); |
| 277 CHECK(pref); | 278 CHECK(pref); |
| 278 ExtensionService* extension_service = profile_->GetExtensionService(); | 279 ExtensionService* extension_service = |
| 280 extensions::ExtensionSystem::Get(profile_)->extension_service(); |
| 279 PrefTransformerInterface* transformer = | 281 PrefTransformerInterface* transformer = |
| 280 PrefMapping::GetInstance()->FindTransformerForBrowserPref(browser_pref); | 282 PrefMapping::GetInstance()->FindTransformerForBrowserPref(browser_pref); |
| 281 Value* transformed_value = | 283 Value* transformed_value = |
| 282 transformer->BrowserToExtensionPref(pref->GetValue()); | 284 transformer->BrowserToExtensionPref(pref->GetValue()); |
| 283 if (!transformed_value) { | 285 if (!transformed_value) { |
| 284 LOG(ERROR) << | 286 LOG(ERROR) << |
| 285 ErrorUtils::FormatErrorMessage(kConversionErrorMessage, | 287 ErrorUtils::FormatErrorMessage(kConversionErrorMessage, |
| 286 pref->name()); | 288 pref->name()); |
| 287 return; | 289 return; |
| 288 } | 290 } |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 365 LOG(ERROR) << | 367 LOG(ERROR) << |
| 366 ErrorUtils::FormatErrorMessage(kConversionErrorMessage, | 368 ErrorUtils::FormatErrorMessage(kConversionErrorMessage, |
| 367 pref->name()); | 369 pref->name()); |
| 368 return false; | 370 return false; |
| 369 } | 371 } |
| 370 result->Set(keys::kValue, transformed_value); | 372 result->Set(keys::kValue, transformed_value); |
| 371 | 373 |
| 372 // Retrieve incognito status. | 374 // Retrieve incognito status. |
| 373 if (incognito) { | 375 if (incognito) { |
| 374 extensions::ExtensionPrefs* ep = | 376 extensions::ExtensionPrefs* ep = |
| 375 profile_->GetExtensionService()->extension_prefs(); | 377 extensions::ExtensionSystem::Get(profile_)->extension_service()-> |
| 378 extension_prefs(); |
| 376 result->SetBoolean(keys::kIncognitoSpecific, | 379 result->SetBoolean(keys::kIncognitoSpecific, |
| 377 ep->HasIncognitoPrefValue(browser_pref)); | 380 ep->HasIncognitoPrefValue(browser_pref)); |
| 378 } | 381 } |
| 379 | 382 |
| 380 SetResult(result.release()); | 383 SetResult(result.release()); |
| 381 return true; | 384 return true; |
| 382 } | 385 } |
| 383 | 386 |
| 384 SetPreferenceFunction::~SetPreferenceFunction() { } | 387 SetPreferenceFunction::~SetPreferenceFunction() { } |
| 385 | 388 |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 425 !profile_->HasOffTheRecordProfile()) { | 428 !profile_->HasOffTheRecordProfile()) { |
| 426 error_ = keys::kIncognitoSessionOnlyErrorMessage; | 429 error_ = keys::kIncognitoSessionOnlyErrorMessage; |
| 427 return false; | 430 return false; |
| 428 } | 431 } |
| 429 | 432 |
| 430 // Obtain pref. | 433 // Obtain pref. |
| 431 std::string browser_pref; | 434 std::string browser_pref; |
| 432 if (!ValidateBrowserPref(pref_key, &browser_pref)) | 435 if (!ValidateBrowserPref(pref_key, &browser_pref)) |
| 433 return false; | 436 return false; |
| 434 extensions::ExtensionPrefs* prefs = | 437 extensions::ExtensionPrefs* prefs = |
| 435 profile_->GetExtensionService()->extension_prefs(); | 438 extensions::ExtensionSystem::Get(profile_)->extension_service()-> |
| 439 extension_prefs(); |
| 436 const PrefService::Preference* pref = | 440 const PrefService::Preference* pref = |
| 437 prefs->pref_service()->FindPreference(browser_pref.c_str()); | 441 prefs->pref_service()->FindPreference(browser_pref.c_str()); |
| 438 CHECK(pref); | 442 CHECK(pref); |
| 439 | 443 |
| 440 // Validate new value. | 444 // Validate new value. |
| 441 EXTENSION_FUNCTION_VALIDATE(value->GetType() == pref->GetType()); | 445 EXTENSION_FUNCTION_VALIDATE(value->GetType() == pref->GetType()); |
| 442 PrefTransformerInterface* transformer = | 446 PrefTransformerInterface* transformer = |
| 443 PrefMapping::GetInstance()->FindTransformerForBrowserPref(browser_pref); | 447 PrefMapping::GetInstance()->FindTransformerForBrowserPref(browser_pref); |
| 444 std::string error; | 448 std::string error; |
| 445 bool bad_message = false; | 449 bool bad_message = false; |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 501 error_ = "Can't modify regular settings from an incognito context."; | 505 error_ = "Can't modify regular settings from an incognito context."; |
| 502 return false; | 506 return false; |
| 503 } | 507 } |
| 504 } | 508 } |
| 505 | 509 |
| 506 std::string browser_pref; | 510 std::string browser_pref; |
| 507 if (!ValidateBrowserPref(pref_key, &browser_pref)) | 511 if (!ValidateBrowserPref(pref_key, &browser_pref)) |
| 508 return false; | 512 return false; |
| 509 | 513 |
| 510 extensions::ExtensionPrefs* prefs = | 514 extensions::ExtensionPrefs* prefs = |
| 511 profile_->GetExtensionService()->extension_prefs(); | 515 extensions::ExtensionSystem::Get(profile_)->extension_service()-> |
| 516 extension_prefs(); |
| 512 prefs->RemoveExtensionControlledPref(extension_id(), browser_pref, scope); | 517 prefs->RemoveExtensionControlledPref(extension_id(), browser_pref, scope); |
| 513 return true; | 518 return true; |
| 514 } | 519 } |
| 515 | 520 |
| 516 } // namespace extensions | 521 } // namespace extensions |
| OLD | NEW |