Chromium Code Reviews| Index: chrome/browser/accessibility/accessibility_extension_api.cc |
| diff --git a/chrome/browser/accessibility/accessibility_extension_api.cc b/chrome/browser/accessibility/accessibility_extension_api.cc |
| index 033a843da3b9dfb7815c42a35a6762bfd2d4dd43..75b6fe6c0a00b888bcb5bc5b4245134d29c9d8fa 100644 |
| --- a/chrome/browser/accessibility/accessibility_extension_api.cc |
| +++ b/chrome/browser/accessibility/accessibility_extension_api.cc |
| @@ -43,76 +43,73 @@ ExtensionAccessibilityEventRouter* |
| ExtensionAccessibilityEventRouter::ExtensionAccessibilityEventRouter() |
| : enabled_(false) { |
| - registrar_.Add(this, |
| - chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_OPENED, |
| - content::NotificationService::AllSources()); |
| - registrar_.Add(this, |
| - chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_CLOSED, |
| - content::NotificationService::AllSources()); |
| - registrar_.Add(this, |
| - chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_FOCUSED, |
| - content::NotificationService::AllSources()); |
| - registrar_.Add(this, |
| - chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_ACTION, |
| - content::NotificationService::AllSources()); |
| - registrar_.Add(this, |
| - chrome::NOTIFICATION_ACCESSIBILITY_TEXT_CHANGED, |
| - content::NotificationService::AllSources()); |
| - registrar_.Add(this, |
| - chrome::NOTIFICATION_ACCESSIBILITY_MENU_OPENED, |
| - content::NotificationService::AllSources()); |
| - registrar_.Add(this, |
| - chrome::NOTIFICATION_ACCESSIBILITY_MENU_CLOSED, |
| - content::NotificationService::AllSources()); |
| } |
| ExtensionAccessibilityEventRouter::~ExtensionAccessibilityEventRouter() { |
| + control_event_callback_.Reset(); |
| } |
| -void ExtensionAccessibilityEventRouter::Observe( |
| - int type, |
| - const content::NotificationSource& source, |
| - const content::NotificationDetails& details) { |
| - switch (type) { |
| - case chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_OPENED: |
| - OnWindowOpened( |
| - content::Details<const AccessibilityWindowInfo>(details).ptr()); |
| - break; |
| - case chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_CLOSED: |
| - OnWindowClosed( |
| - content::Details<const AccessibilityWindowInfo>(details).ptr()); |
| - break; |
| - case chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_FOCUSED: |
| - OnControlFocused( |
| - content::Details<const AccessibilityControlInfo>(details).ptr()); |
| - break; |
| - case chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_ACTION: |
| - OnControlAction( |
| - content::Details<const AccessibilityControlInfo>(details).ptr()); |
| - break; |
| - case chrome::NOTIFICATION_ACCESSIBILITY_TEXT_CHANGED: |
| - OnTextChanged( |
| - content::Details<const AccessibilityControlInfo>(details).ptr()); |
| - break; |
| - case chrome::NOTIFICATION_ACCESSIBILITY_MENU_OPENED: |
| - OnMenuOpened( |
| - content::Details<const AccessibilityMenuInfo>(details).ptr()); |
| +void ExtensionAccessibilityEventRouter::SetAccessibilityEnabled(bool enabled) { |
| + enabled_ = enabled; |
| +} |
| + |
| +bool ExtensionAccessibilityEventRouter::IsAccessibilityEnabled() const { |
| + return enabled_; |
| +} |
| + |
| +void ExtensionAccessibilityEventRouter::SetControlEventCallbackForTesting( |
| + ControlEventCallback control_event_callback) { |
| + DCHECK(control_event_callback_.is_null()); |
| + control_event_callback_ = control_event_callback; |
| +} |
| +void ExtensionAccessibilityEventRouter::ClearControlEventCallback() { |
| + control_event_callback_.Reset(); |
| +} |
| + |
| +void ExtensionAccessibilityEventRouter::HandleWindowEvent( |
| + ui::AccessibilityTypes::Event event, |
| + const AccessibilityWindowInfo* info) { |
| + if (event == ui::AccessibilityTypes::EVENT_ALERT) |
| + OnWindowOpened(info); |
| +} |
| + |
| +void ExtensionAccessibilityEventRouter::HandleMenuEvent( |
| + ui::AccessibilityTypes::Event event, |
| + const AccessibilityMenuInfo* info) { |
| + switch (event) { |
| + case ui::AccessibilityTypes::EVENT_MENUSTART: |
| + case ui::AccessibilityTypes::EVENT_MENUPOPUPSTART: |
| + OnMenuOpened(info); |
| break; |
| - case chrome::NOTIFICATION_ACCESSIBILITY_MENU_CLOSED: |
| - OnMenuClosed( |
| - content::Details<const AccessibilityMenuInfo>(details).ptr()); |
| + case ui::AccessibilityTypes::EVENT_MENUEND: |
| + case ui::AccessibilityTypes::EVENT_MENUPOPUPEND: |
| + OnMenuClosed(info); |
| break; |
| default: |
| NOTREACHED(); |
| } |
| } |
| -void ExtensionAccessibilityEventRouter::SetAccessibilityEnabled(bool enabled) { |
| - enabled_ = enabled; |
| -} |
| +void ExtensionAccessibilityEventRouter::HandleControlEvent( |
| + ui::AccessibilityTypes::Event event, |
| + const AccessibilityControlInfo* info) { |
| + if (!control_event_callback_.is_null()) |
| + control_event_callback_.Run(event, info); |
| -bool ExtensionAccessibilityEventRouter::IsAccessibilityEnabled() const { |
| - return enabled_; |
| + switch (event) { |
| + case ui::AccessibilityTypes::EVENT_TEXT_CHANGED: |
| + case ui::AccessibilityTypes::EVENT_SELECTION_CHANGED: |
| + OnTextChanged(info); |
| + break; |
| + case ui::AccessibilityTypes::EVENT_VALUE_CHANGED: |
| + OnControlAction(info); |
| + break; |
| + case ui::AccessibilityTypes::EVENT_FOCUS: |
| + OnControlFocused(info); |
| + break; |
| + default: |
| + NOTREACHED(); |
| + } |
| } |
| void ExtensionAccessibilityEventRouter::OnWindowOpened( |
| @@ -121,12 +118,6 @@ void ExtensionAccessibilityEventRouter::OnWindowOpened( |
| DispatchEvent(info->profile(), keys::kOnWindowOpened, args.Pass()); |
| } |
| -void ExtensionAccessibilityEventRouter::OnWindowClosed( |
|
dmazzoni
2013/08/14 19:36:37
Was this never used?
Cait (Slow)
2013/08/14 20:53:36
Not as far as I can tell. Looks like support for t
|
| - const AccessibilityWindowInfo* info) { |
| - scoped_ptr<ListValue> args(ControlInfoToEventArguments(info)); |
| - DispatchEvent(info->profile(), keys::kOnWindowClosed, args.Pass()); |
| -} |
| - |
| void ExtensionAccessibilityEventRouter::OnControlFocused( |
| const AccessibilityControlInfo* info) { |
| last_focused_control_dict_.Clear(); |