Title: [226568] trunk/Source/WebCore
Revision
226568
Author
[email protected]
Date
2018-01-08 15:14:11 -0800 (Mon, 08 Jan 2018)

Log Message

[RenderTreeBuilder] Move SVG addChild logic to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181405
<rdar://problem/36360476>

Reviewed by Antti Koivisto.

This is about moving the code, no cleanup and/or normalization (unfortunately it also means
some temporary changes).

No change in functionality.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::addChild):
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::addChild):
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::addChild):
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::addChild):
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::RenderTreeBuilder):
(WebCore::RenderTreeBuilder::insertChildToSVGContainer):
(WebCore::RenderTreeBuilder::insertChildToSVGInline):
(WebCore::RenderTreeBuilder::insertChildToSVGRoot):
(WebCore::RenderTreeBuilder::insertChildToSVGText):
* rendering/updating/RenderTreeBuilder.h:
(WebCore::RenderTreeBuilder::SVGBuilder):
* rendering/updating/RenderTreeBuilderSVG.cpp: Added.
(WebCore::RenderTreeBuilder::SVG::SVG):
(WebCore::RenderTreeBuilder::SVG::insertChild):
* rendering/updating/RenderTreeBuilderSVG.h: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (226567 => 226568)


--- trunk/Source/WebCore/ChangeLog	2018-01-08 23:11:11 UTC (rev 226567)
+++ trunk/Source/WebCore/ChangeLog	2018-01-08 23:14:11 UTC (rev 226568)
@@ -1,3 +1,39 @@
+2018-01-08  Zalan Bujtas  <[email protected]>
+
+        [RenderTreeBuilder] Move SVG addChild logic to RenderTreeBuilder
+        https://bugs.webkit.org/show_bug.cgi?id=181405
+        <rdar://problem/36360476>
+
+        Reviewed by Antti Koivisto.
+
+        This is about moving the code, no cleanup and/or normalization (unfortunately it also means
+        some temporary changes).  
+
+        No change in functionality.
+
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * rendering/svg/RenderSVGContainer.cpp:
+        (WebCore::RenderSVGContainer::addChild):
+        * rendering/svg/RenderSVGInline.cpp:
+        (WebCore::RenderSVGInline::addChild):
+        * rendering/svg/RenderSVGRoot.cpp:
+        (WebCore::RenderSVGRoot::addChild):
+        * rendering/svg/RenderSVGText.cpp:
+        (WebCore::RenderSVGText::addChild):
+        * rendering/updating/RenderTreeBuilder.cpp:
+        (WebCore::RenderTreeBuilder::RenderTreeBuilder):
+        (WebCore::RenderTreeBuilder::insertChildToSVGContainer):
+        (WebCore::RenderTreeBuilder::insertChildToSVGInline):
+        (WebCore::RenderTreeBuilder::insertChildToSVGRoot):
+        (WebCore::RenderTreeBuilder::insertChildToSVGText):
+        * rendering/updating/RenderTreeBuilder.h:
+        (WebCore::RenderTreeBuilder::SVGBuilder):
+        * rendering/updating/RenderTreeBuilderSVG.cpp: Added.
+        (WebCore::RenderTreeBuilder::SVG::SVG):
+        (WebCore::RenderTreeBuilder::SVG::insertChild):
+        * rendering/updating/RenderTreeBuilderSVG.h: Added.
+
 2018-01-08  John Wilander  <[email protected]>
 
         Storage Access API: Remove access for all frames under a page when the page is closed

Modified: trunk/Source/WebCore/Sources.txt (226567 => 226568)


--- trunk/Source/WebCore/Sources.txt	2018-01-08 23:11:11 UTC (rev 226567)
+++ trunk/Source/WebCore/Sources.txt	2018-01-08 23:14:11 UTC (rev 226568)
@@ -1992,6 +1992,7 @@
 rendering/updating/RenderTreeBuilderList.cpp
 rendering/updating/RenderTreeBuilderMultiColumn.cpp
 rendering/updating/RenderTreeBuilderRuby.cpp
+rendering/updating/RenderTreeBuilderSVG.cpp
 rendering/updating/RenderTreeBuilderTable.cpp
 rendering/updating/RenderTreePosition.cpp
 rendering/updating/RenderTreeUpdater.cpp

Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (226567 => 226568)


