| 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 "content/browser/accessibility/browser_accessibility_manager_mac.h" | 5 #include "content/browser/accessibility/browser_accessibility_manager_mac.h" |
| 6 | 6 |
| 7 #import "base/logging.h" | 7 #import "base/logging.h" |
| 8 #import "content/browser/accessibility/browser_accessibility_cocoa.h" | 8 #import "content/browser/accessibility/browser_accessibility_cocoa.h" |
| 9 #include "content/common/accessibility_messages.h" | 9 #include "content/common/accessibility_messages.h" |
| 10 | 10 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 BrowserAccessibilityDelegate* delegate, | 24 BrowserAccessibilityDelegate* delegate, |
| 25 BrowserAccessibilityFactory* factory) | 25 BrowserAccessibilityFactory* factory) |
| 26 : BrowserAccessibilityManager(src, delegate, factory), | 26 : BrowserAccessibilityManager(src, delegate, factory), |
| 27 parent_view_(parent_view) { | 27 parent_view_(parent_view) { |
| 28 } | 28 } |
| 29 | 29 |
| 30 // static | 30 // static |
| 31 AccessibilityNodeData BrowserAccessibilityManagerMac::GetEmptyDocument() { | 31 AccessibilityNodeData BrowserAccessibilityManagerMac::GetEmptyDocument() { |
| 32 AccessibilityNodeData empty_document; | 32 AccessibilityNodeData empty_document; |
| 33 empty_document.id = 0; | 33 empty_document.id = 0; |
| 34 empty_document.role = WebKit::WebAXRoleRootWebArea; | 34 empty_document.role = blink::WebAXRoleRootWebArea; |
| 35 empty_document.state = | 35 empty_document.state = |
| 36 1 << WebKit::WebAXStateReadonly; | 36 1 << blink::WebAXStateReadonly; |
| 37 return empty_document; | 37 return empty_document; |
| 38 } | 38 } |
| 39 | 39 |
| 40 void BrowserAccessibilityManagerMac::NotifyAccessibilityEvent( | 40 void BrowserAccessibilityManagerMac::NotifyAccessibilityEvent( |
| 41 WebKit::WebAXEvent event_type, | 41 blink::WebAXEvent event_type, |
| 42 BrowserAccessibility* node) { | 42 BrowserAccessibility* node) { |
| 43 if (!node->IsNative()) | 43 if (!node->IsNative()) |
| 44 return; | 44 return; |
| 45 | 45 |
| 46 // Refer to AXObjectCache.mm (webkit). | 46 // Refer to AXObjectCache.mm (webkit). |
| 47 NSString* event_id = @""; | 47 NSString* event_id = @""; |
| 48 switch (event_type) { | 48 switch (event_type) { |
| 49 case WebKit::WebAXEventActiveDescendantChanged: | 49 case blink::WebAXEventActiveDescendantChanged: |
| 50 if (node->role() == WebKit::WebAXRoleTree) | 50 if (node->role() == blink::WebAXRoleTree) |
| 51 event_id = NSAccessibilitySelectedRowsChangedNotification; | 51 event_id = NSAccessibilitySelectedRowsChangedNotification; |
| 52 else | 52 else |
| 53 event_id = NSAccessibilityFocusedUIElementChangedNotification; | 53 event_id = NSAccessibilityFocusedUIElementChangedNotification; |
| 54 break; | 54 break; |
| 55 case WebKit::WebAXEventAlert: | 55 case blink::WebAXEventAlert: |
| 56 // Not used on Mac. | 56 // Not used on Mac. |
| 57 return; | 57 return; |
| 58 case WebKit::WebAXEventBlur: | 58 case blink::WebAXEventBlur: |
| 59 // A no-op on Mac. | 59 // A no-op on Mac. |
| 60 return; | 60 return; |
| 61 case WebKit::WebAXEventCheckedStateChanged: | 61 case blink::WebAXEventCheckedStateChanged: |
| 62 // Not used on Mac. | 62 // Not used on Mac. |
| 63 return; | 63 return; |
| 64 case WebKit::WebAXEventChildrenChanged: | 64 case blink::WebAXEventChildrenChanged: |
| 65 // TODO(dtseng): no clear equivalent on Mac. | 65 // TODO(dtseng): no clear equivalent on Mac. |
| 66 return; | 66 return; |
| 67 case WebKit::WebAXEventFocus: | 67 case blink::WebAXEventFocus: |
| 68 event_id = NSAccessibilityFocusedUIElementChangedNotification; | 68 event_id = NSAccessibilityFocusedUIElementChangedNotification; |
| 69 break; | 69 break; |
| 70 case WebKit::WebAXEventLayoutComplete: | 70 case blink::WebAXEventLayoutComplete: |
| 71 event_id = @"AXLayoutComplete"; | 71 event_id = @"AXLayoutComplete"; |
| 72 break; | 72 break; |
| 73 case WebKit::WebAXEventLiveRegionChanged: | 73 case blink::WebAXEventLiveRegionChanged: |
| 74 event_id = @"AXLiveRegionChanged"; | 74 event_id = @"AXLiveRegionChanged"; |
| 75 break; | 75 break; |
| 76 case WebKit::WebAXEventLoadComplete: | 76 case blink::WebAXEventLoadComplete: |
| 77 event_id = @"AXLoadComplete"; | 77 event_id = @"AXLoadComplete"; |
| 78 break; | 78 break; |
| 79 case WebKit::WebAXEventMenuListValueChanged: | 79 case blink::WebAXEventMenuListValueChanged: |
| 80 // Not used on Mac. | 80 // Not used on Mac. |
| 81 return; | 81 return; |
| 82 case WebKit::WebAXEventShow: | 82 case blink::WebAXEventShow: |
| 83 // Not used on Mac. | 83 // Not used on Mac. |
| 84 return; | 84 return; |
| 85 case WebKit::WebAXEventHide: | 85 case blink::WebAXEventHide: |
| 86 // Not used on Mac. | 86 // Not used on Mac. |
| 87 return; | 87 return; |
| 88 case WebKit::WebAXEventRowCountChanged: | 88 case blink::WebAXEventRowCountChanged: |
| 89 event_id = NSAccessibilityRowCountChangedNotification; | 89 event_id = NSAccessibilityRowCountChangedNotification; |
| 90 break; | 90 break; |
| 91 case WebKit::WebAXEventRowCollapsed: | 91 case blink::WebAXEventRowCollapsed: |
| 92 event_id = @"AXRowCollapsed"; | 92 event_id = @"AXRowCollapsed"; |
| 93 break; | 93 break; |
| 94 case WebKit::WebAXEventRowExpanded: | 94 case blink::WebAXEventRowExpanded: |
| 95 event_id = @"AXRowExpanded"; | 95 event_id = @"AXRowExpanded"; |
| 96 break; | 96 break; |
| 97 case WebKit::WebAXEventScrolledToAnchor: | 97 case blink::WebAXEventScrolledToAnchor: |
| 98 // Not used on Mac. | 98 // Not used on Mac. |
| 99 return; | 99 return; |
| 100 case WebKit::WebAXEventSelectedChildrenChanged: | 100 case blink::WebAXEventSelectedChildrenChanged: |
| 101 event_id = NSAccessibilitySelectedChildrenChangedNotification; | 101 event_id = NSAccessibilitySelectedChildrenChangedNotification; |
| 102 break; | 102 break; |
| 103 case WebKit::WebAXEventSelectedTextChanged: | 103 case blink::WebAXEventSelectedTextChanged: |
| 104 event_id = NSAccessibilitySelectedTextChangedNotification; | 104 event_id = NSAccessibilitySelectedTextChangedNotification; |
| 105 break; | 105 break; |
| 106 case WebKit::WebAXEventTextInserted: | 106 case blink::WebAXEventTextInserted: |
| 107 // Not used on Mac. | 107 // Not used on Mac. |
| 108 return; | 108 return; |
| 109 case WebKit::WebAXEventTextRemoved: | 109 case blink::WebAXEventTextRemoved: |
| 110 // Not used on Mac. | 110 // Not used on Mac. |
| 111 return; | 111 return; |
| 112 case WebKit::WebAXEventValueChanged: | 112 case blink::WebAXEventValueChanged: |
| 113 event_id = NSAccessibilityValueChangedNotification; | 113 event_id = NSAccessibilityValueChangedNotification; |
| 114 break; | 114 break; |
| 115 case WebKit::WebAXEventAriaAttributeChanged: | 115 case blink::WebAXEventAriaAttributeChanged: |
| 116 // Not used on Mac. | 116 // Not used on Mac. |
| 117 return; | 117 return; |
| 118 case WebKit::WebAXEventAutocorrectionOccured: | 118 case blink::WebAXEventAutocorrectionOccured: |
| 119 // Not used on Mac. | 119 // Not used on Mac. |
| 120 return; | 120 return; |
| 121 case WebKit::WebAXEventInvalidStatusChanged: | 121 case blink::WebAXEventInvalidStatusChanged: |
| 122 // Not used on Mac. | 122 // Not used on Mac. |
| 123 return; | 123 return; |
| 124 case WebKit::WebAXEventLocationChanged: | 124 case blink::WebAXEventLocationChanged: |
| 125 // Not used on Mac. | 125 // Not used on Mac. |
| 126 return; | 126 return; |
| 127 case WebKit::WebAXEventMenuListItemSelected: | 127 case blink::WebAXEventMenuListItemSelected: |
| 128 // Not used on Mac. | 128 // Not used on Mac. |
| 129 return; | 129 return; |
| 130 case WebKit::WebAXEventTextChanged: | 130 case blink::WebAXEventTextChanged: |
| 131 // Not used on Mac. | 131 // Not used on Mac. |
| 132 return; | 132 return; |
| 133 default: | 133 default: |
| 134 LOG(WARNING) << "Unknown accessibility event: " << event_type; | 134 LOG(WARNING) << "Unknown accessibility event: " << event_type; |
| 135 return; | 135 return; |
| 136 } | 136 } |
| 137 BrowserAccessibilityCocoa* native_node = node->ToBrowserAccessibilityCocoa(); | 137 BrowserAccessibilityCocoa* native_node = node->ToBrowserAccessibilityCocoa(); |
| 138 DCHECK(native_node); | 138 DCHECK(native_node); |
| 139 NSAccessibilityPostNotification(native_node, event_id); | 139 NSAccessibilityPostNotification(native_node, event_id); |
| 140 } | 140 } |
| 141 | 141 |
| 142 } // namespace content | 142 } // namespace content |
| OLD | NEW |