[Webkit-unassigned] [Bug 93891] ASSERTION FAILED: !currBox->needsLayout() loading bing maps
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Sun Sep 16 03:43:58 PDT 2012
https://bugs.webkit.org/show_bug.cgi?id=93891
Zalan Bujtas <zbujtas at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |zbujtas at gmail.com
--- Comment #2 from Zalan Bujtas <zbujtas at gmail.com> 2012-09-16 03:44:26 PST ---
1, When the div's position attribute is changed from fixed to absolute (c.style.position = "absolute";), it first gets removed and then added back to gPositionedDescendantsMap ListHashSet (RenderBlock::removePositionedObject/insertPositionedObject).
2, With nested positioned divs, after the position attribute change of the outer div (remove-insert), the inner div gets in front of the outer in the positionedDescendatnsMap.
3, During a subsequent layout, as RenderBlock::layoutPositionedObjects() iterates through the positioned objects, it first lays out the inner div followed by the outer div.
4, The inner div is marked dirty at RenderBlock::layoutInlineChildren(), while the outer div is being layed out.
5, RenderBlock::layoutPositionedObjects() leaves with the inner div marked dirty.
->ASSERT.
Not sure why we are marking the fixed positioned inner div dirty, when only the outer (non containing) div is changed (but not the containing block), but the actual fix I think is to make sure the ListHashSet of the positioned objects is in the right order. Proposed fix is coming.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list