Bug 126017 - [CSS Shapes] Shape-inside should not share to float/inline shadow descendants
Summary: [CSS Shapes] Shape-inside should not share to float/inline shadow descendants
Status: RESOLVED LATER
Alias: None
Product: WebKit
Classification: Unclassified
Component: CSS (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks: 89256
  Show dependency treegraph
 
Reported: 2013-12-19 14:10 PST by Bear Travis
Modified: 2014-03-27 09:28 PDT (History)
8 users (show)

See Also:


Attachments
Initial Patch (10.34 KB, patch)
2013-12-19 14:20 PST, Bear Travis
no flags Details | Formatted Diff | Diff
Additional ancestor check (10.61 KB, patch)
2014-01-08 14:50 PST, Bear Travis
no flags Details | Formatted Diff | Diff
Archive of layout-test-results from webkit-ews-12 for mac-mountainlion-wk2 (459.98 KB, application/zip)
2014-01-08 18:38 PST, Build Bot
no flags Details
Updated Patch (10.64 KB, patch)
2014-01-09 10:43 PST, Bear Travis
no flags Details | Formatted Diff | Diff
Updating test with crash note (10.66 KB, patch)
2014-01-17 16:28 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-12-19 14:10:00 PST
Shadow children of elements like TextInput may bypass the check for shape inside sharing, as they do not use typical layout mechanisms. The check should check the containing blocks between a descendant and shape-inside ancestor to make sure the descendant can use the shape-inside.
Comment 1 Bear Travis 2013-12-19 14:20:13 PST
Created attachment 219681 [details]
Initial Patch
Comment 2 Bear Travis 2014-01-08 14:50:07 PST
Created attachment 220669 [details]
Additional ancestor check

Inline children respecting shape-inside must only have block ancestors between themselves and the shape container. Special controls or Shadow DOM instances may add inline children to non-block elements.
Comment 3 Build Bot 2014-01-08 18:38:20 PST
Comment on attachment 220669 [details]
Additional ancestor check

Attachment 220669 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/6594254147158016

New failing tests:
media/track/media-element-enqueue-event-crash.html
Comment 4 Build Bot 2014-01-08 18:38:22 PST
Created attachment 220687 [details]
Archive of layout-test-results from webkit-ews-12 for mac-mountainlion-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-12  Port: mac-mountainlion-wk2  Platform: Mac OS X 10.8.5
Comment 5 Bear Travis 2014-01-09 10:43:09 PST
Created attachment 220751 [details]
Updated Patch
Comment 6 Bear Travis 2014-01-17 16:28:55 PST
Created attachment 221510 [details]
Updating test with crash note
Comment 7 Zoltan Horvath 2014-02-07 13:52:22 PST
Comment on attachment 221510 [details]
Updating test with crash note

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

> Source/WebCore/rendering/RenderBlock.cpp:1463
> +    if (flowThread && allowsShapeInsideInfoSharing(*flowThread)) {

I think it looks better if you pass the flowThread here as a reference already, thus you define flowThread as RenderFlowThread&

> Source/WebCore/rendering/RenderBlock.h:33
> +#if ENABLE(CSS_SHAPES)

This guard needs to updated for the new shape-inside guard.

> Source/WebCore/rendering/RenderBlock.h:637
> +#if ENABLE(CSS_SHAPES)

ditto