Index: third_party/WebKit/Source/core/editing/commands/IndentOutdentCommand.cpp |
diff --git a/third_party/WebKit/Source/core/editing/commands/IndentOutdentCommand.cpp b/third_party/WebKit/Source/core/editing/commands/IndentOutdentCommand.cpp |
index 8c6f691acaa73280127d870e1cbcd3db7327a4f5..a69d57d5fb05317a0c6673dab97414960ecd3781 100644 |
--- a/third_party/WebKit/Source/core/editing/commands/IndentOutdentCommand.cpp |
+++ b/third_party/WebKit/Source/core/editing/commands/IndentOutdentCommand.cpp |
@@ -136,9 +136,14 @@ void IndentOutdentCommand::indentIntoBlockquote(const Position& start, const Pos |
// Create a new blockquote and insert it as a child of the root editable element. We accomplish |
// this by splitting all parents of the current paragraph up to that point. |
targetBlockquote = createBlockElement(); |
- if (outerBlock == start.computeContainerNode()) |
- insertNodeAt(targetBlockquote, start, editingState); |
- else |
+ if (outerBlock == start.computeContainerNode()) { |
+ // When we apply indent to an empty <blockquote>, we should call insertNodeAfter(). |
+ // See http://crbug.com/625802 for more details. |
+ if (outerBlock->hasTagName(blockquoteTag)) |
+ insertNodeAfter(targetBlockquote, outerBlock, editingState); |
+ else |
+ insertNodeAt(targetBlockquote, start, editingState); |
+ } else |
insertNodeBefore(targetBlockquote, outerBlock, editingState); |
if (editingState->isAborted()) |
return; |