Title: [228686] releases/WebKitGTK/webkit-2.20/Source/WebCore
Revision
228686
Author
carlo...@webkit.org
Date
2018-02-19 08:06:10 -0800 (Mon, 19 Feb 2018)

Log Message

Merge r228337 - [RenderTreeBuilder] Introduce RenderTreeBuilder to willBeDestoryed/removeFromParentAndDestroy
https://bugs.webkit.org/show_bug.cgi?id=182635
<rdar://problem/37377489>

Reviewed by Antti Koivisto.

This patch helps finding callsites where we don't have a RenderTreeBuilder instance.

No change in functionality.

* dom/Document.cpp:
(WebCore::Document::setFullScreenRenderer):
* dom/Document.h:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::willBeDestroyed):
(WebCore::RenderBlock::takeChild):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::willBeDestroyed):
* rendering/RenderBlockFlow.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::willBeDestroyed):
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::willBeDestroyed):
(WebCore::RenderBoxModelObject::removeAndDestroyAllContinuations):
* rendering/RenderBoxModelObject.h:
* rendering/RenderButton.cpp:
(WebCore::RenderButton::setText):
* rendering/RenderCounter.cpp:
(WebCore::RenderCounter::willBeDestroyed):
* rendering/RenderCounter.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::willBeDestroyed):
* rendering/RenderElement.h:
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::willBeDestroyed):
* rendering/RenderEmbeddedObject.h:
* rendering/RenderFragmentedFlow.cpp:
(WebCore::RenderFragmentedFlow::willBeDestroyed):
* rendering/RenderFragmentedFlow.h:
* rendering/RenderFullScreen.cpp:
(WebCore::RenderFullScreen::willBeDestroyed):
(WebCore::RenderFullScreen::wrapNewRenderer):
(WebCore::RenderFullScreen::wrapExistingRenderer):
(WebCore::RenderFullScreen::unwrapRenderer):
* rendering/RenderFullScreen.h:
* rendering/RenderImage.cpp:
(WebCore::RenderImage::willBeDestroyed):
* rendering/RenderImage.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::willBeDestroyed):
* rendering/RenderInline.h:
* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::willBeDestroyed):
* rendering/RenderLayerModelObject.h:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::willBeDestroyed):
* rendering/RenderListBox.h:
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::willBeDestroyed):
* rendering/RenderListItem.h:
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::willBeDestroyed):
* rendering/RenderListMarker.h:
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::willBeDestroyed):
* rendering/RenderMenuList.h:
* rendering/RenderMultiColumnFlow.cpp:
(WebCore::RenderMultiColumnFlow::handleSpannerRemoval):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::removeFromParentAndDestroy):
(WebCore::RenderObject::willBeDestroyed):
(WebCore::RenderObject::destroy):
* rendering/RenderObject.h:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::willBeDestroyed):
* rendering/RenderReplaced.h:
* rendering/RenderRuby.cpp:
(WebCore::RenderRubyAsInline::takeChild):
(WebCore::RenderRubyAsBlock::takeChild):
* rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::willBeDestroyed):
* rendering/RenderSearchField.h:
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::willBeDestroyed):
* rendering/RenderSnapshottedPlugIn.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::willBeDestroyed):
* rendering/RenderText.h:
* rendering/RenderTextControlMultiLine.cpp:
(WebCore::RenderTextControlMultiLine::willBeDestroyed):
* rendering/RenderTextControlMultiLine.h:
* rendering/RenderTextFragment.cpp:
(WebCore::RenderTextFragment::willBeDestroyed):
(WebCore::RenderTextFragment::setText):
* rendering/RenderTextFragment.h:
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::willBeDestroyed):
* rendering/RenderVideo.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::willBeDestroyed):
* rendering/RenderView.h:
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::willBeDestroyed):
* rendering/RenderWidget.h:
* rendering/svg/RenderSVGBlock.cpp:
(WebCore::RenderSVGBlock::willBeDestroyed):
* rendering/svg/RenderSVGBlock.h:
* rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::willBeDestroyed):
* rendering/svg/RenderSVGImage.h:
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::willBeDestroyed):
* rendering/svg/RenderSVGInline.h:
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::willBeDestroyed):
* rendering/svg/RenderSVGModelObject.h:
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::willBeDestroyed):
* rendering/svg/RenderSVGResourceContainer.h:
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::willBeDestroyed):
* rendering/svg/RenderSVGRoot.h:
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::willBeDestroyed):
* rendering/svg/RenderSVGText.h:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::removeFromParentAndDestroyCleaningUpAnonymousWrappers):
* rendering/updating/RenderTreeBuilderList.cpp:
(WebCore::RenderTreeBuilder::List::updateItemMarker):
* rendering/updating/RenderTreeBuilderMultiColumn.cpp:
(WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow):
* rendering/updating/RenderTreeBuilderRuby.cpp:
(WebCore::RenderTreeBuilder::Ruby::moveBlockChildren):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/ChangeLog (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/ChangeLog	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/ChangeLog	2018-02-19 16:06:10 UTC (rev 228686)
@@ -1,5 +1,143 @@
 2018-02-09  Zalan Bujtas  <za...@apple.com>
 
+        [RenderTreeBuilder] Introduce RenderTreeBuilder to willBeDestoryed/removeFromParentAndDestroy
+        https://bugs.webkit.org/show_bug.cgi?id=182635
+        <rdar://problem/37377489>
+
+        Reviewed by Antti Koivisto.
+
+        This patch helps finding callsites where we don't have a RenderTreeBuilder instance.
+
+        No change in functionality.
+
+        * dom/Document.cpp:
+        (WebCore::Document::setFullScreenRenderer):
+        * dom/Document.h:
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::willBeDestroyed):
+        (WebCore::RenderBlock::takeChild):
+        * rendering/RenderBlock.h:
+        * rendering/RenderBlockFlow.cpp:
+        (WebCore::RenderBlockFlow::willBeDestroyed):
+        * rendering/RenderBlockFlow.h:
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::willBeDestroyed):
+        * rendering/RenderBox.h:
+        * rendering/RenderBoxModelObject.cpp:
+        (WebCore::RenderBoxModelObject::willBeDestroyed):
+        (WebCore::RenderBoxModelObject::removeAndDestroyAllContinuations):
+        * rendering/RenderBoxModelObject.h:
+        * rendering/RenderButton.cpp:
+        (WebCore::RenderButton::setText):
+        * rendering/RenderCounter.cpp:
+        (WebCore::RenderCounter::willBeDestroyed):
+        * rendering/RenderCounter.h:
+        * rendering/RenderElement.cpp:
+        (WebCore::RenderElement::willBeDestroyed):
+        * rendering/RenderElement.h:
+        * rendering/RenderEmbeddedObject.cpp:
+        (WebCore::RenderEmbeddedObject::willBeDestroyed):
+        * rendering/RenderEmbeddedObject.h:
+        * rendering/RenderFragmentedFlow.cpp:
+        (WebCore::RenderFragmentedFlow::willBeDestroyed):
+        * rendering/RenderFragmentedFlow.h:
+        * rendering/RenderFullScreen.cpp:
+        (WebCore::RenderFullScreen::willBeDestroyed):
+        (WebCore::RenderFullScreen::wrapNewRenderer):
+        (WebCore::RenderFullScreen::wrapExistingRenderer):
+        (WebCore::RenderFullScreen::unwrapRenderer):
+        * rendering/RenderFullScreen.h:
+        * rendering/RenderImage.cpp:
+        (WebCore::RenderImage::willBeDestroyed):
+        * rendering/RenderImage.h:
+        * rendering/RenderInline.cpp:
+        (WebCore::RenderInline::willBeDestroyed):
+        * rendering/RenderInline.h:
+        * rendering/RenderLayerModelObject.cpp:
+        (WebCore::RenderLayerModelObject::willBeDestroyed):
+        * rendering/RenderLayerModelObject.h:
+        * rendering/RenderListBox.cpp:
+        (WebCore::RenderListBox::willBeDestroyed):
+        * rendering/RenderListBox.h:
+        * rendering/RenderListItem.cpp:
+        (WebCore::RenderListItem::willBeDestroyed):
+        * rendering/RenderListItem.h:
+        * rendering/RenderListMarker.cpp:
+        (WebCore::RenderListMarker::willBeDestroyed):
+        * rendering/RenderListMarker.h:
+        * rendering/RenderMenuList.cpp:
+        (WebCore::RenderMenuList::willBeDestroyed):
+        * rendering/RenderMenuList.h:
+        * rendering/RenderMultiColumnFlow.cpp:
+        (WebCore::RenderMultiColumnFlow::handleSpannerRemoval):
+        * rendering/RenderObject.cpp:
+        (WebCore::RenderObject::removeFromParentAndDestroy):
+        (WebCore::RenderObject::willBeDestroyed):
+        (WebCore::RenderObject::destroy):
+        * rendering/RenderObject.h:
+        * rendering/RenderReplaced.cpp:
+        (WebCore::RenderReplaced::willBeDestroyed):
+        * rendering/RenderReplaced.h:
+        * rendering/RenderRuby.cpp:
+        (WebCore::RenderRubyAsInline::takeChild):
+        (WebCore::RenderRubyAsBlock::takeChild):
+        * rendering/RenderSearchField.cpp:
+        (WebCore::RenderSearchField::willBeDestroyed):
+        * rendering/RenderSearchField.h:
+        * rendering/RenderSnapshottedPlugIn.cpp:
+        (WebCore::RenderSnapshottedPlugIn::willBeDestroyed):
+        * rendering/RenderSnapshottedPlugIn.h:
+        * rendering/RenderText.cpp:
+        (WebCore::RenderText::willBeDestroyed):
+        * rendering/RenderText.h:
+        * rendering/RenderTextControlMultiLine.cpp:
+        (WebCore::RenderTextControlMultiLine::willBeDestroyed):
+        * rendering/RenderTextControlMultiLine.h:
+        * rendering/RenderTextFragment.cpp:
+        (WebCore::RenderTextFragment::willBeDestroyed):
+        (WebCore::RenderTextFragment::setText):
+        * rendering/RenderTextFragment.h:
+        * rendering/RenderVideo.cpp:
+        (WebCore::RenderVideo::willBeDestroyed):
+        * rendering/RenderVideo.h:
+        * rendering/RenderView.cpp:
+        (WebCore::RenderView::willBeDestroyed):
+        * rendering/RenderView.h:
+        * rendering/RenderWidget.cpp:
+        (WebCore::RenderWidget::willBeDestroyed):
+        * rendering/RenderWidget.h:
+        * rendering/svg/RenderSVGBlock.cpp:
+        (WebCore::RenderSVGBlock::willBeDestroyed):
+        * rendering/svg/RenderSVGBlock.h:
+        * rendering/svg/RenderSVGImage.cpp:
+        (WebCore::RenderSVGImage::willBeDestroyed):
+        * rendering/svg/RenderSVGImage.h:
+        * rendering/svg/RenderSVGInline.cpp:
+        (WebCore::RenderSVGInline::willBeDestroyed):
+        * rendering/svg/RenderSVGInline.h:
+        * rendering/svg/RenderSVGModelObject.cpp:
+        (WebCore::RenderSVGModelObject::willBeDestroyed):
+        * rendering/svg/RenderSVGModelObject.h:
+        * rendering/svg/RenderSVGResourceContainer.cpp:
+        (WebCore::RenderSVGResourceContainer::willBeDestroyed):
+        * rendering/svg/RenderSVGResourceContainer.h:
+        * rendering/svg/RenderSVGRoot.cpp:
+        (WebCore::RenderSVGRoot::willBeDestroyed):
+        * rendering/svg/RenderSVGRoot.h:
+        * rendering/svg/RenderSVGText.cpp:
+        (WebCore::RenderSVGText::willBeDestroyed):
+        * rendering/svg/RenderSVGText.h:
+        * rendering/updating/RenderTreeBuilder.cpp:
+        (WebCore::RenderTreeBuilder::removeFromParentAndDestroyCleaningUpAnonymousWrappers):
+        * rendering/updating/RenderTreeBuilderList.cpp:
+        (WebCore::RenderTreeBuilder::List::updateItemMarker):
+        * rendering/updating/RenderTreeBuilderMultiColumn.cpp:
+        (WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow):
+        * rendering/updating/RenderTreeBuilderRuby.cpp:
+        (WebCore::RenderTreeBuilder::Ruby::moveBlockChildren):
+
+2018-02-09  Zalan Bujtas  <za...@apple.com>
+
         [RenderTreeBuilder] Move multicolumn descendant/sibling removal logic to RenderTreeBuilder
         https://bugs.webkit.org/show_bug.cgi?id=182628
         <rdar://problem/37369528>

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/dom/Document.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/dom/Document.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/dom/Document.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -6301,7 +6301,7 @@
     exitingDocument.m_fullScreenChangeDelayTimer.startOneShot(0_s);
 }
 
