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

Unified Diff: content/browser/accessibility/browser_accessibility_manager_mac.mm

Issue 830943004: Improve the notifications sent from AXTree updates. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address feedback, add missing call to parent class Created 5 years, 11 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
Index: content/browser/accessibility/browser_accessibility_manager_mac.mm
diff --git a/content/browser/accessibility/browser_accessibility_manager_mac.mm b/content/browser/accessibility/browser_accessibility_manager_mac.mm
index 2000d025accf9c94b41f72a4dd9df91fbce75a16..ab9272392479b2da4255aec822b141de874ad4b2 100644
--- a/content/browser/accessibility/browser_accessibility_manager_mac.mm
+++ b/content/browser/accessibility/browser_accessibility_manager_mac.mm
@@ -26,8 +26,7 @@ BrowserAccessibilityManagerMac::BrowserAccessibilityManagerMac(
BrowserAccessibilityDelegate* delegate,
BrowserAccessibilityFactory* factory)
: BrowserAccessibilityManager(delegate, factory),
- parent_view_(parent_view),
- created_live_region_(false) {
+ parent_view_(parent_view) {
Initialize(initial_tree);
}
@@ -145,14 +144,20 @@ void BrowserAccessibilityManagerMac::NotifyAccessibilityEvent(
NSAccessibilityPostNotification(native_node, event_id);
}
-void BrowserAccessibilityManagerMac::OnNodeCreationFinished(ui::AXNode* node) {
- BrowserAccessibility* obj = GetFromAXNode(node);
- if (obj && obj->HasStringAttribute(ui::AX_ATTR_LIVE_STATUS))
- created_live_region_ = true;
-}
+void BrowserAccessibilityManagerMac::OnAtomicUpdateFinished(
+ bool root_changed, const std::vector<ui::AXTreeDelegate::Change>& changes) {
+ BrowserAccessibilityManager::OnAtomicUpdateFinished(root_changed, changes);
-void BrowserAccessibilityManagerMac::OnTreeUpdateFinished() {
- if (!created_live_region_)
+ bool created_live_region = false;
+ for (size_t i = 0; i < changes.size(); ++i) {
+ BrowserAccessibility* obj = GetFromAXNode(changes[i].node);
+ if (obj && obj->HasStringAttribute(ui::AX_ATTR_LIVE_STATUS)) {
+ created_live_region = true;
+ break;
+ }
+ }
+
+ if (!created_live_region)
return;
// This code is to work around a bug in VoiceOver, where a new live
@@ -164,8 +169,6 @@ void BrowserAccessibilityManagerMac::OnTreeUpdateFinished() {
static_cast<BrowserAccessibilityMac*>(GetRoot());
root->RecreateNativeObject();
NotifyAccessibilityEvent(ui::AX_EVENT_CHILDREN_CHANGED, root);
-
- created_live_region_ = false;
}
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698