--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2018-01-08 23:11:11 UTC (rev 226567)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2018-01-08 23:14:11 UTC (rev 226568)
@@ -5595,6 +5595,8 @@
 		11C5F1182003E7760001AE60 /* RenderTreeBuilderInline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderTreeBuilderInline.h; sourceTree = "<group>"; };
 		11C5F11D2003F69E0001AE60 /* RenderTreeBuilderBlockFlow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderTreeBuilderBlockFlow.h; sourceTree = "<group>"; };
 		11C5F11F2003F69F0001AE60 /* RenderTreeBuilderBlockFlow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderTreeBuilderBlockFlow.cpp; sourceTree = "<group>"; };
+		11C5F12A2004231D0001AE60 /* RenderTreeBuilderSVG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderTreeBuilderSVG.h; sourceTree = "<group>"; };
+		11C5F12C2004231E0001AE60 /* RenderTreeBuilderSVG.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderTreeBuilderSVG.cpp; sourceTree = "<group>"; };
 		11E067EB1E62461300162D16 /* SimpleLineLayoutCoverage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SimpleLineLayoutCoverage.cpp; sourceTree = "<group>"; };
 		11E067ED1E6246E500162D16 /* SimpleLineLayoutCoverage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SimpleLineLayoutCoverage.h; sourceTree = "<group>"; };
 		1400D7A717136EA70077CE05 /* ScriptWrappableInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptWrappableInlines.h; sourceTree = "<group>"; };
@@ -24649,6 +24651,8 @@
 				E47C39271FE6E0DC00BBBC6B /* RenderTreeBuilderMultiColumn.h */,
 				119340871FEB355D00935F1E /* RenderTreeBuilderRuby.cpp */,
 				119340881FEB355D00935F1E /* RenderTreeBuilderRuby.h */,
+				11C5F12C2004231E0001AE60 /* RenderTreeBuilderSVG.cpp */,
+				11C5F12A2004231D0001AE60 /* RenderTreeBuilderSVG.h */,
 				119340761FE8B92300935F1E /* RenderTreeBuilderTable.cpp */,
 				119340771FE8B92300935F1E /* RenderTreeBuilderTable.h */,
 				E47C39291FE6E0DE00BBBC6B /* RenderTreePosition.cpp */,

Modified: trunk/Source/WebCore/rendering/svg/RenderSVGContainer.cpp (226567 => 226568)


--- trunk/Source/WebCore/rendering/svg/RenderSVGContainer.cpp	2018-01-08 23:11:11 UTC (rev 226567)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGContainer.cpp	2018-01-08 23:14:11 UTC (rev 226568)
@@ -30,6 +30,7 @@
 #include "LayoutRepainter.h"
 #include "RenderIterator.h"
 #include "RenderSVGResourceFilter.h"
+#include "RenderTreeBuilder.h"
 #include "RenderView.h"
 #include "SVGRenderingContext.h"
 #include "SVGResources.h"
@@ -91,9 +92,7 @@
 
 void RenderSVGContainer::addChild(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild)
 {
-    auto& child = *newChild;
-    RenderSVGModelObject::addChild(builder, WTFMove(newChild), beforeChild);
-    SVGResourcesCache::clientWasAddedToTree(child);
+    builder.insertChildToSVGContainer(*this, WTFMove(newChild), beforeChild);
 }
 
 RenderPtr<RenderObject> RenderSVGContainer::takeChild(RenderObject& child)

Modified: trunk/Source/WebCore/rendering/svg/RenderSVGInline.cpp (226567 => 226568)


--- trunk/Source/WebCore/rendering/svg/RenderSVGInline.cpp	2018-01-08 23:11:11 UTC (rev 226567)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGInline.cpp	2018-01-08 23:14:11 UTC (rev 226568)
@@ -125,12 +125,7 @@
 
 void RenderSVGInline::addChild(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild)
 {
-    auto& child = *newChild;
-    RenderInline::addChild(builder, WTFMove(newChild), beforeChild);
-    SVGResourcesCache::clientWasAddedToTree(child);
-
-    if (auto* textAncestor = RenderSVGText::locateRenderSVGTextAncestor(*this))
-        textAncestor->subtreeChildWasAdded(&child);
+    builder.insertChildToSVGInline(*this, WTFMove(newChild), beforeChild);
 }
 
 RenderPtr<RenderObject> RenderSVGInline::takeChild(RenderObject& child)

Modified: trunk/Source/WebCore/rendering/svg/RenderSVGRoot.cpp (226567 => 226568)