-void Document::setFullScreenRenderer(RenderFullScreen* renderer)
+void Document::setFullScreenRenderer(RenderTreeBuilder& builder, RenderFullScreen* renderer)
 {
     if (renderer == m_fullScreenRenderer)
         return;
@@ -6316,7 +6316,7 @@
     }
 
     if (m_fullScreenRenderer)
-        m_fullScreenRenderer->removeFromParentAndDestroy();
+        m_fullScreenRenderer->removeFromParentAndDestroy(builder);
     ASSERT(!m_fullScreenRenderer);
 
     m_fullScreenRenderer = makeWeakPtr(renderer);

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/dom/Document.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/dom/Document.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/dom/Document.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -152,6 +152,7 @@
 class QualifiedName;
 class Range;
 class RenderFullScreen;
+class RenderTreeBuilder;
 class RenderView;
 class RequestAnimationFrameCallback;
 class SVGDocumentExtensions;
@@ -1130,7 +1131,7 @@
     WEBCORE_EXPORT void webkitWillExitFullScreenForElement(Element*);
     WEBCORE_EXPORT void webkitDidExitFullScreenForElement(Element*);
     
-    void setFullScreenRenderer(RenderFullScreen*);
+    void setFullScreenRenderer(RenderTreeBuilder&, RenderFullScreen*);
     RenderFullScreen* fullScreenRenderer() const { return m_fullScreenRenderer.get(); }
 
     void fullScreenChangeDelayTimerFired();

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlock.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlock.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlock.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -343,7 +343,7 @@
 }
 
 // Note that this is not called for RenderBlockFlows.
