Chromium Code Reviews| Index: chrome/browser/accessibility/accessibility_extension_api.h |
| diff --git a/chrome/browser/accessibility/accessibility_extension_api.h b/chrome/browser/accessibility/accessibility_extension_api.h |
| index d1132c00a15bc3b76f9fc5977e2f03d9e50acd16..278c992b7496ce0f65f2dccb43b64d7c204cb34b 100644 |
| --- a/chrome/browser/accessibility/accessibility_extension_api.h |
| +++ b/chrome/browser/accessibility/accessibility_extension_api.h |
| @@ -12,13 +12,15 @@ |
| #include "base/values.h" |
| #include "chrome/browser/accessibility/accessibility_events.h" |
| #include "chrome/browser/extensions/extension_function.h" |
| -#include "content/public/browser/notification_observer.h" |
| -#include "content/public/browser/notification_registrar.h" |
| +#include "ui/base/accessibility/accessibility_types.h" |
| // Observes the profile and routes accessibility notifications as events |
| // to the extension system. |
| -class ExtensionAccessibilityEventRouter : public content::NotificationObserver { |
| +class ExtensionAccessibilityEventRouter { |
| public: |
| + typedef base::Callback<void(ui::AccessibilityTypes::Event, |
| + const AccessibilityControlInfo*)> |
| + ControlEventCallback; |
| // Single instance of the event router. |
| static ExtensionAccessibilityEventRouter* GetInstance(); |
| @@ -35,19 +37,30 @@ class ExtensionAccessibilityEventRouter : public content::NotificationObserver { |
| void SetAccessibilityEnabled(bool enabled); |
| bool IsAccessibilityEnabled() const; |
| + // Set and remove callbacks (used for testing, to confirm that events are |
| + // getting through). |
| + void SetControlEventCallbackForTesting(ControlEventCallback callback); |
| + void ClearControlEventCallback(); |
| + |
| + // Route a window-related accessibility event. |
| + void HandleWindowEvent(ui::AccessibilityTypes::Event event, |
| + const AccessibilityWindowInfo* info); |
| + |
| + // Route a menu-related accessibility event. |
| + void HandleMenuEvent(ui::AccessibilityTypes::Event event, |
| + const AccessibilityMenuInfo* info); |
|
dmazzoni
2013/08/14 19:36:37
Nit: indentation
Cait (Slow)
2013/08/14 20:53:36
Done.
|
| + |
| + // Route a control-related accessibility event. |
| + void HandleControlEvent(ui::AccessibilityTypes::Event event, |
| + const AccessibilityControlInfo* info); |
| + |
| private: |
| friend struct DefaultSingletonTraits<ExtensionAccessibilityEventRouter>; |
| ExtensionAccessibilityEventRouter(); |
| virtual ~ExtensionAccessibilityEventRouter(); |
| - // content::NotificationObserver::Observe. |
| - virtual void Observe(int type, |
| - const content::NotificationSource& source, |
| - const content::NotificationDetails& details) OVERRIDE; |
| - |
| void OnWindowOpened(const AccessibilityWindowInfo* details); |
| - void OnWindowClosed(const AccessibilityWindowInfo* details); |
| void OnControlFocused(const AccessibilityControlInfo* details); |
| void OnControlAction(const AccessibilityControlInfo* details); |
| void OnTextChanged(const AccessibilityControlInfo* details); |
| @@ -58,13 +71,12 @@ class ExtensionAccessibilityEventRouter : public content::NotificationObserver { |
| const char* event_name, |
| scoped_ptr<base::ListValue> event_args); |
| - // Used for tracking registrations to history service notifications. |
| - content::NotificationRegistrar registrar_; |
| - |
| DictionaryValue last_focused_control_dict_; |
| bool enabled_; |
| + ControlEventCallback control_event_callback_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(ExtensionAccessibilityEventRouter); |
| }; |