Changeset 141982 in webkit
- Timestamp:
- Feb 6, 2013 3:32:16 AM (11 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r141981 r141982 1 2013-02-06 Mihai Maerean <mmaerean@adobe.com> 2 3 [CSSRegions] Assertion failure in Node::detach (!renderer || renderer->inRenderFlowThread()) 4 https://bugs.webkit.org/show_bug.cgi?id=104517 5 6 Reviewed by Julien Chaffraix. 7 8 The test adds an anonymous block in a region and detaches the body of document. The ASSERT is not hit anymore. 9 10 * fast/regions/detaching-regions-with-anonymous-blocks-expected.txt: Added. 11 * fast/regions/detaching-regions-with-anonymous-blocks.html: Added. 12 1 13 2013-02-06 Marja Hölttä <marja@chromium.org> 2 14 -
trunk/Source/WebCore/ChangeLog
r141981 r141982 1 2013-02-06 Mihai Maerean <mmaerean@adobe.com> 2 3 [CSSRegions] Assertion failure in Node::detach (!renderer || renderer->inRenderFlowThread()) 4 https://bugs.webkit.org/show_bug.cgi?id=104517 5 6 Reviewed by Julien Chaffraix. 7 8 The RenderObject::inRenderFlowThread bit could have become disconnected from the fact that the RenderObject 9 has (or not) an enclosing RenderFlowThread. 10 The cause of this was that, when setting or removing the parent of a RenderObject, the inRenderFlowThread flags 11 wasn't being set/reset for the children too. 12 This is now fixed by calling the new setInRenderFlowThreadIncludingDescendants. 13 14 The ASSERT was hit for anonymous blocks when detaching the document. 15 16 Test: fast/regions/detaching-regions-with-anonymous-blocks.html 17 18 * rendering/RenderObject.cpp: 19 (WebCore::RenderObject::setInRenderFlowThreadRecursive): 20 (WebCore): 21 * rendering/RenderObject.h: 22 (WebCore::RenderObject::setParent): 23 (RenderObject): 24 1 25 2013-02-06 Marja Hölttä <marja@chromium.org> 2 26 -
trunk/Source/WebCore/rendering/RenderObject.cpp
r141570 r141982 277 277 { 278 278 return node() && node()->renderer() == this && node()->hasTagName(marqueeTag); 279 } 280 281 void RenderObject::setInRenderFlowThreadIncludingDescendants(bool b) 282 { 283 setInRenderFlowThread(b); 284 285 for (RenderObject* child = firstChild(); child; child = child->nextSibling()) { 286 ASSERT(b != child->inRenderFlowThread()); 287 child->setInRenderFlowThreadIncludingDescendants(b); 288 } 279 289 } 280 290 -
trunk/Source/WebCore/rendering/RenderObject.h
r141524 r141982 271 271 { 272 272 m_parent = parent; 273 if (parent && parent->inRenderFlowThread() )274 setInRenderFlowThread (true);273 if (parent && parent->inRenderFlowThread() && !inRenderFlowThread()) 274 setInRenderFlowThreadIncludingDescendants(true); 275 275 else if (!parent && inRenderFlowThread()) 276 setInRenderFlowThread (false);276 setInRenderFlowThreadIncludingDescendants(false); 277 277 } 278 278 ////////////////////////////////////////// … … 434 434 bool inRenderFlowThread() const { return m_bitfields.inRenderFlowThread(); } 435 435 void setInRenderFlowThread(bool b = true) { m_bitfields.setInRenderFlowThread(b); } 436 437 void setInRenderFlowThreadIncludingDescendants(bool = true); 436 438 437 439 virtual bool requiresForcedStyleRecalcPropagation() const { return false; }
Note: See TracChangeset
for help on using the changeset viewer.