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

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

Issue 2748463003: Generalize the HIT_TEST accessibility action so that it can send any event. (Closed)
Patch Set: Created 3 years, 9 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 <stddef.h> 7 #include <stddef.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after
443 find_in_page_info_.start_offset = start_offset; 443 find_in_page_info_.start_offset = start_offset;
444 find_in_page_info_.end_id = end_id; 444 find_in_page_info_.end_id = end_id;
445 find_in_page_info_.end_offset = end_offset; 445 find_in_page_info_.end_offset = end_offset;
446 446
447 if (find_in_page_info_.active_request_id == request_id) 447 if (find_in_page_info_.active_request_id == request_id)
448 ActivateFindInPageResult(request_id); 448 ActivateFindInPageResult(request_id);
449 } 449 }
450 450
451 void BrowserAccessibilityManager::OnChildFrameHitTestResult( 451 void BrowserAccessibilityManager::OnChildFrameHitTestResult(
452 const gfx::Point& point, 452 const gfx::Point& point,
453 int hit_obj_id) { 453 int hit_obj_id,
454 ui::AXEvent event_to_fire) {
454 BrowserAccessibility* obj = GetFromID(hit_obj_id); 455 BrowserAccessibility* obj = GetFromID(hit_obj_id);
455 if (!obj || !obj->HasIntAttribute(ui::AX_ATTR_CHILD_TREE_ID)) 456 if (!obj || !obj->HasIntAttribute(ui::AX_ATTR_CHILD_TREE_ID))
456 return; 457 return;
457 458
458 BrowserAccessibilityManager* child_manager = 459 BrowserAccessibilityManager* child_manager =
459 BrowserAccessibilityManager::FromID( 460 BrowserAccessibilityManager::FromID(
460 obj->GetIntAttribute(ui::AX_ATTR_CHILD_TREE_ID)); 461 obj->GetIntAttribute(ui::AX_ATTR_CHILD_TREE_ID));
461 if (!child_manager || !child_manager->delegate()) 462 if (!child_manager || !child_manager->delegate())
462 return; 463 return;
463 464
464 ui::AXActionData action_data; 465 ui::AXActionData action_data;
465 action_data.target_point = point; 466 action_data.target_point = point;
466 action_data.action = ui::AX_ACTION_HIT_TEST; 467 action_data.action = ui::AX_ACTION_HIT_TEST;
468 action_data.hit_test_event_to_fire = event_to_fire;
467 return child_manager->delegate()->AccessibilityPerformAction(action_data); 469 return child_manager->delegate()->AccessibilityPerformAction(action_data);
468 } 470 }
469 471
470 void BrowserAccessibilityManager::ActivateFindInPageResult( 472 void BrowserAccessibilityManager::ActivateFindInPageResult(
471 int request_id) { 473 int request_id) {
472 find_in_page_info_.active_request_id = request_id; 474 find_in_page_info_.active_request_id = request_id;
473 if (find_in_page_info_.request_id != request_id) 475 if (find_in_page_info_.request_id != request_id)
474 return; 476 return;
475 477
476 BrowserAccessibility* node = GetFromID(find_in_page_info_.start_id); 478 BrowserAccessibility* node = GetFromID(find_in_page_info_.start_id);
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
714 delegate_->AccessibilityPerformAction(action_data); 716 delegate_->AccessibilityPerformAction(action_data);
715 } 717 }
716 718
717 void BrowserAccessibilityManager::HitTest(const gfx::Point& point) { 719 void BrowserAccessibilityManager::HitTest(const gfx::Point& point) {
718 if (!delegate_) 720 if (!delegate_)
719 return; 721 return;
720 722
721 ui::AXActionData action_data; 723 ui::AXActionData action_data;
722 action_data.action = ui::AX_ACTION_HIT_TEST; 724 action_data.action = ui::AX_ACTION_HIT_TEST;
723 action_data.target_point = point; 725 action_data.target_point = point;
726 action_data.hit_test_event_to_fire = ui::AX_EVENT_HOVER;
724 delegate_->AccessibilityPerformAction(action_data); 727 delegate_->AccessibilityPerformAction(action_data);
725 } 728 }
726 729
727 gfx::Rect BrowserAccessibilityManager::GetViewBounds() { 730 gfx::Rect BrowserAccessibilityManager::GetViewBounds() {
728 BrowserAccessibilityDelegate* delegate = GetDelegateFromRootManager(); 731 BrowserAccessibilityDelegate* delegate = GetDelegateFromRootManager();
729 if (delegate) 732 if (delegate)
730 return delegate->AccessibilityGetViewBounds(); 733 return delegate->AccessibilityGetViewBounds();
731 return gfx::Rect(); 734 return gfx::Rect();
732 } 735 }
733 736
(...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after
1244 hit_test_result = parent; 1247 hit_test_result = parent;
1245 parent = parent->GetParent(); 1248 parent = parent->GetParent();
1246 } 1249 }
1247 1250
1248 last_hover_ax_tree_id_ = hit_test_result->manager()->ax_tree_id(); 1251 last_hover_ax_tree_id_ = hit_test_result->manager()->ax_tree_id();
1249 last_hover_node_id_ = hit_test_result->GetId(); 1252 last_hover_node_id_ = hit_test_result->GetId();
1250 last_hover_bounds_ = hit_test_result->GetScreenBoundsRect(); 1253 last_hover_bounds_ = hit_test_result->GetScreenBoundsRect();
1251 } 1254 }
1252 1255
1253 } // namespace content 1256 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698