--- trunk/Source/WebCore/rendering/svg/RenderSVGRoot.cpp	2018-01-08 23:11:11 UTC (rev 226567)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGRoot.cpp	2018-01-08 23:14:11 UTC (rev 226568)
@@ -35,6 +35,7 @@
 #include "RenderSVGResource.h"
 #include "RenderSVGResourceContainer.h"
 #include "RenderSVGResourceFilter.h"
+#include "RenderTreeBuilder.h"
 #include "RenderView.h"
 #include "SVGImage.h"
 #include "SVGRenderingContext.h"
@@ -304,9 +305,7 @@
 
 void RenderSVGRoot::addChild(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild)
 {
-    auto& child = *newChild;
-    RenderReplaced::addChild(builder, WTFMove(newChild), beforeChild);
-    SVGResourcesCache::clientWasAddedToTree(child);
+    builder.insertChildToSVGRoot(*this, WTFMove(newChild), beforeChild);
 }
 
 RenderPtr<RenderObject> RenderSVGRoot::takeChild(RenderObject& child)

Modified: trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp (226567 => 226568)


--- trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp	2018-01-08 23:11:11 UTC (rev 226567)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp	2018-01-08 23:14:11 UTC (rev 226568)
@@ -522,11 +522,7 @@
 
 void RenderSVGText::addChild(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild)
 {
-    auto& child = *newChild;
-    RenderSVGBlock::addChild(builder, WTFMove(newChild), beforeChild);
-
-    SVGResourcesCache::clientWasAddedToTree(child);
-    subtreeChildWasAdded(&child);
+    builder.insertChildToSVGText(*this, WTFMove(newChild), beforeChild);
 }
 
 RenderPtr<RenderObject> RenderSVGText::takeChild(RenderObject& child)

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp (226567 => 226568)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2018-01-08 23:11:11 UTC (rev 226567)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2018-01-08 23:14:11 UTC (rev 226568)
@@ -41,6 +41,7 @@
 #include "RenderTreeBuilderList.h"
 #include "RenderTreeBuilderMultiColumn.h"
 #include "RenderTreeBuilderRuby.h"
