Bug 85855

Summary: Compositing layers with transformed children not large enough to show contents
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: Layout and RenderingAssignee: Simon Fraser (smfr) <simon.fraser>
Status: RESOLVED FIXED    
Severity: Normal CC: achicu, enne, eric, jamesr, simon.fraser, webkit-bug-importer, webkit.review.bot
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Testcase
none
Patch mitz: review+

Description Simon Fraser (smfr) 2012-05-07 20:51:33 PDT
http://trac.webkit.org/changeset/109851/ regressed (or revealed) a bug in some compositing content (test case attached). The size of the #slider layer is not big enough to contain the transformed children.
Comment 1 Simon Fraser (smfr) 2012-05-07 20:51:52 PDT
Created attachment 140660 [details]
Testcase
Comment 2 Simon Fraser (smfr) 2012-05-07 20:52:13 PDT
<rdar://problem/11401995>
Comment 3 Radar WebKit Bug Importer 2012-05-07 20:52:45 PDT
<rdar://problem/11402771>
Comment 4 Simon Fraser (smfr) 2012-05-07 21:08:13 PDT
RenderLayer::calculateLayerBounds() is using convertToLayerCoords() which ignores transforms!
Comment 5 Simon Fraser (smfr) 2012-05-07 22:11:15 PDT
Ah, the actual bug was caused by http://trac.webkit.org/changeset/114518, by the newly added UseLocalClipRectIfPossible code path in RenderLayer::calculateLayerBounds() which didn't handle transforms.
Comment 6 Simon Fraser (smfr) 2012-05-07 22:33:54 PDT
Created attachment 140675 [details]
Patch
Comment 7 mitz 2012-05-07 22:36:29 PDT
Comment on attachment 140675 [details]
Patch

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

> Source/WebCore/rendering/RenderLayer.cpp:4163
> +                TransformationMatrix* affineTrans = layer->transform();

Weird name for a local variable that’s not really needed.
Comment 8 Simon Fraser (smfr) 2012-05-07 22:46:04 PDT
http://trac.webkit.org/changeset/116395