Bug 21941

Summary: [Transforms] RenderObject::absolutePosition() needs to be made transform-aware
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: Layout and RenderingAssignee: Simon Fraser (smfr) <simon.fraser>
Status: RESOLVED FIXED    
Severity: Normal CC: hyatt, mitz
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Mac   
OS: OS X 10.5   
Bug Depends on:    
Bug Blocks: 15670, 21870, 21906    
Attachments:
Description Flags
Testcase to exercise most of the absolutePosition code paths
none
First cut patch
none
Patch, changelog
none
Patch, changelog
none
Patch with newlines hyatt: review+

Description Simon Fraser (smfr) 2008-10-28 18:08:53 PDT
The absolutePosition() method knows nothing about transforms, and gives the wrong answer for elements with transforms. This needs to be fixed.
Comment 1 Simon Fraser (smfr) 2008-10-30 21:21:57 PDT
Created attachment 24791 [details]
Testcase to exercise most of the absolutePosition code paths
Comment 2 Simon Fraser (smfr) 2008-10-30 21:41:33 PDT
Created attachment 24793 [details]
First cut patch
Comment 3 Simon Fraser (smfr) 2008-10-31 15:22:26 PDT
Created attachment 24820 [details]
Patch, changelog
Comment 4 Simon Fraser (smfr) 2008-10-31 15:24:23 PDT
I ran the PLT with and without the patch; no measurable performance impact.
Comment 5 Dave Hyatt 2008-10-31 15:26:48 PDT
Comment on attachment 24820 [details]
Patch, changelog

Can localToAbsolute have = FloatPoint() as the default argument?  (I can't remember if you can construct objects as default arguments or not.)
Comment 6 Simon Fraser (smfr) 2008-11-03 21:37:09 PST
Created attachment 24883 [details]
Patch, changelog
Comment 7 Simon Fraser (smfr) 2008-11-04 09:56:58 PST
Created attachment 24886 [details]
Patch with newlines
Comment 8 Dave Hyatt 2008-11-04 10:27:05 PST
Comment on attachment 24886 [details]
Patch with newlines

Rename addScrolledOffset/subtractScrolledOffset to be addScrolledContentOffset/subtractScrolledContentOffset to match your new method.

r=me
Comment 9 Simon Fraser (smfr) 2008-11-04 10:46:34 PST
Filed bug 22064 to clean up addScrolledContentOffset/subtractScrolledContentOffset/scrolledContentOffset
Comment 10 Simon Fraser (smfr) 2008-11-04 10:55:07 PST
Committed r38098
	M	WebKit/mac/ChangeLog
	M	WebKit/mac/WebView/WebRenderNode.mm
	M	WebCore/platform/graphics/FloatPoint.h
	M	WebCore/platform/graphics/IntSize.h
	M	WebCore/svg/SVGSVGElement.cpp
	M	WebCore/html/HTMLInputElement.cpp
	M	WebCore/html/HTMLImageElement.cpp
	M	WebCore/html/HTMLAreaElement.cpp
	M	WebCore/html/HTMLAnchorElement.cpp
	M	WebCore/html/HTMLInputElement.h
	M	WebCore/rendering/RenderPart.cpp
	M	WebCore/rendering/RenderObject.cpp
	M	WebCore/rendering/RenderTableCell.cpp
	M	WebCore/rendering/RenderBox.h
	M	WebCore/rendering/RenderFlow.cpp
	M	WebCore/rendering/RenderObject.h
	M	WebCore/rendering/RenderLayer.cpp
	M	WebCore/rendering/RenderSVGInlineText.cpp
	M	WebCore/rendering/RenderListMarker.cpp
	M	WebCore/rendering/RenderText.cpp
	M	WebCore/rendering/RenderBox.cpp
	M	WebCore/rendering/RenderBlock.cpp
	M	WebCore/rendering/RenderWidget.cpp
	M	WebCore/rendering/RenderView.cpp
	M	WebCore/rendering/LayoutState.cpp
	M	WebCore/rendering/RenderContainer.cpp
	M	WebCore/rendering/RenderListBox.cpp
	M	WebCore/rendering/RenderSVGText.cpp
	M	WebCore/rendering/RenderReplaced.cpp
	M	WebCore/rendering/RenderView.h
	M	WebCore/rendering/RenderLayer.h
	M	WebCore/rendering/RenderVideo.cpp
	M	WebCore/rendering/RenderTableCell.h
	M	WebCore/dom/ContainerNode.cpp
	M	WebCore/dom/Node.cpp
	M	WebCore/dom/MouseRelatedEvent.cpp
	M	WebCore/dom/ContainerNode.h
	M	WebCore/editing/visible_units.cpp
	M	WebCore/editing/SelectionController.cpp
	M	WebCore/ChangeLog
	M	WebCore/WebCore.base.exp
	M	WebCore/page/AccessibilityRenderObject.cpp
	M	WebCore/page/EventHandler.cpp
r38098 = c65d3288003ff07697e37bc5b28bf517124d89b0 (trunk)