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

Issue 767283005: Take continuation into consideration when calculating absoluteClippedOverflowRect. (Closed)

Created:
6 years ago by c.shu
Modified:
5 years, 11 months ago
CC:
blink-reviews, blink-reviews-rendering, eae+blinkwatch, jchaffraix+rendering, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, zoltan1
Base URL:
https://chromium.googlesource.com/chromium/blink.git@master
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Take continuation into consideration when calculating absoluteClippedOverflowRect. The root issue is not related to spatial navigation but RenderInline. When calculating absoluteClippedOverflowRect, we should also take the RenderObjects in the same continuation flow into account. In details, when there's a DIV inside an Anchor, the Anchor element's renderer, RenderInline, is being split into multiple RenderBlocks. The RenderText, which is originally a child of the RenderInline, becomes a sibling of it, and both of them are now children of the Anonymous RenderBlock. The original algorithm that calculates the rect of RenderInline only goes through it's child list, which will not work in this case. We have to explicitly go through all renderObjects for the continuation flow related to the RenderInline to get the right rect. BUG=438367 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=188780

Patch Set 1 #

Total comments: 14

Patch Set 2 : Address reviewers' comments #

Total comments: 4

Patch Set 3 : Address review comments and rebaseline #

Unified diffs Side-by-side diffs Delta from patch set Stats (+33 lines, -10 lines) Patch
A + LayoutTests/fast/spatial-navigation/snav-div-in-anchor.html View 2 chunks +7 lines, -9 lines 0 comments Download
A LayoutTests/fast/spatial-navigation/snav-div-in-anchor-expected.txt View 1 chunk +7 lines, -0 lines 0 comments Download
M Source/core/rendering/RenderInline.cpp View 1 2 1 chunk +19 lines, -1 line 0 comments Download

Messages

