Bug 32449

Summary: Child elements disappear, then get doubled, when changing -webkit-transform-style
Product: WebKit Reporter: Adam Roben (:aroben) <aroben>
Component: Layout and RenderingAssignee: Chris Marrin <cmarrin>
Status: RESOLVED FIXED    
Severity: Normal CC: cmarrin
Priority: P2 Keywords: InRadar, PlatformOnly
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Windows 7   
URL: http://webkit.org/blog-files/3d-transforms/transform-style.html
Attachments:
Description Flags
Patch
none
replacement patch simon.fraser: review+

Description Adam Roben (:aroben) 2009-12-11 14:07:06 PST
To reproduce:

1. Go to http://webkit.org/blog-files/3d-transforms/transform-style.html
2. Hover over the box with the blue border
3. Move your mouse out of the box with the blue border

After step 2, the yellow and green rectangles disappear, but should instead be rendered flattened into the purple rectangle. After step 3, the yellow and green rectangles appear *both* flattened and unflattened, but should only appear unflattened.
Comment 1 mitz 2009-12-11 14:09:46 PST
<rdar://problem/7465615>
Comment 2 Chris Marrin 2010-03-17 16:58:59 PDT
Created attachment 50972 [details]
Patch
Comment 3 Chris Marrin 2010-03-18 14:46:06 PDT
Created attachment 51097 [details]
replacement patch

This separates the removeFromSuperLayer loop from the insertSublayer loop in the setSublayers method. This is safer to avoid mutating the array while traversing it.
Comment 4 Simon Fraser (smfr) 2010-03-18 14:49:53 PDT
Comment on attachment 51097 [details]
replacement patch

r=me but this needs a layout test (written to assume that pixel and/or layer dumping is available in future).
Comment 5 Chris Marrin 2010-03-18 16:01:40 PDT
Landed in http://trac.webkit.org/changeset/56200
Comment 6 Chris Marrin 2010-03-18 16:03:47 PDT
I am working on printing the layer tree from DRT. When I land that, I will land a test for this bug as a proof of concept