Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(296)

Unified Diff: third_party/WebKit/Source/core/editing/commands/InsertTextCommand.cpp

Issue 1702233002: Editing: Make the |EditingState*| argument of CompositeEditCommand::insertNodeAt mandatory. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/editing/commands/InsertTextCommand.cpp
diff --git a/third_party/WebKit/Source/core/editing/commands/InsertTextCommand.cpp b/third_party/WebKit/Source/core/editing/commands/InsertTextCommand.cpp
index 22a4cbbea0f2ab9269709d404ee4ea7a8b9a158d..ab934f989cef88fdb8438fb2723a6b11ecab012d 100644
--- a/third_party/WebKit/Source/core/editing/commands/InsertTextCommand.cpp
+++ b/third_party/WebKit/Source/core/editing/commands/InsertTextCommand.cpp
@@ -44,12 +44,14 @@ InsertTextCommand::InsertTextCommand(Document& document, const String& text, boo
{
}
-Position InsertTextCommand::positionInsideTextNode(const Position& p)
+Position InsertTextCommand::positionInsideTextNode(const Position& p, EditingState* editingState)
{
Position pos = p;
if (isTabHTMLSpanElementTextNode(pos.anchorNode())) {
RefPtrWillBeRawPtr<Text> textNode = document().createEditingTextNode("");
- insertNodeAtTabSpanPosition(textNode.get(), pos);
+ insertNodeAtTabSpanPosition(textNode.get(), pos, editingState);
+ if (editingState->isAborted())
+ return Position();
return firstPositionInNode(textNode.get());
}
@@ -57,7 +59,9 @@ Position InsertTextCommand::positionInsideTextNode(const Position& p)
// It may be necessary to insert a text node to receive characters.
if (!pos.computeContainerNode()->isTextNode()) {
RefPtrWillBeRawPtr<Text> textNode = document().createEditingTextNode("");
- insertNodeAt(textNode.get(), pos);
+ insertNodeAt(textNode.get(), pos, editingState);
+ if (editingState->isAborted())
+ return Position();
return firstPositionInNode(textNode.get());
}
@@ -198,7 +202,9 @@ void InsertTextCommand::doApply(EditingState* editingState)
removePlaceholderAt(placeholder);
} else {
// Make sure the document is set up to receive m_text
- startPosition = positionInsideTextNode(startPosition);
+ startPosition = positionInsideTextNode(startPosition, editingState);
+ if (editingState->isAborted())
+ return;
ASSERT(startPosition.isOffsetInAnchor());
ASSERT(startPosition.computeContainerNode());
ASSERT(startPosition.computeContainerNode()->isTextNode());

Powered by Google App Engine
This is Rietveld 408576698