-void RenderBlock::willBeDestroyed()
+void RenderBlock::willBeDestroyed(RenderTreeBuilder& builder)
 {
     if (!renderTreeBeingDestroyed()) {
         if (parent())
@@ -352,7 +352,7 @@
 
     blockWillBeDestroyed();
 
-    RenderBox::willBeDestroyed();
+    RenderBox::willBeDestroyed(builder);
 }
 
 void RenderBlock::blockWillBeDestroyed()
@@ -578,7 +578,7 @@
             
             // Delete the now-empty block's lines and nuke it.
             nextBlock.deleteLines();
-            nextBlock.removeFromParentAndDestroy();
+            nextBlock.removeFromParentAndDestroy(builder);
             next = nullptr;
         }
     }

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlock.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlock.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlock.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -323,7 +323,7 @@
     
 protected:
     RenderFragmentedFlow* locateEnclosingFragmentedFlow() const override;
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
     void layout() override;
 

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlockFlow.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlockFlow.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlockFlow.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -127,7 +127,7 @@
     // Do not add any code here. Add it to willBeDestroyed() instead.
 }
 
-void RenderBlockFlow::willBeDestroyed()
+void RenderBlockFlow::willBeDestroyed(RenderTreeBuilder& builder)
 {
     if (!renderTreeBeingDestroyed()) {
         if (firstRootBox()) {
@@ -154,7 +154,7 @@
     blockWillBeDestroyed();
 
     // NOTE: This jumps down to RenderBox, bypassing RenderBlock since it would do duplicate work.
-    RenderBox::willBeDestroyed();
+    RenderBox::willBeDestroyed(builder);
 }
 
 RenderBlockFlow* RenderBlockFlow::previousSiblingWithOverhangingFloats(bool& parentHasFloats) const

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlockFlow.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlockFlow.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlockFlow.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -59,7 +59,7 @@
     void layoutBlock(bool relayoutChildren, LayoutUnit pageLogicalHeight = 0) override;
 
 protected:
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
     
     // This method is called at the start of layout to wipe away all of the floats in our floating objects list. It also
     // repopulates the list with any floats that intrude from previous siblings or parents. Floats that were added by

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBox.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBox.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBox.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -150,7 +150,7 @@
     // Do not add any code here. Add it to willBeDestroyed() instead.
 }
 
-void RenderBox::willBeDestroyed()
+void RenderBox::willBeDestroyed(RenderTreeBuilder& builder)
 {
     if (frame().eventHandler().autoscrollRenderer() == this)
         frame().eventHandler().stopAutoscrollTimer(true);
@@ -170,7 +170,7 @@
         view().unregisterBoxWithScrollSnapPositions(*this);
 #endif
 
-    RenderBoxModelObject::willBeDestroyed();
+    RenderBoxModelObject::willBeDestroyed(builder);
 }
 
 RenderFragmentContainer* RenderBox::clampToStartAndEndFragments(RenderFragmentContainer* fragment) const

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBox.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBox.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBox.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -631,7 +631,7 @@
     void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override;
     void updateFromStyle() override;
 
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
     bool createsNewFormattingContext() const;
 

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBoxModelObject.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBoxModelObject.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBoxModelObject.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -237,10 +237,10 @@
     // Do not add any code here. Add it to willBeDestroyed() instead.
 }
 
-void RenderBoxModelObject::willBeDestroyed()
+void RenderBoxModelObject::willBeDestroyed(RenderTreeBuilder& builder)
 {
     if (continuation() && !isContinuation()) {
-        removeAndDestroyAllContinuations();
+        removeAndDestroyAllContinuations(builder);
         ASSERT(!continuation());
     }
     if (hasContinuationChainNode())
@@ -252,7 +252,7 @@
     if (!renderTreeBeingDestroyed())
         view().imageQualityController().rendererWillBeDestroyed(*this);
 
-    RenderLayerModelObject::willBeDestroyed();
+    RenderLayerModelObject::willBeDestroyed(builder);
 }
 
 bool RenderBoxModelObject::hasVisibleBoxDecorationStyle() const
@@ -2551,7 +2551,7 @@
     }).iterator->value;
 }
 
-void RenderBoxModelObject::removeAndDestroyAllContinuations()
+void RenderBoxModelObject::removeAndDestroyAllContinuations(RenderTreeBuilder& builder)
 {
     ASSERT(!isContinuation());
     ASSERT(hasContinuationChainNode());
@@ -2558,7 +2558,7 @@
     ASSERT(continuationChainNodeMap().contains(this));
     auto& continuationChainNode = *continuationChainNodeMap().get(this);
     while (continuationChainNode.next)
-        continuationChainNode.next->renderer->removeFromParentAndDestroy();
+        continuationChainNode.next->renderer->removeFromParentAndDestroy(builder);
     removeFromContinuationChain();
 }
 

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBoxModelObject.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBoxModelObject.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBoxModelObject.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -245,7 +245,7 @@
     RenderBoxModelObject(Element&, RenderStyle&&, BaseTypeFlags);
     RenderBoxModelObject(Document&, RenderStyle&&, BaseTypeFlags);
 
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
     LayoutPoint adjustedPositionRelativeToOffsetParent(const LayoutPoint&) const;
 
@@ -308,7 +308,7 @@
 
 private:
     ContinuationChainNode& ensureContinuationChainNode();
-    void removeAndDestroyAllContinuations();
+    void removeAndDestroyAllContinuations(RenderTreeBuilder&);
 
     LayoutUnit computedCSSPadding(const Length&) const;
     

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderButton.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderButton.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderButton.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -128,7 +128,12 @@
         m_buttonText->setText(str.impl());
         return;
     }
