Title: [226845] branches/safari-605-branch/Source/WebCore

Diff

Modified: branches/safari-605-branch/Source/WebCore/ChangeLog (226844 => 226845)


--- branches/safari-605-branch/Source/WebCore/ChangeLog	2018-01-12 04:51:54 UTC (rev 226844)
+++ branches/safari-605-branch/Source/WebCore/ChangeLog	2018-01-12 04:51:58 UTC (rev 226845)
@@ -1,5 +1,9 @@
 2018-01-11  Jason Marcell  <[email protected]>
 
+        Revert r226140. rdar://problem/36139222
+
+2018-01-11  Jason Marcell  <[email protected]>
+
         Revert r226168. rdar://problem/36145846
 
 2018-01-11  Jason Marcell  <[email protected]>

Modified: branches/safari-605-branch/Source/WebCore/rendering/RenderTableSection.cpp (226844 => 226845)


--- branches/safari-605-branch/Source/WebCore/rendering/RenderTableSection.cpp	2018-01-12 04:51:54 UTC (rev 226844)
+++ branches/safari-605-branch/Source/WebCore/rendering/RenderTableSection.cpp	2018-01-12 04:51:58 UTC (rev 226845)
@@ -123,6 +123,43 @@
 
 void RenderTableSection::addChild(RenderTreeBuilder& builder, RenderPtr<RenderObject> child, RenderObject* beforeChild)
 {
+    if (!is<RenderTableRow>(*child)) {
+        RenderObject* last = beforeChild;
+        if (!last)
+            last = lastRow();
+        if (is<RenderTableRow>(last) && last->isAnonymous() && !last->isBeforeOrAfterContent()) {
+            RenderTableRow& row = downcast<RenderTableRow>(*last);
+            if (beforeChild == &row)
+                beforeChild = row.firstCell();
+            builder.insertChild(row, WTFMove(child), beforeChild);
+            return;
+        }
+
+        if (beforeChild && !beforeChild->isAnonymous() && beforeChild->parent() == this) {
+            RenderObject* row = beforeChild->previousSibling();
+            if (is<RenderTableRow>(row) && row->isAnonymous()) {
+                builder.insertChild(downcast<RenderTableRow>(*row), WTFMove(child));
+                return;
+            }
+        }
+
+        // If beforeChild is inside an anonymous cell/row, insert into the cell or into
+        // the anonymous row containing it, if there is one.
+        RenderObject* lastBox = last;
+        while (lastBox && lastBox->parent()->isAnonymous() && !is<RenderTableRow>(*lastBox))
+            lastBox = lastBox->parent();
+        if (is<RenderTableRow>(lastBox) && lastBox->isAnonymous() && !lastBox->isBeforeOrAfterContent()) {
+            builder.insertChild(downcast<RenderTableRow>(*lastBox), WTFMove(child), beforeChild);
+            return;
+        }
+
+        auto newRow = RenderTableRow::createAnonymousWithParentRenderer(*this);
+        auto& row = *newRow;
+        builder.insertChild(*this, WTFMove(newRow), beforeChild);
+        builder.insertChild(row, WTFMove(child));
+        return;
+    }
+
     if (beforeChild)
         setNeedsCellRecalc();
 

Modified: branches/safari-605-branch/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp (226844 => 226845)


--- branches/safari-605-branch/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2018-01-12 04:51:54 UTC (rev 226844)
+++ branches/safari-605-branch/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2018-01-12 04:51:58 UTC (rev 226845)
@@ -67,16 +67,6 @@
         return;
     }
 
-    if (is<RenderTableSection>(parent)) {
-        auto& parentCandidate = m_tableBuilder->findOrCreateParentForChild(downcast<RenderTableSection>(parent), *child, beforeChild);
-        if (&parent != &parentCandidate) {
-            insertChild(parentCandidate, WTFMove(child), beforeChild);
-            return;
-        }
-        parent.addChild(*this, WTFMove(child), beforeChild);
-        return;
-    }
-
     if (is<RenderRubyRun>(parent)) {
         rubyRunInsertChild(downcast<RenderRubyRun>(parent), WTFMove(child), beforeChild);
         return;

Modified: branches/safari-605-branch/Source/WebCore/rendering/updating/RenderTreeBuilderTable.cpp (226844 => 226845)


--- branches/safari-605-branch/Source/WebCore/rendering/updating/RenderTreeBuilderTable.cpp	2018-01-12 04:51:54 UTC (rev 226844)
+++ branches/safari-605-branch/Source/WebCore/rendering/updating/RenderTreeBuilderTable.cpp	2018-01-12 04:51:58 UTC (rev 226845)
@@ -82,39 +82,4 @@
     return cell;
 }
 
-RenderElement& RenderTreeBuilder::Table::findOrCreateParentForChild(RenderTableSection& parent, const RenderObject& child, RenderObject*& beforeChild)
-{
-    if (is<RenderTableRow>(child))
-        return parent;
-
-    auto* lastChild = beforeChild ? beforeChild : parent.lastRow();
-    if (is<RenderTableRow>(lastChild) && lastChild->isAnonymous() && !lastChild->isBeforeOrAfterContent()) {
-        if (beforeChild == lastChild)
-            beforeChild = downcast<RenderTableRow>(*lastChild).firstCell();
-        return downcast<RenderElement>(*lastChild);
-    }
-
-    if (beforeChild && !beforeChild->isAnonymous() && beforeChild->parent() == &parent) {
-        auto* row = beforeChild->previousSibling();
-        if (is<RenderTableRow>(row) && row->isAnonymous()) {
-            beforeChild = nullptr;
-            return downcast<RenderElement>(*row);
-        }
-    }
-
-    // If beforeChild is inside an anonymous cell/row, insert into the cell or into
-    // the anonymous row containing it, if there is one.
-    auto* parentCandidate = lastChild;
-    while (parentCandidate && parentCandidate->parent()->isAnonymous() && !is<RenderTableRow>(*parentCandidate))
-        parentCandidate = parentCandidate->parent();
-    if (is<RenderTableRow>(parentCandidate) && parentCandidate->isAnonymous() && !parentCandidate->isBeforeOrAfterContent())
-        return downcast<RenderElement>(*parentCandidate);
-
-    auto newRow = RenderTableRow::createAnonymousWithParentRenderer(parent);
-    auto& row = *newRow;
-    m_builder.insertChild(parent, WTFMove(newRow), beforeChild);
-    beforeChild = nullptr;
-    return row;
 }
-
-}

Modified: branches/safari-605-branch/Source/WebCore/rendering/updating/RenderTreeBuilderTable.h (226844 => 226845)


--- branches/safari-605-branch/Source/WebCore/rendering/updating/RenderTreeBuilderTable.h	2018-01-12 04:51:54 UTC (rev 226844)
+++ branches/safari-605-branch/Source/WebCore/rendering/updating/RenderTreeBuilderTable.h	2018-01-12 04:51:58 UTC (rev 226845)
@@ -39,7 +39,6 @@
     Table(RenderTreeBuilder&);
 
     RenderElement& findOrCreateParentForChild(RenderTableRow& parent, const RenderObject& child, RenderObject*& beforeChild);
-    RenderElement& findOrCreateParentForChild(RenderTableSection& parent, const 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