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

Issue 1452233002: Fix the reference box computation for CSS filter effects. (Closed)

Created:
5 years, 1 month ago by Stephen White
Modified:
5 years, 1 month ago
Reviewers:
chrishtr, fs
CC:
blink-reviews, blink-reviews-layout_chromium.org, chromium-reviews, krit, eae+blinkwatch, f(malita), gyuyoung2, jchaffraix+rendering, kouhei+svg_chromium.org, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, pdr+svgwatchlist_chromium.org, rwlbuis, Stephen Chennney, szager+layoutwatch_chromium.org, zoltan1
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Fix the reference box computation for CSS filter effects. Previously, we had been using the element's border bounding box, but this does not take transforms applied to child elements into account. The fix is to use a union of the subtree's visual overflow rects. This is similar to LayoutObject::absoluteElementBoundingBoxRect(), but in local coordinates and float precision. BUG=554169

Patch Set 1 #

Total comments: 7

Patch Set 2 : Switch to using physicalBoundingBoxIncludingReflectionAndStackingChildren; add nullptr check #

Unified diffs Side-by-side diffs Delta from patch set Stats (+58 lines, -3 lines) Patch
A third_party/WebKit/LayoutTests/css3/filters/filter-region-transformed-child.html View 1 chunk +27 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/css3/filters/filter-region-transformed-child-expected.html View 1 chunk +25 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp View 1 2 chunks +5 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayer.cpp View 1 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 30 (5 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1452233002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1452233002/1
5 years, 1 month ago (2015-11-17 16:25:55 UTC) #2
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 1 month ago (2015-11-17 19:05:56 UTC) #7
Stephen White
chrishtr@ || fs@: PTAL. Thanks!
5 years, 1 month ago (2015-11-17 19:06:23 UTC) #8
chrishtr
https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp File third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp (right): https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp#newcode105 third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp:105: element->layoutObject()->addElementVisualOverflowRects(rects, LayoutPoint()); addElementVisualOverflowRects doesn't take into account transform scale ...
5 years, 1 month ago (2015-11-17 19:14:45 UTC) #9
Stephen White
On 2015/11/17 19:14:45, chrishtr wrote: > https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp > File third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp > (right): > > https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp#newcode105 ...
5 years, 1 month ago (2015-11-17 19:22:19 UTC) #10
fs
https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp File third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp (right): https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp#newcode107 third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp:107: referenceBox = FloatRect(FloatPoint(), size); (Note) I couldn't help but ...
5 years, 1 month ago (2015-11-17 20:22:35 UTC) #11
Stephen White
https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp File third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp (right): https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp#newcode107 third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp:107: referenceBox = FloatRect(FloatPoint(), size); On 2015/11/17 20:22:35, fs wrote: ...
5 years, 1 month ago (2015-11-17 20:44:22 UTC) #12
fs
https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp File third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp (right): https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp#newcode107 third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp:107: referenceBox = FloatRect(FloatPoint(), size); On 2015/11/17 at 20:44:21, Stephen ...
5 years, 1 month ago (2015-11-17 21:10:48 UTC) #13
Stephen White
On 2015/11/17 19:22:19, Stephen White - PST wrote: > On 2015/11/17 19:14:45, chrishtr wrote: > ...
5 years, 1 month ago (2015-11-18 17:18:35 UTC) #14
Stephen White
https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp File third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp (right): https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp#newcode107 third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp:107: referenceBox = FloatRect(FloatPoint(), size); On 2015/11/17 21:10:48, fs wrote: ...
5 years, 1 month ago (2015-11-18 22:15:10 UTC) #15
chrishtr
On 2015/11/18 at 22:15:10, senorblanco wrote: > https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp > File third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp (right): > > https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp#newcode107 ...
5 years, 1 month ago (2015-11-18 22:54:29 UTC) #16
chrishtr
On 2015/11/18 at 17:18:35, senorblanco wrote: > On 2015/11/17 19:22:19, Stephen White - PST wrote: ...
5 years, 1 month ago (2015-11-18 22:55:42 UTC) #17
Stephen White
On 2015/11/18 22:54:29, chrishtr wrote: > On 2015/11/18 at 22:15:10, senorblanco wrote: > > > ...
5 years, 1 month ago (2015-11-18 23:13:18 UTC) #18
chrishtr
On 2015/11/18 at 23:13:18, senorblanco wrote: > On 2015/11/18 22:54:29, chrishtr wrote: > > On ...
5 years, 1 month ago (2015-11-18 23:14:53 UTC) #19
Stephen White
On 2015/11/18 23:14:53, chrishtr wrote: > On 2015/11/18 at 23:13:18, senorblanco wrote: > > On ...
5 years, 1 month ago (2015-11-18 23:23:52 UTC) #20
fs
https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp File third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp (right): https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp#newcode107 third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp:107: referenceBox = FloatRect(FloatPoint(), size); On 2015/11/18 at 22:15:10, Stephen ...
5 years, 1 month ago (2015-11-18 23:35:43 UTC) #21
Stephen White
https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp File third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp (right): https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp#newcode107 third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp:107: referenceBox = FloatRect(FloatPoint(), size); On 2015/11/18 23:35:43, fs wrote: ...
5 years, 1 month ago (2015-11-18 23:47:00 UTC) #22
chrishtr
On 2015/11/18 at 23:47:00, senorblanco wrote: > https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp > File third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp (right): > > https://codereview.chromium.org/1452233002/diff/1/third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp#newcode107 ...
5 years, 1 month ago (2015-11-19 01:09:21 UTC) #23
fs
On 2015/11/19 at 01:09:21, chrishtr wrote: > On 2015/11/18 at 23:47:00, senorblanco wrote: > > ...
5 years, 1 month ago (2015-11-19 10:15:33 UTC) #24
Stephen White
On 2015/11/19 01:09:21, chrishtr wrote: > The crashing example you encountered demonstrates why it's just ...
5 years, 1 month ago (2015-11-19 16:13:40 UTC) #25
fs
On 2015/11/19 at 16:13:40, senorblanco wrote: > On 2015/11/19 01:09:21, chrishtr wrote: > > The ...
5 years, 1 month ago (2015-11-19 16:29:52 UTC) #26
fs
On 2015/11/19 at 16:29:52, fs wrote: > On 2015/11/19 at 16:13:40, senorblanco wrote: > > ...
5 years, 1 month ago (2015-11-19 17:18:58 UTC) #27
Stephen White
On 2015/11/19 16:29:52, fs wrote: > On 2015/11/19 at 16:13:40, senorblanco wrote: > > On ...
5 years, 1 month ago (2015-11-19 17:19:03 UTC) #28
chrishtr
On 2015/11/19 at 17:19:03, senorblanco wrote: > On 2015/11/19 16:29:52, fs wrote: > > On ...
5 years, 1 month ago (2015-11-19 17:21:48 UTC) #29
Stephen White
5 years, 1 month ago (2015-11-20 16:42:59 UTC) #30
Closing this in favour of https://codereview.chromium.org/1459953002/, which has
landed.

Powered by Google App Engine
This is Rietveld 408576698