-    m_buttonText->removeFromParentAndDestroy();
+    if (RenderTreeBuilder::current())
+        m_buttonText->removeFromParentAndDestroy(*RenderTreeBuilder::current());
+    else {
+        RenderTreeBuilder builder(*document().renderView());
+        m_buttonText->removeFromParentAndDestroy(builder);
+    }
 }
 
 String RenderButton::text() const

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderCounter.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderCounter.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderCounter.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -352,7 +352,7 @@
     // Do not add any code here. Add it to willBeDestroyed() instead.
 }
 
-void RenderCounter::willBeDestroyed()
+void RenderCounter::willBeDestroyed(RenderTreeBuilder& builder)
 {
     view().removeRenderCounter();
 
@@ -361,7 +361,7 @@
         ASSERT(!m_counterNode);
     }
     
-    RenderText::willBeDestroyed();
+    RenderText::willBeDestroyed(builder);
 }
 
 const char* RenderCounter::renderName() const

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderCounter.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderCounter.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderCounter.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -43,7 +43,7 @@
     void updateCounter();
 
 private:
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
     
     const char* renderName() const override;
     bool isCounter() const override;

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderElement.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderElement.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderElement.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -1050,7 +1050,7 @@
     view().frameView().layoutContext().clearSubtreeLayoutRoot();
 }
 
-void RenderElement::willBeDestroyed()
+void RenderElement::willBeDestroyed(RenderTreeBuilder& builder)
 {
     if (m_style.hasFixedBackgroundImage() && !settings().fixedBackgroundsPaintRelativeToDocument())
         view().frameView().removeSlowRepaintObject(*this);
@@ -1060,7 +1060,7 @@
     if (hasCounterNodeMap())
         RenderCounter::destroyCounterNodes(*this);
 
-    RenderObject::willBeDestroyed();
+    RenderObject::willBeDestroyed(builder);
 
     clearSubtreeLayoutRootIfNeeded();
 

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderElement.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderElement.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderElement.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -260,7 +260,7 @@
 
     void insertedIntoTree() override;
     void willBeRemovedFromTree() override;
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
     void setRenderInlineAlwaysCreatesLineBoxes(bool b) { m_renderInlineAlwaysCreatesLineBoxes = b; }
     bool renderInlineAlwaysCreatesLineBoxes() const { return m_renderInlineAlwaysCreatesLineBoxes; }

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderEmbeddedObject.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderEmbeddedObject.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderEmbeddedObject.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -113,10 +113,10 @@
     // Do not add any code here. Add it to willBeDestroyed() instead.
 }
 
-void RenderEmbeddedObject::willBeDestroyed()
+void RenderEmbeddedObject::willBeDestroyed(RenderTreeBuilder& builder)
 {
     view().frameView().removeEmbeddedObjectToUpdate(*this);
-    RenderWidget::willBeDestroyed();
+    RenderWidget::willBeDestroyed(builder);
 }
 
 RenderPtr<RenderEmbeddedObject> RenderEmbeddedObject::createForApplet(HTMLAppletElement& applet, RenderStyle&& style)

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderEmbeddedObject.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderEmbeddedObject.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderEmbeddedObject.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -66,7 +66,7 @@
 
 protected:
     void layout() override;
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
 private:
     const char* renderName() const override { return "RenderEmbeddedObject"; }

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderFragmentedFlow.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderFragmentedFlow.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderFragmentedFlow.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -763,10 +763,10 @@
     RenderBlockFlow::deleteLines();
 }
 
-void RenderFragmentedFlow::willBeDestroyed()
+void RenderFragmentedFlow::willBeDestroyed(RenderTreeBuilder& builder)
 {
     clearLinesToFragmentMap();
-    RenderBlockFlow::willBeDestroyed();
+    RenderBlockFlow::willBeDestroyed(builder);
 }
 
 void RenderFragmentedFlow::markFragmentsForOverflowLayoutIfNeeded()

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderFragmentedFlow.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderFragmentedFlow.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderFragmentedFlow.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -194,7 +194,7 @@
     virtual LayoutUnit initialLogicalWidth() const { return 0; };
     
     void clearLinesToFragmentMap();
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
     void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
 

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderFullScreen.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderFullScreen.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderFullScreen.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -58,14 +58,14 @@
     setReplaced(false); 
 }
 
-void RenderFullScreen::willBeDestroyed()
+void RenderFullScreen::willBeDestroyed(RenderTreeBuilder& builder)
 {
     if (m_placeholder) {
-        m_placeholder->removeFromParentAndDestroy();
+        m_placeholder->removeFromParentAndDestroy(builder);
         ASSERT(!m_placeholder);
     }
 
-    RenderFlexibleBox::willBeDestroyed();
+    RenderFlexibleBox::willBeDestroyed(builder);
 }
 
 static RenderStyle createFullScreenStyle()
@@ -106,7 +106,7 @@
     builder.insertChild(fullscreenRenderer, WTFMove(renderer));
     fullscreenRenderer.setNeedsLayoutAndPrefWidthsRecalc();
 
-    document.setFullScreenRenderer(&fullscreenRenderer);
+    document.setFullScreenRenderer(builder, &fullscreenRenderer);
 
     return newFullscreenRenderer;
 }
@@ -143,7 +143,7 @@
     builder.insertChild(fullscreenRenderer, WTFMove(toMove));
     fullscreenRenderer.setNeedsLayoutAndPrefWidthsRecalc();
 
-    document.setFullScreenRenderer(&fullscreenRenderer);
+    document.setFullScreenRenderer(builder, &fullscreenRenderer);
 }
 
 void RenderFullScreen::unwrapRenderer(bool& requiresRenderTreeRebuild)
@@ -169,7 +169,7 @@
                 if (auto* nonAnonymousChild = downcast<RenderBlock>(*child).firstChild())
                     child = nonAnonymousChild;
                 else {
-                    child->removeFromParentAndDestroy();
+                    child->removeFromParentAndDestroy(builder);
                     continue;
                 }
             }
@@ -184,10 +184,10 @@
         }
     }
     if (placeholder())
-        placeholder()->removeFromParentAndDestroy();
+        placeholder()->removeFromParentAndDestroy(builder);
     ASSERT(!placeholder());
 
-    removeFromParentAndDestroy();
+    removeFromParentAndDestroy(builder);
 }
 
 void RenderFullScreen::createPlaceholder(std::unique_ptr<RenderStyle> style, const LayoutRect& frameRect)

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderFullScreen.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderFullScreen.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderFullScreen.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -48,7 +48,7 @@
     
 private:
     bool isRenderFullScreen() const override { return true; }
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
     bool isFlexibleBoxImpl() const override { return true; }
 
 protected:

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderImage.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderImage.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderImage.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -149,10 +149,10 @@
     // Do not add any code here. Add it to willBeDestroyed() instead.
 }
 