Total messages: 25 (6 generated)
c.shu
The root issue is not related to spatial navigation but RenderInline. When calculating absoluteClippedOverflowRect, we ...
6 years ago (2014-12-02 21:42:44 UTC) #2
pdr.
Just a quick drive-by review. https://codereview.chromium.org/767283005/diff/1/Source/core/rendering/RenderInline.cpp File Source/core/rendering/RenderInline.cpp (right): https://codereview.chromium.org/767283005/diff/1/Source/core/rendering/RenderInline.cpp#newcode1023 Source/core/rendering/RenderInline.cpp:1023: return clippedOverflowRectForPaintInvalidation(view()); It looks ...
6 years ago (2014-12-02 21:56:21 UTC) #4
c.shu
https://codereview.chromium.org/767283005/diff/1/Source/core/rendering/RenderInline.cpp File Source/core/rendering/RenderInline.cpp (right): https://codereview.chromium.org/767283005/diff/1/Source/core/rendering/RenderInline.cpp#newcode1023 Source/core/rendering/RenderInline.cpp:1023: return clippedOverflowRectForPaintInvalidation(view()); On 2014/12/02 21:56:21, pdr wrote: > It ...
6 years ago (2014-12-02 22:16:31 UTC) #5
c.shu
> Another way to avoid making absoluteClippedOverflowRect virtual is to check if > isRenderInline in ...
6 years ago (2014-12-02 23:20:16 UTC) #6
pdr.
On 2014/12/03 at 21:42:32, pdr wrote: > pdr@chromium.org changed reviewers: > + leviw@chromium.org leviw, would ...
6 years ago (2014-12-03 21:46:23 UTC) #9
pdr.
https://codereview.chromium.org/767283005/diff/1/Source/core/rendering/RenderInline.cpp File Source/core/rendering/RenderInline.cpp (right): https://codereview.chromium.org/767283005/diff/1/Source/core/rendering/RenderInline.cpp#newcode1023 Source/core/rendering/RenderInline.cpp:1023: return clippedOverflowRectForPaintInvalidation(view()); On 2014/12/02 at 22:16:31, c.shu wrote: > ...
6 years ago (2014-12-03 22:11:17 UTC) #10
c.shu
https://codereview.chromium.org/767283005/diff/1/Source/core/rendering/RenderInline.cpp File Source/core/rendering/RenderInline.cpp (right): https://codereview.chromium.org/767283005/diff/1/Source/core/rendering/RenderInline.cpp#newcode1023 Source/core/rendering/RenderInline.cpp:1023: return clippedOverflowRectForPaintInvalidation(view()); > Can you help me understand why ...
6 years ago (2014-12-03 22:27:27 UTC) #11
c.shu
leviw: ptal, thanks.
6 years ago (2014-12-08 20:38:10 UTC) #12
leviw_travelin_and_unemployed
https://codereview.chromium.org/767283005/diff/1/Source/core/rendering/RenderInline.cpp File Source/core/rendering/RenderInline.cpp (right): https://codereview.chromium.org/767283005/diff/1/Source/core/rendering/RenderInline.cpp#newcode1029 Source/core/rendering/RenderInline.cpp:1029: while (endContinuation->inlineElementContinuation()) { Nit: no braces needed. https://codereview.chromium.org/767283005/diff/1/Source/core/rendering/RenderInline.cpp#newcode1034 Source/core/rendering/RenderInline.cpp:1034: ...
6 years ago (2014-12-09 20:39:56 UTC) #13
c.shu
https://codereview.chromium.org/767283005/diff/1/Source/core/rendering/RenderInline.cpp File Source/core/rendering/RenderInline.cpp (right): https://codereview.chromium.org/767283005/diff/1/Source/core/rendering/RenderInline.cpp#newcode1029 Source/core/rendering/RenderInline.cpp:1029: while (endContinuation->inlineElementContinuation()) { On 2014/12/09 20:39:56, leviw wrote: > ...
6 years ago (2014-12-10 02:40:51 UTC) #14
leviw_travelin_and_unemployed
On 2014/12/10 at 02:40:51, c.shu wrote: > https://codereview.chromium.org/767283005/diff/1/Source/core/rendering/RenderInline.cpp > File Source/core/rendering/RenderInline.cpp (right): > > https://codereview.chromium.org/767283005/diff/1/Source/core/rendering/RenderInline.cpp#newcode1029 ...
6 years ago (2014-12-10 03:43:35 UTC) #15
leviw_travelin_and_unemployed
On 2014/12/10 at 03:43:35, leviw wrote: > On 2014/12/10 at 02:40:51, c.shu wrote: > > ...
6 years ago (2014-12-10 03:46:19 UTC) #16
c.shu
Thanks for the review, leviw and pdr. I have uploaded a new CL.
6 years ago (2014-12-10 16:09:28 UTC) #17
c.shu
On 2014/12/10 16:09:28, c.shu wrote: > Thanks for the review, leviw and pdr. I have ...
5 years, 11 months ago (2015-01-16 19:48:58 UTC) #18
leviw_travelin_and_unemployed
https://codereview.chromium.org/767283005/diff/20001/Source/core/rendering/RenderInline.cpp File Source/core/rendering/RenderInline.cpp (right): https://codereview.chromium.org/767283005/diff/20001/Source/core/rendering/RenderInline.cpp#newcode1042 Source/core/rendering/RenderInline.cpp:1042: context(FloatRect(enclosingIntRect(rect))); If you're eventually taking the enclosingIntRect of the ...
5 years, 11 months ago (2015-01-20 20:19:24 UTC) #20
c.shu
https://codereview.chromium.org/767283005/diff/20001/Source/core/rendering/RenderInline.cpp File Source/core/rendering/RenderInline.cpp (right): https://codereview.chromium.org/767283005/diff/20001/Source/core/rendering/RenderInline.cpp#newcode1042 Source/core/rendering/RenderInline.cpp:1042: context(FloatRect(enclosingIntRect(rect))); On 2015/01/20 20:19:24, leviw wrote: > If you're ...
5 years, 11 months ago (2015-01-20 23:10:22 UTC) #21
leviw_travelin_and_unemployed
LGTM.
5 years, 11 months ago (2015-01-21 22:47:01 UTC) #22
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/767283005/40001
5 years, 11 months ago (2015-01-21 23:17:23 UTC) #24
commit-bot: I haz the power
5 years, 11 months ago (2015-01-22 00:56:43 UTC) #25
Message was sent while issue was closed.
Committed patchset #3 (id:40001) as
https://src.chromium.org/viewvc/blink?view=rev&revision=188780

Powered by Google App Engine
This is Rietveld 408576698