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+

Simon Fraser (smfr)
Reported 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.
Attachments
Testcase to exercise most of the absolutePosition code paths (5.94 KB, text/html)
2008-10-30 21:21 PDT, Simon Fraser (smfr)
no flags
First cut patch (54.83 KB, patch)
2008-10-30 21:41 PDT, Simon Fraser (smfr)
no flags
Patch, changelog (69.22 KB, patch)
2008-10-31 15:22 PDT, Simon Fraser (smfr)
no flags
Patch, changelog (68.23 KB, patch)
2008-11-03 21:37 PST, Simon Fraser (smfr)
no flags
Patch with newlines (68.23 KB, patch)
2008-11-04 09:56 PST, Simon Fraser (smfr)
hyatt: review+
Simon Fraser (smfr)
Comment 1 2008-10-30 21:21:57 PDT
Created attachment 24791 [details] Testcase to exercise most of the absolutePosition code paths
Simon Fraser (smfr)
Comment 2 2008-10-30 21:41:33 PDT
Created attachment 24793 [details] First cut patch
Simon Fraser (smfr)
Comment 3 2008-10-31 15:22:26 PDT
Created attachment 24820 [details] Patch, changelog
Simon Fraser (smfr)
Comment 4 2008-10-31 15:24:23 PDT
I ran the PLT with and without the patch; no measurable performance impact.
Dave Hyatt
Comment 5 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.)
Simon Fraser (smfr)
Comment 6 2008-11-03 21:37:09 PST
Created attachment 24883 [details] Patch, changelog
Simon Fraser (smfr)
Comment 7 2008-11-04 09:56:58 PST
Created attachment 24886 [details] Patch with newlines
Dave Hyatt
Comment 8 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
Simon Fraser (smfr)
Comment 9 2008-11-04 10:46:34 PST
Filed bug 22064 to clean up addScrolledContentOffset/subtractScrolledContentOffset/scrolledContentOffset
Simon Fraser (smfr)
Comment 10 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)
Note You need to log in before you can comment on or make changes to this bug.