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

Unified Diff: chrome/browser/browser_accessibility_manager_win.cc

Issue 3380017: Support additional webkit accessibility notifications and states. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Adding missig file. Created 10 years, 3 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/browser_accessibility_manager_win.h ('k') | chrome/browser/browser_accessibility_win.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/browser_accessibility_manager_win.cc
===================================================================
--- chrome/browser/browser_accessibility_manager_win.cc (revision 60480)
+++ chrome/browser/browser_accessibility_manager_win.cc (working copy)
@@ -100,20 +100,6 @@
delegate_->AccessibilityDoDefaultAction(node.renderer_id());
}
-void BrowserAccessibilityManager::OnAccessibilityFocusChange(int renderer_id) {
- base::hash_map<int, LONG>::iterator iter =
- renderer_id_to_child_id_map_.find(renderer_id);
- if (iter == renderer_id_to_child_id_map_.end())
- return;
-
- LONG child_id = iter->second;
- base::hash_map<LONG, BrowserAccessibility*>::iterator uniq_iter =
- child_id_map_.find(child_id);
- if (uniq_iter != child_id_map_.end())
- focus_ = uniq_iter->second;
- ::NotifyWinEvent(EVENT_OBJECT_FOCUS, parent_hwnd_, OBJID_CLIENT, child_id);
-}
-
void BrowserAccessibilityManager::OnAccessibilityNotifications(
const std::vector<ViewHostMsg_AccessibilityNotification_Params>& params) {
if (delegate_)
@@ -132,6 +118,14 @@
OnAccessibilityObjectChildrenChange(param.acc_obj);
break;
case ViewHostMsg_AccessibilityNotification_Params::
+ NOTIFICATION_TYPE_FOCUS_CHANGED:
+ OnAccessibilityObjectFocusChange(param.acc_obj);
+ break;
+ case ViewHostMsg_AccessibilityNotification_Params::
+ NOTIFICATION_TYPE_LOAD_COMPLETE:
+ OnAccessibilityObjectLoadComplete(param.acc_obj);
+ break;
+ case ViewHostMsg_AccessibilityNotification_Params::
NOTIFICATION_TYPE_VALUE_CHANGED:
OnAccessibilityObjectValueChange(param.acc_obj);
break;
@@ -214,6 +208,33 @@
NotifyWinEvent(EVENT_OBJECT_REORDER, parent_hwnd_, OBJID_CLIENT, child_id);
}
+void BrowserAccessibilityManager::OnAccessibilityObjectFocusChange(
+ const webkit_glue::WebAccessibility& acc_obj) {
+ BrowserAccessibility* new_browser_acc = UpdateTree(acc_obj);
+ if (!new_browser_acc)
+ return;
+
+ focus_ = new_browser_acc;
+ LONG child_id = new_browser_acc->child_id();
+ NotifyWinEvent(EVENT_OBJECT_FOCUS, parent_hwnd_, OBJID_CLIENT, child_id);
+}
+
+void BrowserAccessibilityManager::OnAccessibilityObjectLoadComplete(
+ const webkit_glue::WebAccessibility& acc_obj) {
+ root_->InactivateTree();
+ root_->Release();
+ focus_ = NULL;
+
+ root_ = CreateAccessibilityTree(NULL, GetNextChildID(), acc_obj, 0);
+ if (!focus_)
+ focus_ = root_;
+
+ LONG root_id = root_->child_id();
+ NotifyWinEvent(EVENT_OBJECT_FOCUS, parent_hwnd_, OBJID_CLIENT, root_id);
+ NotifyWinEvent(
+ IA2_EVENT_DOCUMENT_LOAD_COMPLETE, parent_hwnd_, OBJID_CLIENT, root_id);
+}
+
void BrowserAccessibilityManager::OnAccessibilityObjectValueChange(
const webkit_glue::WebAccessibility& acc_obj) {
BrowserAccessibility* new_browser_acc = UpdateTree(acc_obj);
« no previous file with comments | « chrome/browser/browser_accessibility_manager_win.h ('k') | chrome/browser/browser_accessibility_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698