-void RenderImage::willBeDestroyed()
+void RenderImage::willBeDestroyed(RenderTreeBuilder& builder)
 {
     imageResource().shutdown();
-    RenderReplaced::willBeDestroyed();
+    RenderReplaced::willBeDestroyed(builder);
 }
 
 // If we'll be displaying either alt text or an image, add some padding.

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderImage.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderImage.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderImage.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -77,7 +77,7 @@
     bool hasNonBitmapImage() const;
 
 protected:
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
     bool needsPreferredWidthsRecalculation() const final;
     RenderBox* embeddedContentBox() const final;

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderInline.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderInline.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderInline.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -70,7 +70,7 @@
     setChildrenInline(true);
 }
 
-void RenderInline::willBeDestroyed()
+void RenderInline::willBeDestroyed(RenderTreeBuilder& builder)
 {
 #if !ASSERT_DISABLED
     // Make sure we do not retain "this" in the continuation outline table map of our containing blocks.
@@ -107,7 +107,7 @@
 
     m_lineBoxes.deleteLineBoxes();
 
-    RenderBoxModelObject::willBeDestroyed();
+    RenderBoxModelObject::willBeDestroyed(builder);
 }
 
 void RenderInline::updateFromStyle()

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderInline.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderInline.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderInline.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -97,7 +97,7 @@
     void addChildIgnoringContinuation(RenderTreeBuilder&, RenderPtr<RenderObject> newChild, RenderObject* beforeChild = nullptr) final;
 
 protected:
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
     void styleWillChange(StyleDifference, const RenderStyle& newStyle) override;
     void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override;

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderLayerModelObject.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderLayerModelObject.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderLayerModelObject.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -65,7 +65,7 @@
     // Do not add any code here. Add it to willBeDestroyed() instead.
 }
 
-void RenderLayerModelObject::willBeDestroyed()
+void RenderLayerModelObject::willBeDestroyed(RenderTreeBuilder& builder)
 {
     if (isPositioned()) {
         if (style().hasViewportConstrainedPosition())
@@ -77,7 +77,7 @@
         destroyLayer();
     }
 
-    RenderElement::willBeDestroyed();
+    RenderElement::willBeDestroyed(builder);
     
     clearRepaintLayoutRects();
 }

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderLayerModelObject.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderLayerModelObject.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderLayerModelObject.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -73,7 +73,7 @@
     RenderLayerModelObject(Document&, RenderStyle&&, BaseTypeFlags);
 
     void createLayer();
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
 private:
     std::unique_ptr<RenderLayer> m_layer;

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderListBox.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderListBox.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderListBox.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -104,11 +104,11 @@
     // Do not add any code here. Add it to willBeDestroyed() instead.
 }
 
-void RenderListBox::willBeDestroyed()
+void RenderListBox::willBeDestroyed(RenderTreeBuilder& builder)
 {
     setHasVerticalScrollbar(false);
     view().frameView().removeScrollableArea(this);
-    RenderBlockFlow::willBeDestroyed();
+    RenderBlockFlow::willBeDestroyed(builder);
 }
 
 HTMLSelectElement& RenderListBox::selectElement() const

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderListBox.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderListBox.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderListBox.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -68,7 +68,7 @@
     bool scrolledToRight() const override;
 
 private:
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
     void element() const = delete;
 

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderListItem.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderListItem.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderListItem.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -54,11 +54,11 @@
     // Do not add any code here. Add it to willBeDestroyed() instead.
 }
 
-void RenderListItem::willBeDestroyed()
+void RenderListItem::willBeDestroyed(RenderTreeBuilder& builder)
 {
     if (m_marker)
-        m_marker->removeFromParentAndDestroy();
-    RenderBlockFlow::willBeDestroyed();
+        m_marker->removeFromParentAndDestroy(builder);
+    RenderBlockFlow::willBeDestroyed(builder);
 }
 
 RenderStyle RenderListItem::computeMarkerStyle() const

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderListItem.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderListItem.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderListItem.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -62,7 +62,7 @@
     bool isInReversedOrderedList() const;
 
 private:
-    void willBeDestroyed() final;
+    void willBeDestroyed(RenderTreeBuilder&) final;
 
     const char* renderName() const final { return "RenderListItem"; }
 

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderListMarker.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderListMarker.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderListMarker.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -1134,11 +1134,11 @@
     // Do not add any code here. Add it to willBeDestroyed() instead.
 }
 
-void RenderListMarker::willBeDestroyed()
+void RenderListMarker::willBeDestroyed(RenderTreeBuilder& builder)
 {
     if (m_image)
         m_image->removeClient(this);
-    RenderBox::willBeDestroyed();
+    RenderBox::willBeDestroyed(builder);
 }
 
 void RenderListMarker::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderListMarker.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderListMarker.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderListMarker.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -52,7 +52,7 @@
 #endif
 
 private:
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
     void element() const = delete;
 

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderMenuList.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderMenuList.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderMenuList.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -89,7 +89,7 @@
     // Do not add any code here. Add it to willBeDestroyed() instead.
 }
 
-void RenderMenuList::willBeDestroyed()
+void RenderMenuList::willBeDestroyed(RenderTreeBuilder& builder)
 {
 #if !PLATFORM(IOS)
     if (m_popup)
@@ -97,7 +97,7 @@
     m_popup = nullptr;
 #endif
 
-    RenderFlexibleBox::willBeDestroyed();
+    RenderFlexibleBox::willBeDestroyed(builder);
 }
 
 void RenderMenuList::setInnerRenderer(RenderBlock& innerRenderer)

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderMenuList.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderMenuList.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderMenuList.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -63,7 +63,7 @@
     void setInnerRenderer(RenderBlock&);
 
 private:
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
     void element() const = delete;
 

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderObject.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderObject.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderObject.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -255,10 +255,10 @@
     m_parent = parent;
 }
 
-void RenderObject::removeFromParentAndDestroy()
+void RenderObject::removeFromParentAndDestroy(RenderTreeBuilder& builder)
 {
     ASSERT(m_parent);
-    m_parent->removeAndDestroyChild(*RenderTreeBuilder::current(), *this);
+    m_parent->removeAndDestroyChild(builder, *this);
 }
 
 RenderObject* RenderObject::nextInPreOrder() const
@@ -1434,7 +1434,7 @@
         || view().selection().end() == this;
 }
 
