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 |