New issue
Advanced search Search tips

Issue 726081 link

Starred by 4 users

Issue metadata

Status: Verified
Owner:
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug-Regression
Team-Accessibility



Sign in to add a comment

ChromeVox boundings rects incorrect on high-dpi devices

Project Member Reported by dmazz...@chromium.org, May 24 2017

Issue description

This regressed with r460412 (https://codereview.chromium.org/2762373002) which switched how we compute bounding rects.

That change was reverted in the M59 branch so the bug only affects M60.

To test locally, run Chrome with this flag to scale it up by 2x:

--ash-host-window-bounds="0+0-1200x800*2"

 
Project Member

Comment 1 by bugdroid1@chromium.org, May 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cb19f7f0877982a0d5c326198eb3a67f366d4114

commit cb19f7f0877982a0d5c326198eb3a67f366d4114
Author: dmazzoni <dmazzoni@chromium.org>
Date: Fri May 26 08:25:06 2017

Fix automation API bounding boxes on high-dpi devices

This regressed in r460412 (https://codereview.chromium.org/2762373002)
when we switched from taking the frame-relative coordinates of each web
object and adding a frame offset, to always just walking up the whole
accessibility tree to find the global bounds of an object.

The reason that failed is because the coordinates we get from the web
have the scale factor applied, but coordinates we get from the desktop
do not. So we need to "unapply" the device scale factor just once,
at the point we walk from the web tree to the desktop tree.

This regressed once before last year. This time I figured out a way to add
a regression test for it.

BUG= 726081 

Review-Url: https://codereview.chromium.org/2911553002
Cr-Commit-Position: refs/heads/master@{#474967}

[modify] https://crrev.com/cb19f7f0877982a0d5c326198eb3a67f366d4114/chrome/browser/extensions/api/automation/automation_apitest.cc
[modify] https://crrev.com/cb19f7f0877982a0d5c326198eb3a67f366d4114/chrome/renderer/extensions/automation_internal_custom_bindings.cc
[modify] https://crrev.com/cb19f7f0877982a0d5c326198eb3a67f366d4114/chrome/renderer/extensions/automation_internal_custom_bindings.h
[add] https://crrev.com/cb19f7f0877982a0d5c326198eb3a67f366d4114/chrome/test/data/extensions/api_test/automation/tests/location_scaled/buttons.html
[add] https://crrev.com/cb19f7f0877982a0d5c326198eb3a67f366d4114/chrome/test/data/extensions/api_test/automation/tests/location_scaled/location_scaled.js
[add] https://crrev.com/cb19f7f0877982a0d5c326198eb3a67f366d4114/chrome/test/data/extensions/api_test/automation/tests/location_scaled/manifest.json

Status: Fixed (was: Assigned)
Status: Verified (was: Fixed)
Labels: ReleaseBlock-Stable Merge-Request-60
Status: Available (was: Verified)
Argh, this was supposed to be merged to M60!

Entirely my fault, I intended to request a merge since it landed just after the M60 branch point, but I forgot to.

I know it's super late for a merge. Here are some arguments in favor:

* It's had a long time to bake on M61 - no crashes found anywhere near that code
* Most of the affected files are tests (so this doesn't regress again!). The actual changes to chrome/renderer/extensions/automation_internal_custom_bindings.* are very small and safe.
* It only affects users running ChromeVox or Select to Speak. Users who don't have either of those enabled will never touch this code path.

Arguments against the merge:

* Only affects hi-dpi devices like the Pixel. We encounter that a lot more at Google, but most Chromebooks are unaffected.

Project Member

Comment 5 by sheriffbot@chromium.org, Jul 21 2017

Labels: -Merge-Request-60 Hotlist-Merge-Review Merge-Review-60
This bug requires manual review: We are only 3 days from stable.
Please contact the milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), josafat@(ChromeOS), bustamante@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Merge-Review-60 Merge-Approved-60
ok, let's merge as per justification in c#4
Merging now
Project Member

Comment 8 by bugdroid1@chromium.org, Jul 24 2017

Labels: -merge-approved-60 merge-merged-3112
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dff330a148976a09492505e6cd6ca603153a7e38

commit dff330a148976a09492505e6cd6ca603153a7e38
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Mon Jul 24 19:21:46 2017

Merge to M60: Fix automation API bounding boxes on high-dpi devices

This regressed in r460412 (https://codereview.chromium.org/2762373002)
when we switched from taking the frame-relative coordinates of each web
object and adding a frame offset, to always just walking up the whole
accessibility tree to find the global bounds of an object.

The reason that failed is because the coordinates we get from the web
have the scale factor applied, but coordinates we get from the desktop
do not. So we need to "unapply" the device scale factor just once,
at the point we walk from the web tree to the desktop tree.

This regressed once before last year. This time I figured out a way to add
a regression test for it.

BUG= 726081 

(cherry picked from commit cb19f7f0877982a0d5c326198eb3a67f366d4114)

Review-Url: https://codereview.chromium.org/2911553002
Cr-Original-Commit-Position: refs/heads/master@{#474967}
Change-Id: I84a30fdc6ce9789c9f289039ad1219bf5e7a2937
Reviewed-on: https://chromium-review.googlesource.com/583633
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/branch-heads/3112@{#667}
Cr-Branched-From: b6460e24cf59f429d69de255538d0fc7a425ccf9-refs/heads/master@{#474897}
[modify] https://crrev.com/dff330a148976a09492505e6cd6ca603153a7e38/chrome/browser/extensions/api/automation/automation_apitest.cc
[modify] https://crrev.com/dff330a148976a09492505e6cd6ca603153a7e38/chrome/renderer/extensions/automation_internal_custom_bindings.cc
[modify] https://crrev.com/dff330a148976a09492505e6cd6ca603153a7e38/chrome/renderer/extensions/automation_internal_custom_bindings.h
[add] https://crrev.com/dff330a148976a09492505e6cd6ca603153a7e38/chrome/test/data/extensions/api_test/automation/tests/location_scaled/buttons.html
[add] https://crrev.com/dff330a148976a09492505e6cd6ca603153a7e38/chrome/test/data/extensions/api_test/automation/tests/location_scaled/location_scaled.js
[add] https://crrev.com/dff330a148976a09492505e6cd6ca603153a7e38/chrome/test/data/extensions/api_test/automation/tests/location_scaled/manifest.json

Status: Fixed (was: Available)
CLs are merged. Marking as fixed 
Cc: dtseng@chromium.org dmazz...@chromium.org
 Issue 745841  has been merged into this issue.
Status: Verified (was: Fixed)
Chrome OS 9592.71.0, 60.0.3112.80

Sign in to add a comment