Bug 126017

Summary: [CSS Shapes] Shape-inside should not share to float/inline shadow descendants
Product: WebKit Reporter: Bear Travis <betravis>
Component: CSSAssignee: Nobody <webkit-unassigned>
Status: RESOLVED LATER    
Severity: Normal CC: buildbot, commit-queue, esprehn+autocc, glenn, kondapallykalyan, rniwa, WebkitBugTracker, zoltan
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 89256    
Attachments:
Description Flags
Initial Patch
none
Additional ancestor check
none
Archive of layout-test-results from webkit-ews-12 for mac-mountainlion-wk2
none
Updated Patch
none
Updating test with crash note none

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