Bug 132285

Summary: [New Multicolumn] Multiple tests assert in RenderGeometryMap
Product: WebKit Reporter: Dave Hyatt <hyatt>
Component: Layout and RenderingAssignee: Dave Hyatt <hyatt>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, esprehn+autocc, glenn, kondapallykalyan, WebkitBugTracker
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch simon.fraser: review+

Description Dave Hyatt 2014-04-28 09:52:09 PDT
The assert:

0   com.apple.JavaScriptCore      	0x000000010e73047a WTFCrash + 42 (Assertions.cpp:333)
1   com.apple.WebCore             	0x000000011101db92 WebCore::RenderGeometryMap::mapToContainer(WebCore::FloatRect const&, WebCore::RenderLayerModelObject const*) const + 850 (RenderGeometryMap.cpp:143)
2   com.apple.WebCore             	0x000000011104c5c9 WebCore::RenderGeometryMap::absoluteRect(WebCore::FloatRect const&) const + 57 (RenderGeometryMap.h:90)
3   com.apple.WebCore             	0x000000011109e6a3 WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::RenderLayerCompositor::OverlapMap*, WebCore::CompositingState&, bool&, bool&) + 467 (RenderLayerCompositor.cpp:1139)
4   com.apple.WebCore             	0x000000011109ebc9 WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::RenderLayerCompositor::OverlapMap*, WebCore::CompositingState&, bool&, bool&) + 1785 (RenderLayerCompositor.cpp:1230)
5   com.apple.WebCore             	0x000000011109ebc9 WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::RenderLayerCompositor::OverlapMap*, WebCore::CompositingState&, bool&, bool&) + 1785 (RenderLayerCompositor.cpp:1230)
6   com.apple.WebCore             	0x000000011109df7a WebCore::RenderLayerCompositor::updateCompositingLayers(WebCore::CompositingUpdateType, WebCore::RenderLayer*) + 906 (RenderLayerCompositor.cpp:702)
7   com.apple.WebCore             	0x00000001100d8efd WebCore::FrameView::updateCompositingLayersAfterLayout() + 93 (FrameView.cpp:729)
8   com.apple.WebCore             	0x00000001100dabca WebCore::FrameView::layout(bool) + 3882 (FrameView.cpp:1330)
9   com.apple.WebCore             	0x000000010fd5f76d WebCore::Document::updateLayout() + 349 (Document.cpp:1846)
10  com.apple.WebCore             	0x000000010fd62d4f WebCore::Document::updateLayoutIgnorePendingStylesheets() + 207 (Document.cpp:1880)
11  com.apple.WebCore             	0x000000010fee84fe WebCore::Element::getBoundingClientRect() + 62 (Element.cpp:888)

The results are also wrong.

This obviously blocks turning on new columns.
Comment 1 Dave Hyatt 2014-04-28 09:54:08 PDT
fast/events/offsetX-offsetY.html also fails with the same characteristics, so lumping it in here.
Comment 2 Dave Hyatt 2014-04-28 09:55:48 PDT
compositing/columns/composited-columns.html also hits this assert.
Comment 3 Dave Hyatt 2014-04-28 09:56:27 PDT
Ditto for compositing/columns/composited-nested-columns.html
Comment 4 Dave Hyatt 2014-04-29 22:07:47 PDT
Created attachment 230456 [details]
Patch
Comment 5 Simon Fraser (smfr) 2014-04-29 22:09:55 PDT
Comment on attachment 230456 [details]
Patch

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

> Source/WebCore/rendering/RenderMultiColumnFlowThread.h:112
> +    virtual LayoutSize offsetFromContainer(RenderObject*, const LayoutPoint&, bool* offsetDependsOnPoint = 0) const override;

= nullptr
Comment 6 Dave Hyatt 2014-04-29 22:16:04 PDT
Fixed in r167982.