Bug 22212 - [Transforms] redrawing turds when transforming element with abs. pos child
Summary: [Transforms] redrawing turds when transforming element with abs. pos child
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Mac OS X 10.5
: P2 Normal
Assignee: Simon Fraser (smfr)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-11-12 12:40 PST by Simon Fraser (smfr)
Modified: 2008-11-12 17:32 PST (History)
1 user (show)

See Also:


Attachments
Testcase (969 bytes, text/html)
2008-11-12 12:40 PST, Simon Fraser (smfr)
no flags Details
Patch, testcase, changelog (16.15 KB, patch)
2008-11-12 17:22 PST, 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) 2008-11-12 12:40:30 PST
The testcase shows a redraw issue when transforming something with an absolute position child.
Comment 1 Simon Fraser (smfr) 2008-11-12 12:40:48 PST
Created attachment 25101 [details]
Testcase
Comment 2 Simon Fraser (smfr) 2008-11-12 15:21:48 PST
The issue here is that RenderObject::repaintAfterLayoutIfNeeded() falls into the "just redraw the deltas" codepath when redrawing the abs. positioned gray bar.
Comment 3 Simon Fraser (smfr) 2008-11-12 17:22:12 PST
Created attachment 25109 [details]
Patch, testcase, changelog
Comment 4 mitz 2008-11-12 17:27:10 PST
Comment on attachment 25109 [details]
Patch, testcase, changelog

> +     #box {
> +        position: relative;
> +         margin: 50px;
> +         width: 200px;
> +         height: 200px;
> +         border: 2px solid black;
> +         -webkit-transform: rotate(0deg);
> +
> +     }

Tiny indentation problem here.

> +        Finally, fix a bug in RenderBox::localToAbsoluteQuad() which was getting
> +        borderTopExtra() from the object, rather than its container (as localToAbsolute()
> +        does).

Do you have a test for this?

r=me
Comment 5 Simon Fraser (smfr) 2008-11-12 17:31:11 PST
> Do you have a test for this?

It was exposed by LayoutTests/fast/dynamic/subtree-table-cell-height.html, so is covered.
Comment 6 Simon Fraser (smfr) 2008-11-12 17:32:25 PST
Committed r38353
	M	WebCore/rendering/RenderFlexibleBox.cpp
	M	WebCore/rendering/RenderObject.cpp
	M	WebCore/rendering/RenderSVGContainer.cpp
	M	WebCore/rendering/RenderSVGViewportContainer.cpp
	M	WebCore/rendering/RenderObject.h
	M	WebCore/rendering/RenderLayer.cpp
	M	WebCore/rendering/RenderForeignObject.cpp
	M	WebCore/rendering/RenderPath.cpp
	M	WebCore/rendering/RenderBox.cpp
	M	WebCore/rendering/RenderBlock.cpp
	M	WebCore/rendering/RenderTable.cpp
	M	WebCore/rendering/RenderSVGImage.cpp
	M	WebCore/rendering/RenderSVGText.cpp
	M	WebCore/rendering/RenderReplaced.cpp
	M	WebCore/rendering/RenderSVGRoot.cpp
	M	WebCore/ChangeLog
	A	LayoutTests/platform/mac/fast/repaint/transform-absolute-child-expected.png
	A	LayoutTests/platform/mac/fast/repaint/transform-absolute-child-expected.txt
	A	LayoutTests/platform/mac/fast/repaint/transform-absolute-child-expected.checksum
	M	LayoutTests/ChangeLog
	A	LayoutTests/fast/repaint/transform-absolute-child.html
r38353 = d12c84b463bdb934ab22f7931948b30951f4e310 (trunk)