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

Side by Side Diff: content/browser/accessibility/browser_accessibility_manager.cc

Issue 848653002: Re-land: Send Windows accessibility events based on tree updates. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@implicit_1_tests
Patch Set: Remove logging 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 unified diff | Download patch
OLDNEW
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.h" 5 #include "content/browser/accessibility/browser_accessibility_manager.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "content/browser/accessibility/browser_accessibility.h" 8 #include "content/browser/accessibility/browser_accessibility.h"
9 #include "content/common/accessibility_messages.h" 9 #include "content/common/accessibility_messages.h"
10 #include "ui/accessibility/ax_tree_serializer.h" 10 #include "ui/accessibility/ax_tree_serializer.h"
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 else 392 else
393 focus_ = NULL; 393 focus_ = NULL;
394 } 394 }
395 if (id_wrapper_map_.find(node->id()) == id_wrapper_map_.end()) 395 if (id_wrapper_map_.find(node->id()) == id_wrapper_map_.end())
396 return; 396 return;
397 GetFromAXNode(node)->Destroy(); 397 GetFromAXNode(node)->Destroy();
398 id_wrapper_map_.erase(node->id()); 398 id_wrapper_map_.erase(node->id());
399 } 399 }
400 400
401 void BrowserAccessibilityManager::OnSubtreeWillBeDeleted(ui::AXNode* node) { 401 void BrowserAccessibilityManager::OnSubtreeWillBeDeleted(ui::AXNode* node) {
402 BrowserAccessibility* obj = GetFromAXNode(node);
403 if (obj)
404 obj->OnSubtreeWillBeDeleted();
402 } 405 }
403 406
404 void BrowserAccessibilityManager::OnNodeCreated(ui::AXNode* node) { 407 void BrowserAccessibilityManager::OnNodeCreated(ui::AXNode* node) {
405 BrowserAccessibility* wrapper = factory_->Create(); 408 BrowserAccessibility* wrapper = factory_->Create();
406 wrapper->Init(this, node); 409 wrapper->Init(this, node);
407 id_wrapper_map_[node->id()] = wrapper; 410 id_wrapper_map_[node->id()] = wrapper;
408 wrapper->OnDataChanged(); 411 wrapper->OnDataChanged();
409 } 412 }
410 413
411 void BrowserAccessibilityManager::OnNodeChanged(ui::AXNode* node) { 414 void BrowserAccessibilityManager::OnNodeChanged(ui::AXNode* node) {
412 GetFromAXNode(node)->OnDataChanged(); 415 GetFromAXNode(node)->OnDataChanged();
413 } 416 }
414 417
415 void BrowserAccessibilityManager::OnAtomicUpdateFinished( 418 void BrowserAccessibilityManager::OnAtomicUpdateFinished(
416 bool root_changed, const std::vector<ui::AXTreeDelegate::Change>& changes) { 419 bool root_changed,
417 for (size_t i = 0; i < changes.size(); ++i) 420 const std::vector<ui::AXTreeDelegate::Change>& changes) {
418 GetFromAXNode(changes[i].node)->OnUpdateFinished(); 421 for (size_t i = 0; i < changes.size(); ++i) {
422 BrowserAccessibility* obj = GetFromAXNode(changes[i].node);
423 if (!obj)
424 continue;
425
426 obj->OnUpdateFinished();
427 if (changes[i].type == AXTreeDelegate::SUBTREE_CREATED)
428 GetFromAXNode(changes[i].node)->OnSubtreeCreationFinished();
429 }
419 } 430 }
420 431
421 ui::AXTreeUpdate BrowserAccessibilityManager::SnapshotAXTreeForTesting() { 432 ui::AXTreeUpdate BrowserAccessibilityManager::SnapshotAXTreeForTesting() {
422 scoped_ptr<ui::AXTreeSource<const ui::AXNode*> > tree_source( 433 scoped_ptr<ui::AXTreeSource<const ui::AXNode*> > tree_source(
423 tree_->CreateTreeSource()); 434 tree_->CreateTreeSource());
424 ui::AXTreeSerializer<const ui::AXNode*> serializer(tree_source.get()); 435 ui::AXTreeSerializer<const ui::AXNode*> serializer(tree_source.get());
425 ui::AXTreeUpdate update; 436 ui::AXTreeUpdate update;
426 serializer.SerializeChanges(tree_->GetRoot(), &update); 437 serializer.SerializeChanges(tree_->GetRoot(), &update);
427 return update; 438 return update;
428 } 439 }
429 440
430 } // namespace content 441 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698