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

Issue 2168663002: Bypass cached element rects in AXLayoutObject. (Closed)

Created:
4 years, 5 months ago by dmazzoni
Modified:
4 years, 5 months ago
Reviewers:
nektarios, aboxhall
CC:
dmazzoni, aboxhall, aboxhall+watch_chromium.org, blink-reviews, chromium-reviews, dmazzoni+watch_chromium.org, dtseng+watch_chromium.org, haraken, je_julie, nektar+watch_chromium.org, nektarios, yuzo+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Bypass cached element rects in AXLayoutObject. AXLayoutObject has code to cache the computed bounding box of an element because the computation can be expensive. However, it has a bug in that the cache doesn't get properly invalidated when an object's position changes due to only a CSS transformation. This is resulting in a serious user issue on Android (b/28988142) so this patch just temporarily removes the element rect caching. This will unfortunately impact performance, some pages will load more slowly when accessibility is enabled. I've been working on a better longer-term fix for many months - storing relative bounding boxes and transformation matrixes instead. It's much faster to compute those and doesn't require any caching to be fast. Unfortuantely it looks like we need to trade performance for correctness in the short term because there isn't a trivial fix to make the cache work. BUG=629439 Committed: https://crrev.com/d091cc2097ed7cedb7d310a4161f022ae870bddc Cr-Commit-Position: refs/heads/master@{#406663}

Patch Set 1 #

Total comments: 2

Patch Set 2 : Add link to bug #

Unified diffs Side-by-side diffs Delta from patch set Stats (+3 lines, -14 lines) Patch
M third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp View 1 1 chunk +3 lines, -14 lines 0 comments Download

Messages

Total messages: 13 (6 generated)
dmazzoni
4 years, 5 months ago (2016-07-20 16:26:34 UTC) #3
aboxhall
lgtm https://codereview.chromium.org/2168663002/diff/1/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp File third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp (right): https://codereview.chromium.org/2168663002/diff/1/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp#newcode205 third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp:205: return computeElementRect(); Add a comment pointing to the ...
4 years, 5 months ago (2016-07-20 16:30:11 UTC) #5
aboxhall
lgtm lgtm
4 years, 5 months ago (2016-07-20 16:30:12 UTC) #6
dmazzoni
https://codereview.chromium.org/2168663002/diff/1/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp File third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp (right): https://codereview.chromium.org/2168663002/diff/1/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp#newcode205 third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp:205: return computeElementRect(); On 2016/07/20 at 16:30:11, aboxhall wrote: > ...
4 years, 5 months ago (2016-07-20 17:24:16 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/2168663002/20001
4 years, 5 months ago (2016-07-20 17:24:47 UTC) #10
commit-bot: I haz the power
Committed patchset #2 (id:20001)
4 years, 5 months ago (2016-07-20 20:55:16 UTC) #11
commit-bot: I haz the power
4 years, 5 months ago (2016-07-20 20:57:05 UTC) #13
Message was sent while issue was closed.
Patchset 2 (id:??) landed as
https://crrev.com/d091cc2097ed7cedb7d310a4161f022ae870bddc
Cr-Commit-Position: refs/heads/master@{#406663}

Powered by Google App Engine
This is Rietveld 408576698