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

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

Issue 785723002: Add new extension APIs related to animation policy. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: animationPolicy added to accessibilityFeatures Created 6 years 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
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/lazy_instance.h" 10 #include "base/lazy_instance.h"
11 #include "base/memory/singleton.h" 11 #include "base/memory/singleton.h"
12 #include "base/prefs/pref_service.h" 12 #include "base/prefs/pref_service.h"
13 #include "base/stl_util.h" 13 #include "base/stl_util.h"
14 #include "base/strings/stringprintf.h" 14 #include "base/strings/stringprintf.h"
15 #include "base/values.h" 15 #include "base/values.h"
16 #include "chrome/browser/chrome_notification_types.h" 16 #include "chrome/browser/chrome_notification_types.h"
17 #include "chrome/browser/extensions/api/content_settings/content_settings_servic e.h" 17 #include "chrome/browser/extensions/api/content_settings/content_settings_servic e.h"
18 #include "chrome/browser/extensions/api/preference/preference_api_constants.h" 18 #include "chrome/browser/extensions/api/preference/preference_api_constants.h"
19 #include "chrome/browser/extensions/api/preference/preference_helpers.h" 19 #include "chrome/browser/extensions/api/preference/preference_helpers.h"
20 #include "chrome/browser/extensions/api/proxy/proxy_api.h" 20 #include "chrome/browser/extensions/api/proxy/proxy_api.h"
21 #include "chrome/browser/extensions/extension_service.h" 21 #include "chrome/browser/extensions/extension_service.h"
22 #include "chrome/browser/net/prediction_options.h" 22 #include "chrome/browser/net/prediction_options.h"
23 #include "chrome/browser/profiles/profile.h" 23 #include "chrome/browser/profiles/profile.h"
24 #include "chrome/common/pref_names.h" 24 #include "chrome/common/pref_names.h"
25 #include "components/translate/core/common/translate_pref_names.h" 25 #include "components/translate/core/common/translate_pref_names.h"
26 #include "content/public/browser/browser_accessibility_state.h"
26 #include "content/public/browser/notification_details.h" 27 #include "content/public/browser/notification_details.h"
27 #include "content/public/browser/notification_source.h" 28 #include "content/public/browser/notification_source.h"
28 #include "extensions/browser/extension_pref_value_map.h" 29 #include "extensions/browser/extension_pref_value_map.h"
29 #include "extensions/browser/extension_pref_value_map_factory.h" 30 #include "extensions/browser/extension_pref_value_map_factory.h"
30 #include "extensions/browser/extension_prefs.h" 31 #include "extensions/browser/extension_prefs.h"
31 #include "extensions/browser/extension_prefs_factory.h" 32 #include "extensions/browser/extension_prefs_factory.h"
32 #include "extensions/browser/extension_system_provider.h" 33 #include "extensions/browser/extension_system_provider.h"
33 #include "extensions/browser/extensions_browser_client.h" 34 #include "extensions/browser/extensions_browser_client.h"
34 #include "extensions/browser/pref_names.h" 35 #include "extensions/browser/pref_names.h"
35 #include "extensions/common/error_utils.h" 36 #include "extensions/common/error_utils.h"
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 {"spokenFeedback", prefs::kAccessibilitySpokenFeedbackEnabled, 112 {"spokenFeedback", prefs::kAccessibilitySpokenFeedbackEnabled,
112 APIPermission::kAccessibilityFeaturesRead, 113 APIPermission::kAccessibilityFeaturesRead,
113 APIPermission::kAccessibilityFeaturesModify}, 114 APIPermission::kAccessibilityFeaturesModify},
114 {"stickyKeys", prefs::kAccessibilityStickyKeysEnabled, 115 {"stickyKeys", prefs::kAccessibilityStickyKeysEnabled,
115 APIPermission::kAccessibilityFeaturesRead, 116 APIPermission::kAccessibilityFeaturesRead,
116 APIPermission::kAccessibilityFeaturesModify}, 117 APIPermission::kAccessibilityFeaturesModify},
117 {"virtualKeyboard", prefs::kAccessibilityVirtualKeyboardEnabled, 118 {"virtualKeyboard", prefs::kAccessibilityVirtualKeyboardEnabled,
118 APIPermission::kAccessibilityFeaturesRead, 119 APIPermission::kAccessibilityFeaturesRead,
119 APIPermission::kAccessibilityFeaturesModify}, 120 APIPermission::kAccessibilityFeaturesModify},
120 #endif 121 #endif
122 // accessibilityFeatures.animationPolicy is available for
123 // all platforms but the others from accessibilityFeatures
124 // is only avaiable for OS_CHROMEOS.
125 {"animationPolicy", prefs::kAnimationPolicy,
126 APIPermission::kAccessibilityFeaturesRead,
127 APIPermission::kAccessibilityFeaturesModify}
121 }; 128 };
122 129
123 class IdentityPrefTransformer : public PrefTransformerInterface { 130 class IdentityPrefTransformer : public PrefTransformerInterface {
124 public: 131 public:
125 base::Value* ExtensionToBrowserPref(const base::Value* extension_pref, 132 base::Value* ExtensionToBrowserPref(const base::Value* extension_pref,
126 std::string* error, 133 std::string* error,
127 bool* bad_message) override { 134 bool* bad_message) override {
128 return extension_pref->DeepCopy(); 135 return extension_pref->DeepCopy();
129 } 136 }
130 137
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
443 : profile_(Profile::FromBrowserContext(context)) { 450 : profile_(Profile::FromBrowserContext(context)) {
444 for (size_t i = 0; i < arraysize(kPrefMapping); ++i) { 451 for (size_t i = 0; i < arraysize(kPrefMapping); ++i) {
445 std::string event_name; 452 std::string event_name;
446 APIPermission::ID permission = APIPermission::kInvalid; 453 APIPermission::ID permission = APIPermission::kInvalid;
447 bool rv = PrefMapping::GetInstance()->FindEventForBrowserPref( 454 bool rv = PrefMapping::GetInstance()->FindEventForBrowserPref(
448 kPrefMapping[i].browser_pref, &event_name, &permission); 455 kPrefMapping[i].browser_pref, &event_name, &permission);
449 DCHECK(rv); 456 DCHECK(rv);
450 EventRouter::Get(profile_)->RegisterObserver(this, event_name); 457 EventRouter::Get(profile_)->RegisterObserver(this, event_name);
451 } 458 }
452 content_settings_store()->AddObserver(this); 459 content_settings_store()->AddObserver(this);
460
461 PrefService* prefs = profile_->GetPrefs();
462 pref_change_registrar_.Init(prefs);
463 base::Closure animation_callback = base::Bind(
464 &PreferenceAPI::UpdateAnimationPolicy, base::Unretained(this));
465 pref_change_registrar_.Add(prefs::kAnimationPolicy, animation_callback);
466 }
467
468 void PreferenceAPI::UpdateAnimationPolicy() {
469 content::BrowserAccessibilityState::GetInstance()
470 ->UpdateAnimationPolicy();
453 } 471 }
454 472
455 PreferenceAPI::~PreferenceAPI() { 473 PreferenceAPI::~PreferenceAPI() {
456 } 474 }
457 475
458 void PreferenceAPI::Shutdown() { 476 void PreferenceAPI::Shutdown() {
459 EventRouter::Get(profile_)->UnregisterObserver(this); 477 EventRouter::Get(profile_)->UnregisterObserver(this);
460 if (!extension_prefs()->extensions_disabled()) 478 if (!extension_prefs()->extensions_disabled())
461 ClearIncognitoSessionOnlyContentSettings(); 479 ClearIncognitoSessionOnlyContentSettings();
462 content_settings_store()->RemoveObserver(this); 480 content_settings_store()->RemoveObserver(this);
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
740 pref_key, PreferenceFunction::PERMISSION_TYPE_WRITE, &browser_pref)) { 758 pref_key, PreferenceFunction::PERMISSION_TYPE_WRITE, &browser_pref)) {
741 return false; 759 return false;
742 } 760 }
743 761
744 PreferenceAPI::Get(GetProfile()) 762 PreferenceAPI::Get(GetProfile())
745 ->RemoveExtensionControlledPref(extension_id(), browser_pref, scope); 763 ->RemoveExtensionControlledPref(extension_id(), browser_pref, scope);
746 return true; 764 return true;
747 } 765 }
748 766
749 } // namespace extensions 767 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698