-void RenderObject::willBeDestroyed()
+void RenderObject::willBeDestroyed(RenderTreeBuilder&)
 {
     ASSERT(!m_parent);
     ASSERT(renderTreeBeingDestroyed() || !is<RenderElement>(*this) || !view().frameView().hasSlowRepaintObject(downcast<RenderElement>(*this)));
@@ -1485,7 +1485,7 @@
         downcast<RenderBoxModelObject>(*this).layer()->willBeDestroyed();
 #endif
 
-    willBeDestroyed();
+    willBeDestroyed(*RenderTreeBuilder::current());
 
     if (is<RenderWidget>(*this)) {
         downcast<RenderWidget>(*this).deref();

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderObject.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderObject.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderObject.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -63,6 +63,7 @@
 class RenderLayerModelObject;
 class RenderFragmentContainer;
 class RenderTheme;
+class RenderTreeBuilder;
 class SelectionRangeData;
 class TransformState;
 class VisiblePosition;
@@ -752,7 +753,7 @@
     void imageChanged(CachedImage*, const IntRect* = nullptr) override;
     virtual void imageChanged(WrappedImagePtr, const IntRect* = nullptr) { }
 
-    void removeFromParentAndDestroy();
+    void removeFromParentAndDestroy(RenderTreeBuilder&);
 
     CSSAnimationController& animation() const;
 
@@ -787,7 +788,7 @@
 
     void adjustRectForOutlineAndShadow(LayoutRect&) const;
 
-    virtual void willBeDestroyed();
+    virtual void willBeDestroyed(RenderTreeBuilder&);
 
     virtual void insertedIntoTree();
     virtual void willBeRemovedFromTree();

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderReplaced.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderReplaced.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderReplaced.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -72,12 +72,12 @@
 
 RenderReplaced::~RenderReplaced() = default;
 
-void RenderReplaced::willBeDestroyed()
+void RenderReplaced::willBeDestroyed(RenderTreeBuilder& builder)
 {
     if (!renderTreeBeingDestroyed() && parent())
         parent()->dirtyLinesFromChangedChild(*this);
 
-    RenderBox::willBeDestroyed();
+    RenderBox::willBeDestroyed(builder);
 }
 
 void RenderReplaced::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderReplaced.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderReplaced.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderReplaced.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -67,7 +67,7 @@
     bool shouldPaint(PaintInfo&, const LayoutPoint&);
     LayoutRect localSelectionRect(bool checkWhetherSelected = true) const; // This is in local coordinates, but it's a physical rect (so the top left corner is physical top left).
 
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
 private:
     LayoutUnit computeConstrainedLogicalWidth(ShouldComputePreferred) const;

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderRuby.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderRuby.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderRuby.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -109,7 +109,7 @@
         ASSERT(child.isBeforeContent() || child.isAfterContent());
         auto& parent = *child.parent();
         auto takenChild = parent.takeChild(builder, child);
-        parent.removeFromParentAndDestroy();
+        parent.removeFromParentAndDestroy(builder);
         return takenChild;
     }
 
@@ -148,7 +148,7 @@
         ASSERT(child.isBeforeContent() || child.isAfterContent());
         auto& parent = *child.parent();
         auto takenChild = parent.takeChild(builder, child);
-        parent.removeFromParentAndDestroy();
+        parent.removeFromParentAndDestroy(builder);
         return takenChild;
     }
 

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderSearchField.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderSearchField.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderSearchField.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -64,7 +64,7 @@
     // Do not add any code here. Add it to willBeDestroyed() instead.
 }
 
-void RenderSearchField::willBeDestroyed()
+void RenderSearchField::willBeDestroyed(RenderTreeBuilder& builder)
 {
     if (m_searchPopup) {
         m_searchPopup->popupMenu()->disconnectClient();
@@ -71,7 +71,7 @@
         m_searchPopup = nullptr;
     }
 
-    RenderTextControlSingleLine::willBeDestroyed();
+    RenderTextControlSingleLine::willBeDestroyed(builder);
 }
 
 inline HTMLElement* RenderSearchField::resultsButtonElement() const

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderSearchField.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderSearchField.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderSearchField.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -48,7 +48,7 @@
 private:
     bool isSearchField() const final { return true; }
 
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
     LayoutUnit computeControlLogicalHeight(LayoutUnit lineHeight, LayoutUnit nonContentHeight) const override;
     void updateFromElement() override;
     EVisibility visibilityForCancelButton() const;

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -63,12 +63,12 @@
     // Do not add any code here. Add it to willBeDestroyed() instead.
 }
 
-void RenderSnapshottedPlugIn::willBeDestroyed()
+void RenderSnapshottedPlugIn::willBeDestroyed(RenderTreeBuilder& builder)
 {
     ASSERT(m_snapshotResource);
     m_snapshotResource->shutdown();
 
-    RenderEmbeddedObject::willBeDestroyed();
+    RenderEmbeddedObject::willBeDestroyed(builder);
 }
 
 HTMLPlugInImageElement& RenderSnapshottedPlugIn::plugInImageElement() const

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderSnapshottedPlugIn.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderSnapshottedPlugIn.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderSnapshottedPlugIn.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -43,7 +43,7 @@
     void handleEvent(Event&);
 
 private:
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
     void frameOwnerElement() const = delete;
     const char* renderName() const final { return "RenderSnapshottedPlugIn"; }
     CursorDirective getCursor(const LayoutPoint&, Cursor&) const final;

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderText.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderText.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderText.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -287,7 +287,7 @@
     m_lineBoxes.deleteAll();
 }
 
-void RenderText::willBeDestroyed()
+void RenderText::willBeDestroyed(RenderTreeBuilder& builder)
 {
     secureTextTimers().remove(this);
 
@@ -298,7 +298,7 @@
 
     setInlineWrapperForDisplayContents(nullptr);
 
-    RenderObject::willBeDestroyed();
+    RenderObject::willBeDestroyed(builder);
 }
 
 void RenderText::deleteLineBoxesBeforeSimpleLineLayout()

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderText.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderText.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderText.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -183,7 +183,7 @@
 
 protected:
     virtual void computePreferredLogicalWidths(float leadWidth);
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
     virtual void setRenderedText(const String&);
     virtual UChar previousCharacter() const;

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderTextControlMultiLine.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderTextControlMultiLine.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderTextControlMultiLine.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -45,12 +45,12 @@
     // Do not add any code here. Add it to willBeDestroyed() instead.
 }
 
-void RenderTextControlMultiLine::willBeDestroyed()
+void RenderTextControlMultiLine::willBeDestroyed(RenderTreeBuilder& builder)
 {
     if (textAreaElement().isConnected())
         textAreaElement().rendererWillBeDestroyed();
 
-    RenderTextControl::willBeDestroyed();
+    RenderTextControl::willBeDestroyed(builder);
 }
 
 HTMLTextAreaElement& RenderTextControlMultiLine::textAreaElement() const

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderTextControlMultiLine.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderTextControlMultiLine.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderTextControlMultiLine.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -35,7 +35,7 @@
     HTMLTextAreaElement& textAreaElement() const;
 
 private:
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
     void element() const = delete;
 
     bool isTextArea() const override { return true; }

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderTextFragment.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderTextFragment.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderTextFragment.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -26,6 +26,7 @@
 #include "RenderBlock.h"
 #include "RenderIterator.h"
 #include "RenderMultiColumnFlow.h"
+#include "RenderTreeBuilder.h"
 #include "Text.h"
 #include <wtf/IsoMallocInlines.h>
 
@@ -73,11 +74,11 @@
         block->mutableStyle().removeCachedPseudoStyle(FIRST_LETTER);
 }
 
