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

Side by Side Diff: chrome/browser/chromeos/accessibility/accessibility_manager.h

Issue 682943002: Make chrome/browser/chromeos/accessibility compile on Athena with use_ash=0 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@athena_do_not_use_ash41_scroll_end_effect
Patch Set: Created 6 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
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 #ifndef CHROME_BROWSER_CHROMEOS_ACCESSIBILITY_ACCESSIBILITY_MANAGER_H_ 5 #ifndef CHROME_BROWSER_CHROMEOS_ACCESSIBILITY_ACCESSIBILITY_MANAGER_H_
6 #define CHROME_BROWSER_CHROMEOS_ACCESSIBILITY_ACCESSIBILITY_MANAGER_H_ 6 #define CHROME_BROWSER_CHROMEOS_ACCESSIBILITY_ACCESSIBILITY_MANAGER_H_
7 7
8 #include <set> 8 #include <set>
9 9
10 #include "ash/accessibility_delegate.h"
11 #include "ash/session/session_state_observer.h"
12 #include "base/callback_forward.h" 10 #include "base/callback_forward.h"
13 #include "base/callback_list.h" 11 #include "base/callback_list.h"
14 #include "base/memory/weak_ptr.h" 12 #include "base/memory/weak_ptr.h"
15 #include "base/prefs/pref_change_registrar.h" 13 #include "base/prefs/pref_change_registrar.h"
16 #include "base/scoped_observer.h" 14 #include "base/scoped_observer.h"
17 #include "base/time/time.h" 15 #include "base/time/time.h"
18 #include "chrome/browser/chromeos/accessibility/accessibility_util.h" 16 #include "chrome/browser/chromeos/accessibility/accessibility_util.h"
19 #include "chrome/browser/extensions/api/braille_display_private/braille_controll er.h" 17 #include "chrome/browser/extensions/api/braille_display_private/braille_controll er.h"
20 #include "chromeos/ime/input_method_manager.h" 18 #include "chromeos/ime/input_method_manager.h"
21 #include "content/public/browser/notification_observer.h" 19 #include "content/public/browser/notification_observer.h"
22 #include "content/public/browser/notification_registrar.h" 20 #include "content/public/browser/notification_registrar.h"
23 #include "extensions/browser/event_router.h" 21 #include "extensions/browser/event_router.h"
24 #include "extensions/browser/extension_system.h" 22 #include "extensions/browser/extension_system.h"
23 #include "ui/chromeos/accessibility_types.h"
24
25 #if !defined(USE_ATHENA)
26 #include "ash/session/session_state_observer.h"
27 #endif
25 28
26 namespace content { 29 namespace content {
27 class RenderViewHost; 30 class RenderViewHost;
28 } 31 }
29 class Profile; 32 class Profile;
30 33
31 namespace chromeos { 34 namespace chromeos {
32 35
33 enum AccessibilityNotificationType { 36 enum AccessibilityNotificationType {
34 ACCESSIBILITY_MANAGER_SHUTDOWN, 37 ACCESSIBILITY_MANAGER_SHUTDOWN,
35 ACCESSIBILITY_TOGGLE_HIGH_CONTRAST_MODE, 38 ACCESSIBILITY_TOGGLE_HIGH_CONTRAST_MODE,
36 ACCESSIBILITY_TOGGLE_LARGE_CURSOR, 39 ACCESSIBILITY_TOGGLE_LARGE_CURSOR,
37 ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFIER, 40 ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFIER,
38 ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK, 41 ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK,
39 ACCESSIBILITY_TOGGLE_VIRTUAL_KEYBOARD, 42 ACCESSIBILITY_TOGGLE_VIRTUAL_KEYBOARD,
40 ACCESSIBILITY_BRAILLE_DISPLAY_CONNECTION_STATE_CHANGED 43 ACCESSIBILITY_BRAILLE_DISPLAY_CONNECTION_STATE_CHANGED
41 }; 44 };
42 45
43 struct AccessibilityStatusEventDetails { 46 struct AccessibilityStatusEventDetails {
44 AccessibilityStatusEventDetails( 47 AccessibilityStatusEventDetails(
45 AccessibilityNotificationType notification_type, 48 AccessibilityNotificationType notification_type,
46 bool enabled, 49 bool enabled,
47 ash::AccessibilityNotificationVisibility notify); 50 ui::AccessibilityNotificationVisibility notify);
48 51
49 AccessibilityStatusEventDetails( 52 AccessibilityStatusEventDetails(
50 AccessibilityNotificationType notification_type, 53 AccessibilityNotificationType notification_type,
51 bool enabled, 54 bool enabled,
52 ash::MagnifierType magnifier_type, 55 ui::MagnifierType magnifier_type,
53 ash::AccessibilityNotificationVisibility notify); 56 ui::AccessibilityNotificationVisibility notify);
54 57
55 AccessibilityNotificationType notification_type; 58 AccessibilityNotificationType notification_type;
56 bool enabled; 59 bool enabled;
57 ash::MagnifierType magnifier_type; 60 ui::MagnifierType magnifier_type;
58 ash::AccessibilityNotificationVisibility notify; 61 ui::AccessibilityNotificationVisibility notify;
59 }; 62 };
60 63
61 typedef base::Callback<void(const AccessibilityStatusEventDetails&)> 64 typedef base::Callback<void(const AccessibilityStatusEventDetails&)>
62 AccessibilityStatusCallback; 65 AccessibilityStatusCallback;
63 66
64 typedef base::CallbackList<void(const AccessibilityStatusEventDetails&)> 67 typedef base::CallbackList<void(const AccessibilityStatusEventDetails&)>
65 AccessibilityStatusCallbackList; 68 AccessibilityStatusCallbackList;
66 69
67 typedef AccessibilityStatusCallbackList::Subscription 70 typedef AccessibilityStatusCallbackList::Subscription
68 AccessibilityStatusSubscription; 71 AccessibilityStatusSubscription;
69 72
70 // AccessibilityManager changes the statuses of accessibility features 73 // AccessibilityManager changes the statuses of accessibility features
71 // watching profile notifications and pref-changes. 74 // watching profile notifications and pref-changes.
72 // TODO(yoshiki): merge MagnificationManager with AccessibilityManager. 75 // TODO(yoshiki): merge MagnificationManager with AccessibilityManager.
73 class AccessibilityManager 76 class AccessibilityManager
74 : public content::NotificationObserver, 77 : public content::NotificationObserver,
75 public extensions::api::braille_display_private::BrailleObserver, 78 public extensions::api::braille_display_private::BrailleObserver,
76 public input_method::InputMethodManager::Observer, 79 #if !defined(USE_ATHENA)
77 public ash::SessionStateObserver { 80 public ash::SessionStateObserver,
81 #endif
82 public input_method::InputMethodManager::Observer {
78 public: 83 public:
79 // Creates an instance of AccessibilityManager, this should be called once, 84 // Creates an instance of AccessibilityManager, this should be called once,
80 // because only one instance should exist at the same time. 85 // because only one instance should exist at the same time.
81 static void Initialize(); 86 static void Initialize();
82 // Deletes the existing instance of AccessibilityManager. 87 // Deletes the existing instance of AccessibilityManager.
83 static void Shutdown(); 88 static void Shutdown();
84 // Returns the existing instance. If there is no instance, returns NULL. 89 // Returns the existing instance. If there is no instance, returns NULL.
85 static AccessibilityManager* Get(); 90 static AccessibilityManager* Get();
86 91
87 // On a user's first login into a device, any a11y features enabled/disabled 92 // On a user's first login into a device, any a11y features enabled/disabled
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 124
120 // Returns true if Incognito mode is allowed, or false if not. 125 // Returns true if Incognito mode is allowed, or false if not.
121 bool IsIncognitoAllowed(); 126 bool IsIncognitoAllowed();
122 127
123 // Returns true if the Sticky Keys is enabled, or false if not. 128 // Returns true if the Sticky Keys is enabled, or false if not.
124 bool IsStickyKeysEnabled(); 129 bool IsStickyKeysEnabled();
125 130
126 // Enables or disables spoken feedback. Enabling spoken feedback installs the 131 // Enables or disables spoken feedback. Enabling spoken feedback installs the
127 // ChromeVox component extension. 132 // ChromeVox component extension.
128 void EnableSpokenFeedback(bool enabled, 133 void EnableSpokenFeedback(bool enabled,
129 ash::AccessibilityNotificationVisibility notify); 134 ui::AccessibilityNotificationVisibility notify);
130 135
131 // Returns true if spoken feedback is enabled, or false if not. 136 // Returns true if spoken feedback is enabled, or false if not.
132 bool IsSpokenFeedbackEnabled(); 137 bool IsSpokenFeedbackEnabled();
133 138
134 // Toggles whether Chrome OS spoken feedback is on or off. 139 // Toggles whether Chrome OS spoken feedback is on or off.
135 void ToggleSpokenFeedback(ash::AccessibilityNotificationVisibility notify); 140 void ToggleSpokenFeedback(ui::AccessibilityNotificationVisibility notify);
136 141
137 // Enables or disables the high contrast mode for Chrome. 142 // Enables or disables the high contrast mode for Chrome.
138 void EnableHighContrast(bool enabled); 143 void EnableHighContrast(bool enabled);
139 144
140 // Returns true if High Contrast is enabled, or false if not. 145 // Returns true if High Contrast is enabled, or false if not.
141 bool IsHighContrastEnabled(); 146 bool IsHighContrastEnabled();
142 147
143 // Enables or disables autoclick. 148 // Enables or disables autoclick.
144 void EnableAutoclick(bool enabled); 149 void EnableAutoclick(bool enabled);
145 150
146 // Returns true if autoclick is enabled. 151 // Returns true if autoclick is enabled.
147 bool IsAutoclickEnabled(); 152 bool IsAutoclickEnabled();
148 153
149 // Set the delay for autoclicking after stopping the cursor in milliseconds. 154 // Set the delay for autoclicking after stopping the cursor in milliseconds.
150 void SetAutoclickDelay(int delay_ms); 155 void SetAutoclickDelay(int delay_ms);
151 156
152 // Returns the autoclick delay in milliseconds. 157 // Returns the autoclick delay in milliseconds.
153 int GetAutoclickDelay() const; 158 int GetAutoclickDelay() const;
154 159
155 // Enables or disables the virtual keyboard. 160 // Enables or disables the virtual keyboard.
156 void EnableVirtualKeyboard(bool enabled); 161 void EnableVirtualKeyboard(bool enabled);
157 // Returns true if the virtual keyboard is enabled, otherwise false. 162 // Returns true if the virtual keyboard is enabled, otherwise false.
158 bool IsVirtualKeyboardEnabled(); 163 bool IsVirtualKeyboardEnabled();
159 164
160 // Returns true if a braille display is connected to the system, otherwise 165 // Returns true if a braille display is connected to the system, otherwise
161 // false. 166 // false.
162 bool IsBrailleDisplayConnected() const; 167 bool IsBrailleDisplayConnected() const;
163 168
169 #if !defined(USE_ATHENA)
164 // SessionStateObserver overrides: 170 // SessionStateObserver overrides:
165 virtual void ActiveUserChanged(const std::string& user_id) override; 171 virtual void ActiveUserChanged(const std::string& user_id) override;
172 #endif
166 173
167 void SetProfileForTest(Profile* profile); 174 void SetProfileForTest(Profile* profile);
168 175
169 static void SetBrailleControllerForTest( 176 static void SetBrailleControllerForTest(
170 extensions::api::braille_display_private::BrailleController* controller); 177 extensions::api::braille_display_private::BrailleController* controller);
171 178
172 // Enables/disables system sounds. 179 // Enables/disables system sounds.
173 void EnableSystemSounds(bool system_sounds_enabled); 180 void EnableSystemSounds(bool system_sounds_enabled);
174 181
175 // Initiates play of shutdown sound and returns it's duration. 182 // Initiates play of shutdown sound and returns it's duration.
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 Profile* profile_; 254 Profile* profile_;
248 255
249 // Profile which ChromeVox is currently loaded to. If NULL, ChromeVox is not 256 // Profile which ChromeVox is currently loaded to. If NULL, ChromeVox is not
250 // loaded to any profile. 257 // loaded to any profile.
251 bool chrome_vox_loaded_on_lock_screen_; 258 bool chrome_vox_loaded_on_lock_screen_;
252 bool chrome_vox_loaded_on_user_screen_; 259 bool chrome_vox_loaded_on_user_screen_;
253 260
254 content::NotificationRegistrar notification_registrar_; 261 content::NotificationRegistrar notification_registrar_;
255 scoped_ptr<PrefChangeRegistrar> pref_change_registrar_; 262 scoped_ptr<PrefChangeRegistrar> pref_change_registrar_;
256 scoped_ptr<PrefChangeRegistrar> local_state_pref_change_registrar_; 263 scoped_ptr<PrefChangeRegistrar> local_state_pref_change_registrar_;
264 #if !defined(USE_ATHENA)
257 scoped_ptr<ash::ScopedSessionStateObserver> session_state_observer_; 265 scoped_ptr<ash::ScopedSessionStateObserver> session_state_observer_;
266 #endif
258 267
259 PrefHandler large_cursor_pref_handler_; 268 PrefHandler large_cursor_pref_handler_;
260 PrefHandler spoken_feedback_pref_handler_; 269 PrefHandler spoken_feedback_pref_handler_;
261 PrefHandler high_contrast_pref_handler_; 270 PrefHandler high_contrast_pref_handler_;
262 PrefHandler autoclick_pref_handler_; 271 PrefHandler autoclick_pref_handler_;
263 PrefHandler autoclick_delay_pref_handler_; 272 PrefHandler autoclick_delay_pref_handler_;
264 PrefHandler virtual_keyboard_pref_handler_; 273 PrefHandler virtual_keyboard_pref_handler_;
265 274
266 bool large_cursor_enabled_; 275 bool large_cursor_enabled_;
267 bool sticky_keys_enabled_; 276 bool sticky_keys_enabled_;
268 bool spoken_feedback_enabled_; 277 bool spoken_feedback_enabled_;
269 bool high_contrast_enabled_; 278 bool high_contrast_enabled_;
270 bool autoclick_enabled_; 279 bool autoclick_enabled_;
271 int autoclick_delay_ms_; 280 int autoclick_delay_ms_;
272 bool virtual_keyboard_enabled_; 281 bool virtual_keyboard_enabled_;
273 282
274 ash::AccessibilityNotificationVisibility spoken_feedback_notification_; 283 ui::AccessibilityNotificationVisibility spoken_feedback_notification_;
275 284
276 bool should_speak_chrome_vox_announcements_on_user_screen_; 285 bool should_speak_chrome_vox_announcements_on_user_screen_;
277 286
278 bool system_sounds_enabled_; 287 bool system_sounds_enabled_;
279 288
280 AccessibilityStatusCallbackList callback_list_; 289 AccessibilityStatusCallbackList callback_list_;
281 290
282 bool braille_display_connected_; 291 bool braille_display_connected_;
283 ScopedObserver<extensions::api::braille_display_private::BrailleController, 292 ScopedObserver<extensions::api::braille_display_private::BrailleController,
284 AccessibilityManager> scoped_braille_observer_; 293 AccessibilityManager> scoped_braille_observer_;
285 294
286 bool braille_ime_current_; 295 bool braille_ime_current_;
287 296
288 base::WeakPtrFactory<AccessibilityManager> weak_ptr_factory_; 297 base::WeakPtrFactory<AccessibilityManager> weak_ptr_factory_;
289 298
290 DISALLOW_COPY_AND_ASSIGN(AccessibilityManager); 299 DISALLOW_COPY_AND_ASSIGN(AccessibilityManager);
291 }; 300 };
292 301
293 } // namespace chromeos 302 } // namespace chromeos
294 303
295 #endif // CHROME_BROWSER_CHROMEOS_ACCESSIBILITY_ACCESSIBILITY_MANAGER_H_ 304 #endif // CHROME_BROWSER_CHROMEOS_ACCESSIBILITY_ACCESSIBILITY_MANAGER_H_
OLDNEW
« no previous file with comments | « chrome/browser/apps/web_view_browsertest.cc ('k') | chrome/browser/chromeos/accessibility/accessibility_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698