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

Diff

Modified: branches/safari-605-branch/Source/WebCore/ChangeLog (226827 => 226828)


--- branches/safari-605-branch/Source/WebCore/ChangeLog	2018-01-12 01:50:29 UTC (rev 226827)
+++ branches/safari-605-branch/Source/WebCore/ChangeLog	2018-01-12 01:50:33 UTC (rev 226828)
@@ -1,5 +1,9 @@
 2018-01-11  Jason Marcell  <[email protected]>
 
+        Revert r226265. rdar://problem/36188262
+
+2018-01-11  Jason Marcell  <[email protected]>
+
         Revert r226273. rdar://problem/36196266
 
 2018-01-09  Jason Marcell  <[email protected]>

Modified: branches/safari-605-branch/Source/WebCore/rendering/RenderButton.cpp (226827 => 226828)


--- branches/safari-605-branch/Source/WebCore/rendering/RenderButton.cpp	2018-01-12 01:50:29 UTC (rev 226827)
+++ branches/safari-605-branch/Source/WebCore/rendering/RenderButton.cpp	2018-01-12 01:50:33 UTC (rev 226828)
@@ -63,10 +63,17 @@
     return is<HTMLInputElement>(formControlElement());
 }
 
-void RenderButton::setInnerRenderer(RenderBlock& innerRenderer)
+void RenderButton::addChild(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild)
 {
-    ASSERT(!m_inner.get());
-    m_inner = makeWeakPtr(innerRenderer);
+    if (!m_inner) {
+        // Create an anonymous block.
+        ASSERT(!firstChild());
+        auto newInner = createAnonymousBlock(style().display());
+        updateAnonymousChildStyle(*newInner, newInner->mutableStyle());
+        m_inner = makeWeakPtr(*newInner);
+        RenderFlexibleBox::addChild(builder, WTFMove(newInner));
+    }    
+    builder.insertChild(*m_inner, WTFMove(newChild), beforeChild);
 }
 
 RenderPtr<RenderObject> RenderButton::takeChild(RenderObject& oldChild)
@@ -81,8 +88,9 @@
     return m_inner->takeChild(oldChild);
 }
     
-void RenderButton::updateAnonymousChildStyle(RenderStyle& childStyle) const
+void RenderButton::updateAnonymousChildStyle(const RenderObject& child, RenderStyle& childStyle) const
 {
+    ASSERT_UNUSED(child, !m_inner || &child == m_inner);
     childStyle.setFlexGrow(1.0f);
     // min-width: 0; is needed for correct shrinking.
     childStyle.setMinWidth(Length(0, Fixed));

Modified: branches/safari-605-branch/Source/WebCore/rendering/RenderButton.h (226827 => 226828)


--- branches/safari-605-branch/Source/WebCore/rendering/RenderButton.h	2018-01-12 01:50:29 UTC (rev 226827)
+++ branches/safari-605-branch/Source/WebCore/rendering/RenderButton.h	2018-01-12 01:50:33 UTC (rev 226828)
@@ -41,6 +41,7 @@
 
     bool canBeSelectionLeaf() const override;
 
+    void addChild(RenderTreeBuilder&, RenderPtr<RenderObject> newChild, RenderObject *beforeChild = 0) override;
     RenderPtr<RenderObject> takeChild(RenderObject&) override;
     void removeLeftoverAnonymousBlock(RenderBlock*) override { }
     bool createsAnonymousWrapper() const override { return true; }
@@ -51,7 +52,7 @@
     bool hasControlClip() const override { return true; }
     LayoutRect controlClipRect(const LayoutPoint&) const override;
 
-    void updateAnonymousChildStyle(RenderStyle&) const override;
+    void updateAnonymousChildStyle(const RenderObject& anonymousChild, RenderStyle&) const override;
 
     void setText(const String&);
     String text() const;
@@ -60,9 +61,6 @@
     void layout() override;
 #endif
 
-    RenderBlock* innerRenderer() const { return m_inner.get(); }
-    void setInnerRenderer(RenderBlock&);
-
 private:
     void element() const = delete;
 

Modified: branches/safari-605-branch/Source/WebCore/rendering/RenderElement.cpp (226827 => 226828)


--- branches/safari-605-branch/Source/WebCore/rendering/RenderElement.cpp	2018-01-12 01:50:29 UTC (rev 226827)
+++ branches/safari-605-branch/Source/WebCore/rendering/RenderElement.cpp	2018-01-12 01:50:33 UTC (rev 226828)
@@ -828,7 +828,7 @@
         if (elementChild.isInFlowPositioned() && elementChild.isContinuation())
             newStyle.setPosition(elementChild.style().position());
 
-        updateAnonymousChildStyle(newStyle);
+        updateAnonymousChildStyle(elementChild, newStyle);
         
         elementChild.setStyle(WTFMove(newStyle));
     }

Modified: branches/safari-605-branch/Source/WebCore/rendering/RenderElement.h (226827 => 226828)


--- branches/safari-605-branch/Source/WebCore/rendering/RenderElement.h	2018-01-12 01:50:29 UTC (rev 226827)
+++ branches/safari-605-branch/Source/WebCore/rendering/RenderElement.h	2018-01-12 01:50:33 UTC (rev 226828)
@@ -220,7 +220,7 @@
 
     // Called before anonymousChild.setStyle(). Override to set custom styles for
     // the child.
-    virtual void updateAnonymousChildStyle(RenderStyle&) const { };
+    virtual void updateAnonymousChildStyle(const RenderObject&, RenderStyle&) const { };
 
     void removeAnonymousWrappersForInlinesIfNecessary();
 

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


--- branches/safari-605-branch/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2018-01-12 01:50:29 UTC (rev 226827)
+++ branches/safari-605-branch/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2018-01-12 01:50:33 UTC (rev 226828)
@@ -26,7 +26,6 @@
 #include "config.h"
 #include "RenderTreeBuilder.h"
 
-#include "RenderButton.h"
 #include "RenderElement.h"
 #include "RenderRuby.h"
 #include "RenderRubyBase.h"
@@ -61,19 +60,6 @@
     s_current = m_previous;
 }
 
-static RenderBlock& createInnerRendererForButtonIfNeeded(RenderButton& button, RenderTreeBuilder& builder)
-{
-    auto* innerRenderer = button.innerRenderer();
-    if (innerRenderer)
-        return *innerRenderer;
-    auto wrapper = button.createAnonymousBlock(button.style().display());
-    innerRenderer = wrapper.get();
-    button.updateAnonymousChildStyle(wrapper->mutableStyle());
-    button.RenderFlexibleBox::addChild(builder, WTFMove(wrapper));
-    button.setInnerRenderer(*innerRenderer);
-    return *innerRenderer;
-}
-
 void RenderTreeBuilder::insertChild(RenderElement& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)
 {
     auto insertRecursiveIfNeeded = [&](RenderElement& parentCandidate) {
@@ -121,10 +107,6 @@
         return;
     }
 
-    if (is<RenderButton>(parent)) {
-        insertRecursiveIfNeeded(createInnerRendererForButtonIfNeeded(downcast<RenderButton>(parent), *this));
-        return;
-    }
     parent.addChild(*this, WTFMove(child), beforeChild);
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to