-void RenderTextFragment::willBeDestroyed()
+void RenderTextFragment::willBeDestroyed(RenderTreeBuilder& builder)
 {
     if (m_firstLetter)
-        m_firstLetter->removeFromParentAndDestroy();
-    RenderText::willBeDestroyed();
+        m_firstLetter->removeFromParentAndDestroy(builder);
+    RenderText::willBeDestroyed(builder);
 }
 
 void RenderTextFragment::setText(const String& newText, bool force)
@@ -87,7 +88,12 @@
     m_end = text().length();
     if (!m_firstLetter)
         return;
-    m_firstLetter->removeFromParentAndDestroy();
+    if (RenderTreeBuilder::current())
+        m_firstLetter->removeFromParentAndDestroy(*RenderTreeBuilder::current());
+    else {
+        RenderTreeBuilder builder(*document().renderView());
+        m_firstLetter->removeFromParentAndDestroy(builder);
+    }
     ASSERT(!m_firstLetter);
     ASSERT(!textNode() || textNode()->renderer() == this);
 }

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderTextFragment.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderTextFragment.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderTextFragment.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -60,7 +60,7 @@
 private:
     bool isTextFragment() const override { return true; }
     void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override;
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
     UChar previousCharacter() const override;
 

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderVideo.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderVideo.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderVideo.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -62,12 +62,12 @@
     // Do not add any code here. Add it to willBeDestroyed() instead.
 }
 
-void RenderVideo::willBeDestroyed()
+void RenderVideo::willBeDestroyed(RenderTreeBuilder& builder)
 {
     if (auto player = videoElement().player())
         player->setVisible(false);
 
-    RenderMedia::willBeDestroyed();
+    RenderMedia::willBeDestroyed(builder);
 }
 
 void RenderVideo::visibleInViewportStateChanged()

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderVideo.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderVideo.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderVideo.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -54,7 +54,7 @@
     void updateFromElement() final;
 
 private:
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
     void mediaElement() const = delete;
 
     void intrinsicSizeChanged() final;

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderView.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderView.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderView.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -611,9 +611,9 @@
     return frameView().isScrollable(defineScrollable);
 }
 
-void RenderView::willBeDestroyed()
+void RenderView::willBeDestroyed(RenderTreeBuilder& builder)
 {
-    RenderBlockFlow::willBeDestroyed();
+    RenderBlockFlow::willBeDestroyed(builder);
     // FIXME: This is a workaround for leftover content (see webkit.org/b/182547).
     if (firstChild()) {
         RenderTreeBuilder builder(*this);

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderView.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderView.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderView.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -214,7 +214,7 @@
 
     bool isScrollableOrRubberbandableBox() const override;
 
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
 private:
     FrameView& m_frameView;

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderWidget.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderWidget.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderWidget.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -88,7 +88,7 @@
     setInline(false);
 }
 
-void RenderWidget::willBeDestroyed()
+void RenderWidget::willBeDestroyed(RenderTreeBuilder& builder)
 {
 #if PLATFORM(IOS)
     if (hasLayer())
@@ -102,7 +102,7 @@
 
     setWidget(nullptr);
 
-    RenderReplaced::willBeDestroyed();
+    RenderReplaced::willBeDestroyed(builder);
 }
 
 RenderWidget::~RenderWidget()

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderWidget.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderWidget.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderWidget.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -77,7 +77,7 @@
 protected:
     RenderWidget(HTMLFrameOwnerElement&, RenderStyle&&);
 
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
     void styleDidChange(StyleDifference, const RenderStyle* oldStyle) final;
     void layout() override;
     void paint(PaintInfo&, const LayoutPoint&) override;

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGBlock.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGBlock.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGBlock.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -71,10 +71,10 @@
     ASSERT_NOT_REACHED();
 }
 
-void RenderSVGBlock::willBeDestroyed()
+void RenderSVGBlock::willBeDestroyed(RenderTreeBuilder& builder)
 {
     SVGResourcesCache::clientDestroyed(*this);
-    RenderBlockFlow::willBeDestroyed();
+    RenderBlockFlow::willBeDestroyed(builder);
 }
 
 void RenderSVGBlock::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGBlock.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGBlock.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGBlock.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -35,7 +35,7 @@
 
 protected:
     RenderSVGBlock(SVGGraphicsElement&, RenderStyle&&);
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
 private:
     void element() const = delete;

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGImage.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGImage.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGImage.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -57,10 +57,10 @@
 
 RenderSVGImage::~RenderSVGImage() = default;
 
-void RenderSVGImage::willBeDestroyed()
+void RenderSVGImage::willBeDestroyed(RenderTreeBuilder& builder)
 {
     imageResource().shutdown();
-    RenderSVGModelObject::willBeDestroyed();
+    RenderSVGModelObject::willBeDestroyed(builder);
 }
 
 SVGImageElement& RenderSVGImage::imageElement() const

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGImage.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGImage.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGImage.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -52,7 +52,7 @@
     void paintForeground(PaintInfo&);
 
 private:
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
     void element() const = delete;
 

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGInline.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGInline.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGInline.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -101,10 +101,10 @@
         quads.append(localToAbsoluteQuad(FloatRect(textBoundingBox.x() + box->x(), textBoundingBox.y() + box->y(), box->logicalWidth(), box->logicalHeight()), UseTransforms, wasFixed));
 }
 
-void RenderSVGInline::willBeDestroyed()
+void RenderSVGInline::willBeDestroyed(RenderTreeBuilder& builder)
 {
     SVGResourcesCache::clientDestroyed(*this);
-    RenderInline::willBeDestroyed();
+    RenderInline::willBeDestroyed(builder);
 }
 
 void RenderSVGInline::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGInline.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGInline.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGInline.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -58,7 +58,7 @@
 
     std::unique_ptr<InlineFlowBox> createInlineFlowBox() final;
 
-    void willBeDestroyed() final;
+    void willBeDestroyed(RenderTreeBuilder&) final;
     void styleDidChange(StyleDifference, const RenderStyle* oldStyle) final;
 
     void addChild(RenderTreeBuilder&, RenderPtr<RenderObject> child, RenderObject* beforeChild = nullptr) final;

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -92,10 +92,10 @@
     quads.append(localToAbsoluteQuad(strokeBoundingBox(), UseTransforms, wasFixed));
 }
 
-void RenderSVGModelObject::willBeDestroyed()
+void RenderSVGModelObject::willBeDestroyed(RenderTreeBuilder& builder)
 {
     SVGResourcesCache::clientDestroyed(*this);
-    RenderElement::willBeDestroyed();
+    RenderElement::willBeDestroyed(builder);
 }
 
 void RenderSVGModelObject::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGModelObject.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGModelObject.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGModelObject.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -69,7 +69,7 @@
 protected:
     RenderSVGModelObject(SVGElement&, RenderStyle&&);
 
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
 private:
     bool isRenderSVGModelObject() const final { return true; }

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -55,7 +55,7 @@
     RenderSVGHiddenContainer::layout();
 }
 
