summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLevi Weintraub <leviw@chromium.org>2013-02-22 12:17:54 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-02-28 15:16:35 +0100
commite1db432cd29971e7ae83e840558aab4eaf7a4442 (patch)
tree5aee4ce8c6a1f3655ad9be8dd179e46ed35c47b1
parent5ed26913a30b9484ef4b2394dd8f08e7509161ac (diff)
downloadqtwebkit-e1db432cd29971e7ae83e840558aab4eaf7a4442.tar.gz
ASSERTION FAILED: !object || object->isBox(), UNKNOWN in WebCore::RenderListItem::positionListMarker
https://bugs.webkit.org/show_bug.cgi?id=108699 Reviewed by Abhishek Arya. Source/WebCore: RenderListItems performs special management of its children to maintain list markers. Splitting a flow through a list item results in assumptions made inside RenderListItem failing, so for now, avoid splittin flows when inside one. Test: fast/multicol/span/list-multi-column-crash.html * rendering/RenderBlock.cpp: (WebCore::RenderBlock::containingColumnsBlock): LayoutTests: * fast/multicol/span/list-multi-column-crash-expected.txt: Added. * fast/multicol/span/list-multi-column-crash.html: Added. Change-Id: If570c787773fbc69cecbb60833be32c445f2dc2b git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142657 268f45cc-cd09-0410-ab3c-d52691b4dbfc Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
-rw-r--r--Source/WebCore/ChangeLog16
-rw-r--r--Source/WebCore/rendering/RenderBlock.cpp11
2 files changed, 20 insertions, 7 deletions
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 3f112badb..a356e1911 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,19 @@
+2013-02-21 Levi Weintraub <leviw@chromium.org>
+
+ ASSERTION FAILED: !object || object->isBox(), UNKNOWN in WebCore::RenderListItem::positionListMarker
+ https://bugs.webkit.org/show_bug.cgi?id=108699
+
+ Reviewed by Abhishek Arya.
+
+ RenderListItems performs special management of its children to maintain list markers. Splitting a flow
+ through a list item results in assumptions made inside RenderListItem failing, so for now, avoid splitting
+ flows when inside one.
+
+ Test: fast/multicol/span/list-multi-column-crash.html
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::containingColumnsBlock):
+
2013-02-19 Andras Becsi <andras.becsi@digia.com>
[Qt] Fix compilation if Qt was configured with -no-rtti
diff --git a/Source/WebCore/rendering/RenderBlock.cpp b/Source/WebCore/rendering/RenderBlock.cpp
index 8c6249765..4265ecdf3 100644
--- a/Source/WebCore/rendering/RenderBlock.cpp
+++ b/Source/WebCore/rendering/RenderBlock.cpp
@@ -530,13 +530,10 @@ RenderBlock* RenderBlock::containingColumnsBlock(bool allowAnonymousColumnBlock)
|| curr->isInlineBlockOrInlineTable())
return 0;
- // FIXME: Table manages its own table parts, most of which are RenderBoxes.
- // Multi-column code cannot handle splitting the flow in table. Disabling it
- // to prevent crashes.
- // Similarly, RenderButton maintains an anonymous block child and overrides
- // addChild() to prevent itself from having additional direct children. This
- // causes problems for split flows.
- if (curr->isTable() || curr->isRenderButton())
+ // FIXME: Tables, RenderButtons, and RenderListItems all do special management
+ // of their children that breaks when the flow is split through them. Disabling
+ // multi-column for them to avoid this problem.
+ if (curr->isTable() || curr->isRenderButton() || curr->isListItem())
return 0;
RenderBlock* currBlock = toRenderBlock(curr);