| Index: Source/core/editing/TypingCommand.cpp | 
| diff --git a/Source/core/editing/TypingCommand.cpp b/Source/core/editing/TypingCommand.cpp | 
| index 46e1e7de7ebe4944074d63d7a3232204afb06608..924d58a0116caa746e532107a6dc19f813eb2b6c 100644 | 
| --- a/Source/core/editing/TypingCommand.cpp | 
| +++ b/Source/core/editing/TypingCommand.cpp | 
| @@ -426,20 +426,20 @@ void TypingCommand::deleteKeyPressed(TextGranularity granularity, bool killRing) | 
| if (killRing && selection.isCaret() && granularity != CharacterGranularity) | 
| selection.modify(FrameSelection::AlterationExtend, DirectionBackward, CharacterGranularity); | 
|  | 
| -        if (endingSelection().visibleStart().previous(CannotCrossEditingBoundary).isNull()) { | 
| +        VisiblePosition visibleStart(endingSelection().visibleStart()); | 
| +        if (visibleStart.previous(CannotCrossEditingBoundary).isNull()) { | 
| // When the caret is at the start of the editable area in an empty list item, break out of the list item. | 
| if (breakOutOfEmptyListItem()) { | 
| typingAddedToOpenCommand(DeleteKey); | 
| return; | 
| } | 
| // When there are no visible positions in the editing root, delete its entire contents. | 
| -            if (endingSelection().visibleStart().next(CannotCrossEditingBoundary).isNull() && makeEditableRootEmpty()) { | 
| +            if (visibleStart.next(CannotCrossEditingBoundary).isNull() && makeEditableRootEmpty()) { | 
| typingAddedToOpenCommand(DeleteKey); | 
| return; | 
| } | 
| } | 
|  | 
| -        VisiblePosition visibleStart(endingSelection().visibleStart()); | 
| // If we have a caret selection at the beginning of a cell, we have nothing to do. | 
| Node* enclosingTableCell = enclosingNodeOfType(visibleStart.deepEquivalent(), &isTableCell); | 
| if (enclosingTableCell && visibleStart == firstPositionInNode(enclosingTableCell)) | 
|  |