Bug 104722 - -webkit-svg-shadow radius changes don't cause children's boundaries to be recomputed
Summary: -webkit-svg-shadow radius changes don't cause children's boundaries to be rec...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: SVG (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Tim Horton
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2012-12-11 14:48 PST by Tim Horton
Modified: 2012-12-11 17:16 PST (History)
6 users (show)

See Also:


Attachments
repro (928 bytes, text/html)
2012-12-11 14:48 PST, Tim Horton
no flags Details
patch (6.03 KB, patch)
2012-12-11 16:24 PST, Tim Horton
no flags Details | Formatted Diff | Diff
patch (8.25 KB, patch)
2012-12-11 17:07 PST, Tim Horton
simon.fraser: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Tim Horton 2012-12-11 14:48:34 PST
Created attachment 178884 [details]
repro

There's a note in SVGRenderStyle::diff():

// Shadow changes require relayouts, as they affect the repaint rects.

And it then returns StyleDifferenceLayout.

Then, RenderSVGModelObject::styleWillChange() (and friends) marks the boundaries dirty when it gets that StyleDifferenceLayout.

But! We also need to our children's boundaries as dirty, since the parent's shadow is baked into them.

I have a patch to recursively dirty children's boundaries if the old and/or new style has a -webkit-svg-shadow which fixes the attached testcase. Not sure if that hammer is too big, though.

<rdar://problem/12821080>
Comment 1 Tim Horton 2012-12-11 16:24:59 PST
Created attachment 178912 [details]
patch

Next, to write a test.
Comment 2 Tim Horton 2012-12-11 17:07:24 PST
Created attachment 178924 [details]
patch
Comment 3 Tim Horton 2012-12-11 17:16:15 PST
http://trac.webkit.org/changeset/137393