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);
}