Bug 108128 - [css exclusions] setting shape-inside on a parent does not relayout child blocks' inline content
Summary: [css exclusions] setting shape-inside on a parent does not relayout child blo...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: CSS (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Bear Travis
URL:
Keywords:
Depends on: 110995
Blocks: 89256 111029 111189
  Show dependency treegraph
 
Reported: 2013-01-28 16:02 PST by Bear Travis
Modified: 2013-03-01 13:04 PST (History)
4 users (show)

See Also:


Attachments
Dynamically sets shape-inside after 5 seconds (941 bytes, text/html)
2013-01-28 16:02 PST, Bear Travis
no flags Details
Initial Patch (16.80 KB, patch)
2013-02-27 22:49 PST, Bear Travis
no flags Details | Formatted Diff | Diff
Factoring code out of layoutBlock() (18.29 KB, patch)
2013-03-01 10:54 PST, Bear Travis
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Bear Travis 2013-01-28 16:02:52 PST
Created attachment 185092 [details]
Dynamically sets shape-inside after 5 seconds

See test file. After 5 seconds, a shape-inside is applied, but inline content is not laid out. Will relayout correctly if you zoom in/out.
Comment 1 Bear Travis 2013-02-27 22:49:18 PST
Created attachment 190659 [details]
Initial Patch
Comment 2 Dave Hyatt 2013-03-01 09:07:46 PST
Comment on attachment 190659 [details]
Initial Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=190659&action=review

r-

> Source/WebCore/rendering/RenderBlock.cpp:1548
> +#if ENABLE(CSS_EXCLUSIONS)
> +    ExclusionShapeInsideInfo * info = exclusionShapeInsideInfo();
> +    if (info)
> +        info->setNeedsLayout(info->shapeSizeDirty());
> +    if (!relayoutChildren && (info || (info = layoutExclusionShapeInsideInfo())))
> +        relayoutChildren = info->needsLayout();
> +#endif

Could this possibly be folded into updateRegionsAndExclusionsLogicalSize, with that method returning a bool indicating whether or not relayoutChildren is required? Just trying to reduce the footprint of this code in layoutBlock.
Comment 3 Bear Travis 2013-03-01 10:54:12 PST
Created attachment 190988 [details]
Factoring code out of layoutBlock()
Comment 4 Dave Hyatt 2013-03-01 12:31:36 PST
Comment on attachment 190988 [details]
Factoring code out of layoutBlock()

r=me
Comment 5 WebKit Review Bot 2013-03-01 13:04:17 PST
Comment on attachment 190988 [details]
Factoring code out of layoutBlock()

Clearing flags on attachment: 190988

Committed r144487: <http://trac.webkit.org/changeset/144487>
Comment 6 WebKit Review Bot 2013-03-01 13:04:22 PST
All reviewed patches have been landed.  Closing bug.