| Index: Source/WebCore/rendering/RenderLineBoxList.cpp
|
| ===================================================================
|
| --- Source/WebCore/rendering/RenderLineBoxList.cpp (revision 92027)
|
| +++ Source/WebCore/rendering/RenderLineBoxList.cpp (working copy)
|
| @@ -354,8 +354,21 @@
|
| if (box)
|
| break;
|
| }
|
| - if (!box)
|
| + if (!box) {
|
| + if (inlineContainer && !inlineContainer->alwaysCreateLineBoxes()) {
|
| + // https://bugs.webkit.org/show_bug.cgi?id=60778
|
| + // We may have just removed a <br> with no line box that was our first child. In this case
|
| + // we won't find a previous sibling, but firstBox can be pointing to a following sibling.
|
| + // This isn't good enough, since we won't locate the root line box that encloses the removed
|
| + // <br>. We have to just over-invalidate a bit and go up to our parent.
|
| + if (!inlineContainer->parent()->selfNeedsLayout()) {
|
| + inlineContainer->parent()->dirtyLinesFromChangedChild(inlineContainer);
|
| + inlineContainer->setNeedsLayout(true); // Mark the container as needing layout to avoid dirtying the same lines again across multiple destroy() calls of the same subtree.
|
| + }
|
| + return;
|
| + }
|
| box = firstBox->root();
|
| + }
|
|
|
| // If we found a line box, then dirty it.
|
| if (box) {
|
|
|