Diff
Modified: releases/WebKitGTK/webkit-2.12/LayoutTests/ChangeLog (205438 => 205439)
--- releases/WebKitGTK/webkit-2.12/LayoutTests/ChangeLog 2016-09-05 09:09:52 UTC (rev 205438)
+++ releases/WebKitGTK/webkit-2.12/LayoutTests/ChangeLog 2016-09-05 09:17:09 UTC (rev 205439)
@@ -1,5 +1,16 @@
2016-08-24 Zalan Bujtas <za...@apple.com>
+ ASSERTION FAILED: contentSize >= 0 in WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax
+ https://bugs.webkit.org/show_bug.cgi?id=155700
+ <rdar://problem/27720727>
+
+ Reviewed by David Hyatt.
+
+ * fast/ruby/assert-when-content-size-is-negative-expected.txt: Added.
+ * fast/ruby/assert-when-content-size-is-negative.html: Added.
+
+2016-08-24 Zalan Bujtas <za...@apple.com>
+
ASSERTION FAILED: childrenInline() in WebCore::RenderBlockFlow::hasLines
https://bugs.webkit.org/show_bug.cgi?id=139396
<rdar://problem/27704339>
Added: releases/WebKitGTK/webkit-2.12/LayoutTests/fast/ruby/assert-when-content-size-is-negative-expected.txt (0 => 205439)
--- releases/WebKitGTK/webkit-2.12/LayoutTests/fast/ruby/assert-when-content-size-is-negative-expected.txt (rev 0)
+++ releases/WebKitGTK/webkit-2.12/LayoutTests/fast/ruby/assert-when-content-size-is-negative-expected.txt 2016-09-05 09:17:09 UTC (rev 205439)
@@ -0,0 +1,4 @@
+This tests that inline does not assert when its composite state changes.
+if (window.testRunner) testRunner.dumpAsText();
+* { display: inline-flex; flex-basis: 1; }
+PASS if no assert in debug.
Added: releases/WebKitGTK/webkit-2.12/LayoutTests/fast/ruby/assert-when-content-size-is-negative.html (0 => 205439)
--- releases/WebKitGTK/webkit-2.12/LayoutTests/fast/ruby/assert-when-content-size-is-negative.html (rev 0)
+++ releases/WebKitGTK/webkit-2.12/LayoutTests/fast/ruby/assert-when-content-size-is-negative.html 2016-09-05 09:17:09 UTC (rev 205439)
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>This tests that inline does not assert when its composite state changes.</title>
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+</script>
+<style>
+* {
+ display: inline-flex;
+ flex-basis: 1;
+}
+</style>
+</head>
+<body>
+PASS if no assert in debug.
+<frameset></frameset>
+</body>
+</html>
Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog (205438 => 205439)
--- releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog 2016-09-05 09:09:52 UTC (rev 205438)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog 2016-09-05 09:17:09 UTC (rev 205439)
@@ -1,5 +1,25 @@
2016-08-24 Zalan Bujtas <za...@apple.com>
+ ASSERTION FAILED: contentSize >= 0 in WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax
+ https://bugs.webkit.org/show_bug.cgi?id=155700
+ <rdar://problem/27720727>
+
+ Reviewed by David Hyatt.
+
+ RenderBox::m_minPreferredLogicalWidth/m_maxPreferredLogicalWidth don't need special initial value since
+ preferredLogicalWidthsDirty flag guards them. -1 as initial value can cause problems for renderers that don't
+ override RenderBox::computePreferredLogicalWidths().
+
+ Test: fast/ruby/assert-when-content-size-is-negative.html
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::RenderBox):
+ (WebCore::RenderBox::dirtyLineBoxes):
+ (WebCore::RenderBox::deleteLineBoxWrapper):
+ * rendering/RenderBox.h:
+
+2016-08-24 Zalan Bujtas <za...@apple.com>
+
ASSERTION FAILED: childrenInline() in WebCore::RenderBlockFlow::hasLines
https://bugs.webkit.org/show_bug.cgi?id=139396
<rdar://problem/27704339>
Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderBox.cpp (205438 => 205439)
--- releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderBox.cpp 2016-09-05 09:09:52 UTC (rev 205438)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderBox.cpp 2016-09-05 09:17:09 UTC (rev 205439)
@@ -120,9 +120,6 @@
RenderBox::RenderBox(Element& element, Ref<RenderStyle>&& style, BaseTypeFlags baseTypeFlags)
: RenderBoxModelObject(element, WTFMove(style), baseTypeFlags)
- , m_minPreferredLogicalWidth(-1)
- , m_maxPreferredLogicalWidth(-1)
- , m_inlineBoxWrapper(nullptr)
{
setIsBox();
}
@@ -129,9 +126,6 @@
RenderBox::RenderBox(Document& document, Ref<RenderStyle>&& style, BaseTypeFlags baseTypeFlags)
: RenderBoxModelObject(document, WTFMove(style), baseTypeFlags)
- , m_minPreferredLogicalWidth(-1)
- , m_maxPreferredLogicalWidth(-1)
- , m_inlineBoxWrapper(nullptr)
{
setIsBox();
}
@@ -2123,13 +2117,14 @@
void RenderBox::dirtyLineBoxes(bool fullLayout)
{
- if (m_inlineBoxWrapper) {
- if (fullLayout) {
- delete m_inlineBoxWrapper;
- m_inlineBoxWrapper = nullptr;
- } else
- m_inlineBoxWrapper->dirtyLineBoxes();
- }
+ if (!m_inlineBoxWrapper)
+ return;
+
+ if (fullLayout) {
+ delete m_inlineBoxWrapper;
+ m_inlineBoxWrapper = nullptr;
+ } else
+ m_inlineBoxWrapper->dirtyLineBoxes();
}
void RenderBox::positionLineBox(InlineElementBox& box)
@@ -2165,12 +2160,13 @@
void RenderBox::deleteLineBoxWrapper()
{
- if (m_inlineBoxWrapper) {
- if (!documentBeingDestroyed())
- m_inlineBoxWrapper->removeFromParent();
- delete m_inlineBoxWrapper;
- m_inlineBoxWrapper = nullptr;
- }
+ if (!m_inlineBoxWrapper)
+ return;
+
+ if (!documentBeingDestroyed())
+ m_inlineBoxWrapper->removeFromParent();
+ delete m_inlineBoxWrapper;
+ m_inlineBoxWrapper = nullptr;
}
LayoutRect RenderBox::clippedOverflowRectForRepaint(const RenderLayerModelObject* repaintContainer) const
Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderBox.h (205438 => 205439)
--- releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderBox.h 2016-09-05 09:09:52 UTC (rev 205438)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderBox.h 2016-09-05 09:17:09 UTC (rev 205439)
@@ -740,7 +740,7 @@
LayoutUnit m_maxPreferredLogicalWidth;
// For inline replaced elements, the inline box that owns us.
- InlineElementBox* m_inlineBoxWrapper;
+ InlineElementBox* m_inlineBoxWrapper { nullptr };
// Our overflow information.
RefPtr<RenderOverflow> m_overflow;