Bug 85855 - Compositing layers with transformed children not large enough to show contents
Summary: Compositing layers with transformed children not large enough to show contents
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Simon Fraser (smfr)
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2012-05-07 20:51 PDT by Simon Fraser (smfr)
Modified: 2012-05-07 22:46 PDT (History)
7 users (show)

See Also:


Attachments
Testcase (701 bytes, text/html)
2012-05-07 20:51 PDT, Simon Fraser (smfr)
no flags Details
Patch (6.11 KB, patch)
2012-05-07 22:33 PDT, Simon Fraser (smfr)
mitz: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
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