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

Unified Diff: content/browser/accessibility/browser_accessibility_manager.h

Issue 2393123002: Implement caching asynchronous accessibility hit testing. (Closed)
Patch Set: Made test more robust Created 4 years, 2 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.h
diff --git a/content/browser/accessibility/browser_accessibility_manager.h b/content/browser/accessibility/browser_accessibility_manager.h
index 91b31c75814d78f63c3bebe443f8b16a34049348..f6b98189e2e779e57a3fdf711448fa6ae6f80a64 100644
--- a/content/browser/accessibility/browser_accessibility_manager.h
+++ b/content/browser/accessibility/browser_accessibility_manager.h
@@ -383,6 +383,16 @@ class CONTENT_EXPORT BrowserAccessibilityManager : public ui::AXTreeDelegate {
// Get a snapshot of the current tree as an AXTreeUpdate.
ui::AXTreeUpdate SnapshotAXTreeForTesting();
+ // Given a point in screen coordinates, trigger an asynchronous hit test
+ // but return the best possible match instantly.
+ //
+ //
+ BrowserAccessibility* CachingAsyncHitTest(const gfx::Point& screen_point);
+
+ // Called in response to a hover event, caches the result for the next
+ // call to CachingAsyncHitTest().
+ void CacheHitTestResult(BrowserAccessibility* hit_test_result);
+
protected:
BrowserAccessibilityManager(
BrowserAccessibilityDelegate* delegate,
@@ -453,6 +463,14 @@ class CONTENT_EXPORT BrowserAccessibilityManager : public ui::AXTreeDelegate {
BrowserAccessibility* last_focused_node_;
BrowserAccessibilityManager* last_focused_manager_;
+ // These cache the AX tree ID, node ID, and global screen bounds of the
+ // last object found by an asynchronous hit test. Subsequent hit test
+ // requests that remain within this object's bounds will return the same
+ // object, but will also trigger a new asynchronous hit test request.
+ int last_hover_ax_tree_id_;
+ int last_hover_node_id_;
+ gfx::Rect last_hover_bounds_;
+
// True if the root's parent is in another accessibility tree and that
// parent's child is the root. Ensures that the parent node is notified
// once when this subtree is first connected.

Powered by Google App Engine
This is Rietveld 408576698