Chromium Code Reviews| Index: content/browser/accessibility/browser_accessibility_manager_win.cc |
| diff --git a/content/browser/accessibility/browser_accessibility_manager_win.cc b/content/browser/accessibility/browser_accessibility_manager_win.cc |
| index ba0dee59c3ead9ec738a3c4fc085ea33533cb9b6..2cb5476deac52d108cc59af3083ad6d75d340111 100644 |
| --- a/content/browser/accessibility/browser_accessibility_manager_win.cc |
| +++ b/content/browser/accessibility/browser_accessibility_manager_win.cc |
| @@ -53,6 +53,19 @@ AccessibilityNodeData BrowserAccessibilityManagerWin::GetEmptyDocument() { |
| return empty_document; |
| } |
| +void BrowserAccessibilityManagerWin::InitializeNode( |
| + BrowserAccessibility* node) { |
| + BrowserAccessibilityManager::InitializeNode(node); |
| + LONG unique_id_win = node->ToBrowserAccessibilityWin()->unique_id_win(); |
| + unique_id_to_renderer_id_map_[unique_id_win] = node->renderer_id(); |
| +} |
| + |
| +void BrowserAccessibilityManagerWin::RemoveNode(BrowserAccessibility* node) { |
| + unique_id_to_renderer_id_map_.erase( |
| + node->ToBrowserAccessibilityWin()->unique_id_win()); |
| + BrowserAccessibilityManager::RemoveNode(node); |
| +} |
| + |
| void BrowserAccessibilityManagerWin::NotifyAccessibilityEvent( |
| int type, |
| BrowserAccessibility* node) { |
| @@ -135,8 +148,10 @@ void BrowserAccessibilityManagerWin::NotifyAccessibilityEvent( |
| break; |
| } |
| + LONG child_id = node->ToBrowserAccessibilityWin()->unique_id_win(); |
|
aboxhall
2013/04/09 09:28:29
Should this be renamed unique_id_win as well?
dmazzoni
2013/04/09 19:44:04
The argument to NotifyWinEvent is called "child id
|
| + |
| if (event_id != EVENT_MIN) |
| - NotifyWinEvent(event_id, parent_hwnd(), OBJID_CLIENT, node->child_id()); |
| + NotifyWinEvent(event_id, parent_hwnd(), OBJID_CLIENT, child_id); |
| // If this is a layout complete notification (sent when a container scrolls) |
| // and there is a descendant tracked object, send a notification on it. |
| @@ -144,10 +159,11 @@ void BrowserAccessibilityManagerWin::NotifyAccessibilityEvent( |
| if (type == AccessibilityNotificationLayoutComplete && |
| tracked_scroll_object_ && |
| tracked_scroll_object_->IsDescendantOf(node)) { |
| - NotifyWinEvent(IA2_EVENT_VISIBLE_DATA_CHANGED, |
| - parent_hwnd(), |
| - OBJID_CLIENT, |
| - tracked_scroll_object_->child_id()); |
| + NotifyWinEvent( |
| + IA2_EVENT_VISIBLE_DATA_CHANGED, |
| + parent_hwnd(), |
| + OBJID_CLIENT, |
| + tracked_scroll_object_->ToBrowserAccessibilityWin()->unique_id_win()); |
| tracked_scroll_object_->Release(); |
| tracked_scroll_object_ = NULL; |
| } |
| @@ -161,4 +177,16 @@ void BrowserAccessibilityManagerWin::TrackScrollingObject( |
| tracked_scroll_object_->AddRef(); |
| } |
| +BrowserAccessibilityWin* BrowserAccessibilityManagerWin::GetFromUniqueIdWin( |
| + LONG unique_id_win) { |
| + base::hash_map<LONG, int32>::iterator iter = |
| + unique_id_to_renderer_id_map_.find(unique_id_win); |
| + if (iter != unique_id_to_renderer_id_map_.end()) { |
| + BrowserAccessibility* result = GetFromRendererID(iter->second); |
| + if (result) |
| + return result->ToBrowserAccessibilityWin(); |
| + } |
| + return NULL; |
| +} |
| + |
| } // namespace content |