+#include "RenderTreeBuilderSVG.h"
 #include "RenderTreeBuilderTable.h"
 
 namespace WebCore {
@@ -110,6 +111,7 @@
     , m_blockBuilder(std::make_unique<Block>(*this))
     , m_blockFlowBuilder(std::make_unique<BlockFlow>(*this))
     , m_inlineBuilder(std::make_unique<Inline>(*this))
+    , m_svgBuilder(std::make_unique<SVG>(*this))
 {
     RELEASE_ASSERT(!s_current || &m_view != &s_current->m_view);
     m_previous = s_current;
@@ -285,6 +287,26 @@
     inlineBuilder().insertChildIgnoringContinuation(parent, WTFMove(child), beforeChild);
 }
 
+void RenderTreeBuilder::insertChildToSVGContainer(RenderSVGContainer& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
+{
+    svgBuilder().insertChild(parent, WTFMove(child), beforeChild);
+}
+
+void RenderTreeBuilder::insertChildToSVGInline(RenderSVGInline& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
+{
+    svgBuilder().insertChild(parent, WTFMove(child), beforeChild);
+}
+
+void RenderTreeBuilder::insertChildToSVGRoot(RenderSVGRoot& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
+{
+    svgBuilder().insertChild(parent, WTFMove(child), beforeChild);
+}
+
+void RenderTreeBuilder::insertChildToSVGText(RenderSVGText& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
+{
+    svgBuilder().insertChild(parent, WTFMove(child), beforeChild);
+}
+
 void RenderTreeBuilder::splitFlow(RenderInline& parent, RenderObject* beforeChild, RenderPtr<RenderBlock> newBlockBox, RenderPtr<RenderObject> child, RenderBoxModelObject* oldCont)
 {
     inlineBuilder().splitFlow(parent, beforeChild, WTFMove(newBlockBox), WTFMove(child), oldCont);

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h (226567 => 226568)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h	2018-01-08 23:11:11 UTC (rev 226567)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h	2018-01-08 23:14:11 UTC (rev 226568)
@@ -30,6 +30,10 @@
 namespace WebCore {
 
 class RenderRubyRun;
+class RenderSVGContainer;
+class RenderSVGInline;
+class RenderSVGRoot;
+class RenderSVGText;
 class RenderTreeUpdater;
 
 class RenderTreeBuilder {
@@ -52,6 +56,10 @@
     void insertChildToRenderBlockFlow(RenderBlockFlow& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
     void insertChildToRenderInline(RenderInline& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
     void insertChildToRenderInlineIgnoringContinuation(RenderInline& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
+    void insertChildToSVGContainer(RenderSVGContainer& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
+    void insertChildToSVGInline(RenderSVGInline& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
+    void insertChildToSVGRoot(RenderSVGRoot& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
+    void insertChildToSVGText(RenderSVGText& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);
 
     void makeChildrenNonInline(RenderBlock& parent, RenderObject* insertionPoint = nullptr);
     RenderObject* splitAnonymousBoxesAroundChild(RenderBox& parent, RenderObject* beforeChild);
@@ -67,6 +75,7 @@
     class Block;
     class BlockFlow;
     class Inline;
+    class SVG;
 
     FirstLetter& firstLetterBuilder() { return *m_firstLetterBuilder; }
     List& listBuilder() { return *m_listBuilder; }
@@ -77,6 +86,7 @@
     Block& blockBuilder() { return *m_blockBuilder; }
     BlockFlow& blockFlowBuilder() { return *m_blockFlowBuilder; }
     Inline& inlineBuilder() { return *m_inlineBuilder; }
+    SVG& svgBuilder() { return *m_svgBuilder; }
 
     RenderView& m_view;
 
@@ -92,6 +102,7 @@
     std::unique_ptr<Block> m_blockBuilder;
     std::unique_ptr<BlockFlow> m_blockFlowBuilder;
     std::unique_ptr<Inline> m_inlineBuilder;
+    std::unique_ptr<SVG> m_svgBuilder;
 };
 
 }

Added: trunk/Source/WebCore/rendering/updating/RenderTreeBuilderSVG.cpp (0 => 226568)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilderSVG.cpp	                        (rev 0)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilderSVG.cpp	2018-01-08 23:14:11 UTC (rev 226568)
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2018 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "RenderTreeBuilderSVG.h"
+
+#include "RenderSVGContainer.h"
+#include "RenderSVGInline.h"
+#include "RenderSVGRoot.h"
+#include "RenderSVGText.h"
+#include "SVGResourcesCache.h"
+
+namespace WebCore {
+
+RenderTreeBuilder::SVG::SVG(RenderTreeBuilder& builder)
+    : m_builder(builder)
+{
+}
+
+void RenderTreeBuilder::SVG::insertChild(RenderSVGContainer& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
+{
+    auto& childToAdd = *child;
+    parent.RenderElement::addChild(m_builder, WTFMove(child), beforeChild);
+    SVGResourcesCache::clientWasAddedToTree(childToAdd);
+}
+
+void RenderTreeBuilder::SVG::insertChild(RenderSVGInline& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
+{
+    auto& childToAdd = *child;
+    m_builder.insertChildToRenderInline(parent, WTFMove(child), beforeChild);
+    SVGResourcesCache::clientWasAddedToTree(childToAdd);
+
+    if (auto* textAncestor = RenderSVGText::locateRenderSVGTextAncestor(parent))
+        textAncestor->subtreeChildWasAdded(&childToAdd);
+}
+
+void RenderTreeBuilder::SVG::insertChild(RenderSVGRoot& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
+{
+    auto& childToAdd = *child;
+    parent.RenderReplaced::addChild(m_builder, WTFMove(child), beforeChild);
+    SVGResourcesCache::clientWasAddedToTree(childToAdd);
+}
+
+void RenderTreeBuilder::SVG::insertChild(RenderSVGText& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
+{
+    auto& childToAdd = *child;
+    m_builder.insertChildToRenderBlockFlow(parent, WTFMove(child), beforeChild);
+
+    SVGResourcesCache::clientWasAddedToTree(childToAdd);
+    parent.subtreeChildWasAdded(&childToAdd);
+}
+
+}

Added: trunk/Source/WebCore/rendering/updating/RenderTreeBuilderSVG.h (0 => 226568)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilderSVG.h	                        (rev 0)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilderSVG.h	2018-01-08 23:14:11 UTC (rev 226568)
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2018 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include "RenderTreeBuilder.h"
+
+namespace WebCore {
+
+class RenderSVGContainer;
+class RenderSVGInline;
+class RenderSVGRoot;
+class RenderSVGText;
+
+class RenderTreeBuilder::SVG {
+public:
+    SVG(RenderTreeBuilder&);
+
+    void insertChild(RenderSVGContainer& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild);
+    void insertChild(RenderSVGInline& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild);
+    void insertChild(RenderSVGRoot& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild);
+    void insertChild(RenderSVGText& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild);
+
+private:
+    RenderTreeBuilder& m_builder;
+};
+
+}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to