-void RenderSVGResourceContainer::willBeDestroyed()
+void RenderSVGResourceContainer::willBeDestroyed(RenderTreeBuilder& builder)
 {
     SVGResourcesCache::resourceDestroyed(*this);
 
@@ -64,7 +64,7 @@
         m_registered = false;
     }
 
-    RenderSVGHiddenContainer::willBeDestroyed();
+    RenderSVGHiddenContainer::willBeDestroyed(builder);
 }
 
 void RenderSVGResourceContainer::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGResourceContainer.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGResourceContainer.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGResourceContainer.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -67,7 +67,7 @@
     void addClient(RenderElement&);
     void removeClient(RenderElement&);
 
-    void willBeDestroyed() final;
+    void willBeDestroyed(RenderTreeBuilder&) final;
     void registerResource();
 
     AtomicString m_id;

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGRoot.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGRoot.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGRoot.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -270,12 +270,12 @@
     childPaintInfo.context().restore();
 }
 
-void RenderSVGRoot::willBeDestroyed()
+void RenderSVGRoot::willBeDestroyed(RenderTreeBuilder& builder)
 {
     RenderBlock::removePercentHeightDescendant(const_cast<RenderSVGRoot&>(*this));
 
     SVGResourcesCache::clientDestroyed(*this);
-    RenderReplaced::willBeDestroyed();
+    RenderReplaced::willBeDestroyed(builder);
 }
 
 void RenderSVGRoot::insertedIntoTree()

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGRoot.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGRoot.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGRoot.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -76,7 +76,7 @@
     void layout() override;
     void paintReplaced(PaintInfo&, const LayoutPoint&) override;
 
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
     void insertedIntoTree() override;
     void willBeRemovedFromTree() override;

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGText.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGText.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGText.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -225,12 +225,12 @@
 #endif
 }
 
-void RenderSVGText::willBeDestroyed()
+void RenderSVGText::willBeDestroyed(RenderTreeBuilder& builder)
 {
     m_layoutAttributes.clear();
     m_layoutAttributesBuilder.clearTextPositioningElements();
 
-    RenderSVGBlock::willBeDestroyed();
+    RenderSVGBlock::willBeDestroyed(builder);
 }
 
 void RenderSVGText::subtreeChildWillBeRemoved(RenderObject* child, Vector<SVGTextLayoutAttributes*, 2>& affectedAttributes)

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGText.h (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGText.h	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/svg/RenderSVGText.h	2018-02-19 16:06:10 UTC (rev 228686)
@@ -85,7 +85,7 @@
     const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const override;
     void addChild(RenderTreeBuilder&, RenderPtr<RenderObject> child, RenderObject* beforeChild = nullptr) override;
     RenderPtr<RenderObject> takeChild(RenderTreeBuilder&, RenderObject&) override;
-    void willBeDestroyed() override;
+    void willBeDestroyed(RenderTreeBuilder&) override;
 
     const AffineTransform& localToParentTransform() const override { return m_localTransform; }
     AffineTransform localTransform() const override { return m_localTransform; }

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -385,7 +385,7 @@
 {
     // If the tree is destroyed, there is no need for a clean-up phase.
     if (child.renderTreeBeingDestroyed()) {
-        child.removeFromParentAndDestroy();
+        child.removeFromParentAndDestroy(*this);
         return;
     }
 

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderList.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderList.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderList.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -80,7 +80,7 @@
 
     if (style.listStyleType() == NoneListStyle && (!style.listStyleImage() || style.listStyleImage()->errorOccurred())) {
         if (auto* marker = listItemRenderer.markerRenderer())
-            marker->removeFromParentAndDestroy();
+            marker->removeFromParentAndDestroy(m_builder);
         return;
     }
 
@@ -121,7 +121,7 @@
 
     // If current parent is an anonymous block that has lost all its children, destroy it.
     if (currentParent && currentParent->isAnonymousBlock() && !currentParent->firstChild() && !downcast<RenderBlock>(*currentParent).continuation())
-        currentParent->removeFromParentAndDestroy();
+        currentParent->removeFromParentAndDestroy(m_builder);
 }
 
 }

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderMultiColumn.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderMultiColumn.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderMultiColumn.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -211,11 +211,11 @@
         parentAndSpannerList.append(std::make_pair(spannerOriginalParent, spanner->parent()->takeChild(m_builder, *spanner)));
     }
     while (auto* columnSet = multiColumnFlow.firstMultiColumnSet())
-        columnSet->removeFromParentAndDestroy();
+        columnSet->removeFromParentAndDestroy(m_builder);
 
     flow.clearMultiColumnFlow();
     multiColumnFlow.moveAllChildrenTo(m_builder, &flow, RenderBoxModelObject::NormalizeAfterInsertion::Yes);
-    multiColumnFlow.removeFromParentAndDestroy();
+    multiColumnFlow.removeFromParentAndDestroy(m_builder);
     for (auto& parentAndSpanner : parentAndSpannerList)
         m_builder.insertChild(*parentAndSpanner.first, WTFMove(parentAndSpanner.second));
 }
@@ -371,13 +371,13 @@
 {
     // The placeholder may already have been removed, but if it hasn't, do so now.
     if (auto placeholder = flow.spannerMap().take(&downcast<RenderBox>(spanner)))
-        placeholder->removeFromParentAndDestroy();
+        placeholder->removeFromParentAndDestroy(m_builder);
 
     if (auto* next = spanner.nextSibling()) {
         if (auto* previous = spanner.previousSibling()) {
             if (previous->isRenderMultiColumnSet() && next->isRenderMultiColumnSet()) {
                 // Merge two sets that no longer will be separated by a spanner.
-                next->removeFromParentAndDestroy();
+                next->removeFromParentAndDestroy(m_builder);
                 previous->setNeedsLayout();
             }
         }

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderRuby.cpp (228685 => 228686)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderRuby.cpp	2018-02-19 15:51:54 UTC (rev 228685)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderRuby.cpp	2018-02-19 16:06:10 UTC (rev 228686)
@@ -157,7 +157,7 @@
         auto* anonBlockThere = downcast<RenderBlock>(lastChildThere);
         anonBlockHere->moveAllChildrenTo(m_builder, anonBlockThere, RenderBoxModelObject::NormalizeAfterInsertion::Yes);
         anonBlockHere->deleteLines();
-        anonBlockHere->removeFromParentAndDestroy();
+        anonBlockHere->removeFromParentAndDestroy(m_builder);
     }
     // Move all remaining children normally.
     from.moveChildrenTo(m_builder, &to, from.firstChild(), beforeChild, RenderBoxModelObject::NormalizeAfterInsertion::No);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to