Index: Source/WebCore/rendering/RenderBlock.cpp |
=================================================================== |
--- Source/WebCore/rendering/RenderBlock.cpp (revision 118864) |
+++ Source/WebCore/rendering/RenderBlock.cpp (working copy) |
@@ -1834,8 +1834,8 @@ |
if (!runIn->isRenderBlock()) |
return; |
- // We shouldn't run in into the sibling block if we are part of a |
- // continuation chain. In that case, treat it as a normal block. |
+ // FIXME: We don't support run-ins with or as part of a continuation |
+ // as it makes the back-and-forth placing complex. |
if (runIn->isElementContinuation() || runIn->virtualContinuation()) |
return; |
@@ -1892,6 +1892,14 @@ |
if (!runInIsPlacedIntoSiblingBlock(runIn)) |
return; |
+ // FIXME: Run-in that are now placed in sibling block can break up into continuation |
+ // chains when new children are added to it. We cannot easily send them back to their |
+ // original place since that requires writing integration logic with RenderInline::addChild |
+ // and all other places that might cause continuations to be created (without blowing away |
+ // |this|). Disabling this feature for now to prevent crashes. |
+ if (runIn->isElementContinuation() || runIn->virtualContinuation()) |
+ return; |
+ |
RenderBoxModelObject* oldRunIn = toRenderBoxModelObject(runIn); |
RenderBoxModelObject* newRunIn = createReplacementRunIn(oldRunIn); |
destroyRunIn(oldRunIn); |