Changeset 125953 in webkit
- Timestamp:
- Aug 17, 2012 5:10:11 PM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r125951 r125953 1 2012-08-17 Sheriff Bot <webkit.review.bot@gmail.com> 2 3 Unreviewed, rolling out r125940. 4 http://trac.webkit.org/changeset/125940 5 https://bugs.webkit.org/show_bug.cgi?id=94398 6 7 "Causes crashes on the bots 8 http://build.webkit.org/results/Apple%20Lion%20Debug%20WK2%20(Tests)/r125944%20(2626)/fast/css 9 /first-letter-removed-added-crash-log.txt" (Requested by 10 bradee-oh on #webkit). 11 12 * rendering/RenderListItem.cpp: 13 * rendering/RenderListItem.h: 14 (RenderListItem): 15 * rendering/RenderObject.cpp: 16 * rendering/RenderObject.h: 17 (RenderObject): 18 * rendering/RenderObjectChildList.cpp: 19 (WebCore::RenderObjectChildList::removeChildNode): 20 * rendering/RenderObjectChildList.h: 21 (RenderObjectChildList): 22 * rendering/RenderQuote.cpp: 23 * rendering/RenderQuote.h: 24 * rendering/RenderRegion.cpp: 25 * rendering/RenderRegion.h: 26 (RenderRegion): 27 1 28 2012-08-17 Sukolsak Sakshuwong <sukolsak@google.com> 2 29 -
trunk/Source/WebCore/rendering/RenderListItem.cpp
r125940 r125953 80 80 { 81 81 RenderBlock::insertedIntoTree(); 82 83 updateListMarkerNumbers();84 }85 86 void RenderListItem::willBeRemovedFromTree()87 {88 RenderBlock::willBeRemovedFromTree();89 82 90 83 updateListMarkerNumbers(); -
trunk/Source/WebCore/rendering/RenderListItem.h
r125940 r125953 60 60 61 61 virtual void insertedIntoTree() OVERRIDE; 62 virtual void willBeRemovedFromTree() OVERRIDE;63 62 64 63 virtual bool isEmpty() const; -
trunk/Source/WebCore/rendering/RenderObject.cpp
r125940 r125953 2396 2396 } 2397 2397 2398 void RenderObject::willBeRemovedFromTree()2399 {2400 ASSERT(isRooted());2401 2402 // If we remove a visible child from an invisible parent, we don't know the layer visibility any more.2403 RenderLayer* layer = 0;2404 if (parent()->style()->visibility() != VISIBLE && style()->visibility() == VISIBLE && !hasLayer()) {2405 if ((layer = parent()->enclosingLayer()))2406 layer->dirtyVisibleContentStatus();2407 }2408 2409 // Keep our layer hierarchy updated.2410 if (firstChild() || hasLayer()) {2411 if (!layer)2412 layer = parent()->enclosingLayer();2413 removeLayers(layer);2414 }2415 2416 if (isOutOfFlowPositioned() && parent()->childrenInline())2417 parent()->dirtyLinesFromChangedChild(this);2418 2419 if (inRenderFlowThread()) {2420 if (isBox())2421 enclosingRenderFlowThread()->removeRenderBoxRegionInfo(toRenderBox(this));2422 enclosingRenderFlowThread()->clearRenderObjectCustomStyle(this);2423 }2424 2425 if (RenderNamedFlowThread* containerFlowThread = parent()->enclosingRenderNamedFlowThread())2426 containerFlowThread->removeFlowChild(this);2427 2428 #if ENABLE(SVG)2429 // Update cached boundaries in SVG renderers, if a child is removed.2430 parent()->setNeedsBoundariesUpdate();2431 #endif2432 }2433 2434 2398 void RenderObject::destroyAndCleanupAnonymousWrappers() 2435 2399 { -
trunk/Source/WebCore/rendering/RenderObject.h
r125940 r125953 940 940 941 941 virtual void insertedIntoTree(); 942 virtual void willBeRemovedFromTree();943 942 944 943 private: -
trunk/Source/WebCore/rendering/RenderObjectChildList.cpp
r125940 r125953 64 64 } 65 65 66 RenderObject* RenderObjectChildList::removeChildNode(RenderObject* owner, RenderObject* oldChild, bool notifyRenderer)66 RenderObject* RenderObjectChildList::removeChildNode(RenderObject* owner, RenderObject* oldChild, bool fullRemove) 67 67 { 68 68 ASSERT(oldChild->parent() == owner); … … 74 74 // that a positioned child got yanked). We also repaint, so that the area exposed when the child 75 75 // disappears gets repainted properly. 76 if (!owner->documentBeingDestroyed() && notifyRenderer&& oldChild->everHadLayout()) {76 if (!owner->documentBeingDestroyed() && fullRemove && oldChild->everHadLayout()) { 77 77 oldChild->setNeedsLayoutAndPrefWidthsRecalc(); 78 78 if (oldChild->isBody()) … … 86 86 toRenderBox(oldChild)->deleteLineBoxWrapper(); 87 87 88 if (!owner->documentBeingDestroyed() && notifyRenderer) 89 oldChild->willBeRemovedFromTree(); 88 if (!owner->documentBeingDestroyed() && fullRemove) { 89 // if we remove visible child from an invisible parent, we don't know the layer visibility any more 90 RenderLayer* layer = 0; 91 if (owner->style()->visibility() != VISIBLE && oldChild->style()->visibility() == VISIBLE && !oldChild->hasLayer()) { 92 if ((layer = owner->enclosingLayer())) 93 layer->dirtyVisibleContentStatus(); 94 } 95 96 // Keep our layer hierarchy updated. 97 if (oldChild->firstChild() || oldChild->hasLayer()) { 98 if (!layer) 99 layer = owner->enclosingLayer(); 100 oldChild->removeLayers(layer); 101 } 102 103 if (oldChild->isListItem()) 104 toRenderListItem(oldChild)->updateListMarkerNumbers(); 105 106 if (oldChild->isOutOfFlowPositioned() && owner->childrenInline()) 107 owner->dirtyLinesFromChangedChild(oldChild); 108 109 if (oldChild->isRenderRegion()) 110 toRenderRegion(oldChild)->detachRegion(); 111 112 if (oldChild->isQuote()) 113 toRenderQuote(oldChild)->detachQuote(); 114 115 if (oldChild->inRenderFlowThread()) { 116 if (oldChild->isBox()) 117 oldChild->enclosingRenderFlowThread()->removeRenderBoxRegionInfo(toRenderBox(oldChild)); 118 oldChild->enclosingRenderFlowThread()->clearRenderObjectCustomStyle(oldChild); 119 } 120 121 if (RenderNamedFlowThread* containerFlowThread = owner->enclosingRenderNamedFlowThread()) 122 containerFlowThread->removeFlowChild(oldChild); 123 124 #if ENABLE(SVG) 125 // Update cached boundaries in SVG renderers, if a child is removed. 126 owner->setNeedsBoundariesUpdate(); 127 #endif 128 } 90 129 91 130 // If oldChild is the start or end of the selection, then clear the selection to -
trunk/Source/WebCore/rendering/RenderObjectChildList.h
r125940 r125953 53 53 void destroyLeftoverChildren(); 54 54 55 RenderObject* removeChildNode(RenderObject* owner, RenderObject*, bool notifyRenderer= true);55 RenderObject* removeChildNode(RenderObject* owner, RenderObject*, bool fullRemove = true); 56 56 void appendChildNode(RenderObject* owner, RenderObject*, bool notifyRenderer = true); 57 57 void insertChildNode(RenderObject* owner, RenderObject* child, RenderObject* before, bool notifyRenderer = true); -
trunk/Source/WebCore/rendering/RenderQuote.cpp
r125940 r125953 49 49 detachQuote(); 50 50 RenderText::willBeDestroyed(); 51 }52 53 void RenderQuote::willBeRemovedFromTree()54 {55 RenderText::willBeRemovedFromTree();56 57 detachQuote();58 51 } 59 52 -
trunk/Source/WebCore/rendering/RenderQuote.h
r125940 r125953 50 50 // is called on an attached tree, we should override it here. 51 51 52 virtual void willBeRemovedFromTree() OVERRIDE;53 54 52 const QuotesData* quotesData() const; 55 53 void updateDepth(); -
trunk/Source/WebCore/rendering/RenderRegion.cpp
r125940 r125953 365 365 } 366 366 367 void RenderRegion::willBeRemovedFromTree()368 {369 RenderReplaced::willBeRemovedFromTree();370 371 detachRegion();372 }373 374 367 PassRefPtr<RenderStyle> RenderRegion::computeStyleInRegion(const RenderObject* object) 375 368 { -
trunk/Source/WebCore/rendering/RenderRegion.h
r125940 r125953 102 102 103 103 virtual void insertedIntoTree() OVERRIDE; 104 virtual void willBeRemovedFromTree() OVERRIDE;105 104 106 105 PassRefPtr<RenderStyle> computeStyleInRegion(const RenderObject*);
Note: See TracChangeset
for help on using the changeset viewer.