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

Issue 2393123002: Implement caching asynchronous accessibility hit testing. (Closed)

Created:
4 years, 2 months ago by dmazzoni
Modified:
4 years, 2 months ago
CC:
chromium-reviews, aboxhall+watch_chromium.org, nektar+watch_chromium.org, jam, yuzo+watch_chromium.org, je_julie, darin-cc_chromium.org, dmazzoni+watch_chromium.org, dtseng+watch_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Implement caching asynchronous accessibility hit testing. Native accessibility APIs all have some sort of "hit test" function. Unfortunately on Mac, Windows, and Linux, they're all synchronous APIs. This is problematic for Chrome because only the render process can do an accurate hit test. Previously we relied on an approximate hit test based on accessible bounding boxes in the browser process. This was okay for debugging, but not for users with low-vision who want the accessible cursor to follow the mouse accurately. To fix it, every time we get a hit test request we send an asynchronous message to do an accurate hit test. While waiting, we return an approximate hit test result instead. The next time the mouse moves, if it's within the bounds of the object found by the asynchronous hit test, we return that. In practice it works well - as you mouse over an object, the first pixel you cross will occasionally return the wrong object, but one or two pixels later the correct object has been returned by Blink and then it's correct. Includes a test that confirms this behavior, that calling the hit test first returns an approximate result and then later returns the correct result if you call it repeatedly. BUG=652996 Committed: https://crrev.com/e7ca9f46f8f281febb2762ce693b7f8d93e25f9e Cr-Commit-Position: refs/heads/master@{#424521}

Patch Set 1 #

Total comments: 2

Patch Set 2 : Remove log #

Patch Set 3 : Fix unit tests #

Patch Set 4 : Made test more robust #

Messages

Total messages: 18 (8 generated)
dmazzoni
4 years, 2 months ago (2016-10-05 07:51:03 UTC) #2
dmazzoni
+ellyjones Actually Elly, this might be a good one for you to review too.
4 years, 2 months ago (2016-10-05 16:49:59 UTC) #4
Elly Fong-Jones
lgtm I really like this. I wonder if it would be good to add a ...
4 years, 2 months ago (2016-10-06 14:20:53 UTC) #5
dmazzoni
On 2016/10/06 14:20:53, Elly Fong-Jones wrote: > lgtm > > I really like this. > ...
4 years, 2 months ago (2016-10-10 19:36:42 UTC) #6
dmazzoni
https://codereview.chromium.org/2393123002/diff/1/content/browser/accessibility/browser_accessibility_cocoa.mm File content/browser/accessibility/browser_accessibility_cocoa.mm (right): https://codereview.chromium.org/2393123002/diff/1/content/browser/accessibility/browser_accessibility_cocoa.mm#newcode2854 content/browser/accessibility/browser_accessibility_cocoa.mm:2854: LOG(ERROR) << "HitTest " << point.x << ", " ...
4 years, 2 months ago (2016-10-10 19:36:42 UTC) #7
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2393123002/20001
4 years, 2 months ago (2016-10-10 19:37:14 UTC) #10
commit-bot: I haz the power
Try jobs failed on following builders: cast_shell_linux on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/cast_shell_linux/builds/239075)
4 years, 2 months ago (2016-10-10 20:09:20 UTC) #12
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2393123002/60001
4 years, 2 months ago (2016-10-11 18:43:33 UTC) #15
commit-bot: I haz the power
Committed patchset #4 (id:60001)
4 years, 2 months ago (2016-10-11 20:03:46 UTC) #16
commit-bot: I haz the power
4 years, 2 months ago (2016-10-11 20:06:44 UTC) #18
Message was sent while issue was closed.
Patchset 4 (id:??) landed as
https://crrev.com/e7ca9f46f8f281febb2762ce693b7f8d93e25f9e
Cr-Commit-Position: refs/heads/master@{#424521}

Powered by Google App Engine
This is Rietveld 408576698