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

Unified Diff: third_party/WebKit/Source/core/editing/iterators/TextIterator.cpp

Issue 2914883002: Change return type of TextIterator::HandleXXX to void (Closed)
Patch Set: Created 3 years, 7 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/iterators/TextIterator.cpp
diff --git a/third_party/WebKit/Source/core/editing/iterators/TextIterator.cpp b/third_party/WebKit/Source/core/editing/iterators/TextIterator.cpp
index b5389dfbe27a3f8aa2e6bac4845c9fa07df7d7a3..7f81c73f6ec912684c74103b2a24906b4fb0120e 100644
--- a/third_party/WebKit/Source/core/editing/iterators/TextIterator.cpp
+++ b/third_party/WebKit/Source/core/editing/iterators/TextIterator.cpp
@@ -269,12 +269,6 @@ bool TextIteratorAlgorithm<Strategy>::HandleRememberedProgress() {
return true;
}
- // TODO(xiaochengh): When multiple text runs should be emitted from a replaced
- // element or non-text node, we should handle it directly from here, instead
- // of going into the main iteration of Advance() for multiple times. In this
- // way, we can also remove the return values of HandleReplaceElement() and
- // HandleNonTextNode(), and make the control flow cleaner.
-
if (needs_handle_replaced_element_) {
HandleReplacedElement();
if (text_state_.PositionNode())
@@ -361,12 +355,11 @@ void TextIteratorAlgorithm<Strategy>::Advance() {
// Handle the current node according to its type.
if (iteration_progress_ < kHandledNode) {
- bool handled_node = false;
if (layout_object->IsText() &&
node_->getNodeType() ==
Node::kTextNode) { // FIXME: What about kCdataSectionNode?
if (!fully_clipped_stack_.Top() || IgnoresStyleVisibility())
- handled_node = HandleTextNode();
+ HandleTextNode();
} else if (layout_object &&
(layout_object->IsImage() || layout_object->IsLayoutPart() ||
(node_ && node_->IsHTMLElement() &&
@@ -375,12 +368,11 @@ void TextIteratorAlgorithm<Strategy>::Advance() {
isHTMLImageElement(ToHTMLElement(*node_)) ||
isHTMLMeterElement(ToHTMLElement(*node_)) ||
isHTMLProgressElement(ToHTMLElement(*node_)))))) {
- handled_node = HandleReplacedElement();
+ HandleReplacedElement();
} else {
- handled_node = HandleNonTextNode();
+ HandleNonTextNode();
}
- if (handled_node)
- iteration_progress_ = kHandledNode;
+ iteration_progress_ = kHandledNode;
if (text_state_.PositionNode())
return;
}
@@ -481,19 +473,19 @@ void TextIteratorAlgorithm<Strategy>::Advance() {
}
template <typename Strategy>
-bool TextIteratorAlgorithm<Strategy>::HandleTextNode() {
+void TextIteratorAlgorithm<Strategy>::HandleTextNode() {
if (ExcludesAutofilledValue()) {
TextControlElement* control = EnclosingTextControl(node_);
// For security reason, we don't expose suggested value if it is
// auto-filled.
if (control && control->IsAutofilled())
- return true;
+ return;
}
DCHECK_NE(last_text_node_, node_)
<< "We should never call HandleTextNode on the same node twice";
last_text_node_ = ToText(node_);
- return text_node_handler_.HandleTextNode(ToText(node_));
+ text_node_handler_.HandleTextNode(ToText(node_));
}
template <typename Strategy>
@@ -512,21 +504,22 @@ bool TextIteratorAlgorithm<Strategy>::SupportsAltText(Node* node) {
}
template <typename Strategy>
-bool TextIteratorAlgorithm<Strategy>::HandleReplacedElement() {
+void TextIteratorAlgorithm<Strategy>::HandleReplacedElement() {
needs_handle_replaced_element_ = false;
if (fully_clipped_stack_.Top())
- return false;
+ return;
LayoutObject* layout_object = node_->GetLayoutObject();
if (layout_object->Style()->Visibility() != EVisibility::kVisible &&
- !IgnoresStyleVisibility())
- return false;
+ !IgnoresStyleVisibility()) {
+ return;
+ }
if (EmitsObjectReplacementCharacter()) {
SpliceBuffer(kObjectReplacementCharacter, Strategy::Parent(*node_), node_,
0, 1);
- return true;
+ return;
}
DCHECK_EQ(last_text_node_, text_node_handler_.GetNode());
@@ -534,13 +527,13 @@ bool TextIteratorAlgorithm<Strategy>::HandleReplacedElement() {
if (text_node_handler_.FixLeadingWhiteSpaceForReplacedElement(
Strategy::Parent(*last_text_node_))) {
needs_handle_replaced_element_ = true;
- return true;
+ return;
}
}
if (EntersTextControls() && layout_object->IsTextControl()) {
// The shadow tree should be already visited.
- return true;
+ return;
}
if (EmitsCharactersBetweenAllVisiblePositions()) {
@@ -548,7 +541,7 @@ bool TextIteratorAlgorithm<Strategy>::HandleReplacedElement() {
// finding, and to simply take up space for the selection preservation
// code in moveParagraphs, so we use a comma.
SpliceBuffer(',', Strategy::Parent(*node_), node_, 0, 1);
- return true;
+ return;
}
text_state_.UpdateForReplacedElement(node_);
@@ -556,10 +549,8 @@ bool TextIteratorAlgorithm<Strategy>::HandleReplacedElement() {
if (EmitsImageAltText() && TextIterator::SupportsAltText(node_)) {
yosin_UTC9 2017/06/01 01:31:52 FYI: Subject to change early return style.
text_state_.EmitAltText(node_);
if (text_state_.length())
- return true;
+ return;
}
-
- return true;
}
template <typename Strategy>
@@ -777,7 +768,7 @@ void TextIteratorAlgorithm<Strategy>::RepresentNodeOffsetZero() {
}
template <typename Strategy>
-bool TextIteratorAlgorithm<Strategy>::HandleNonTextNode() {
+void TextIteratorAlgorithm<Strategy>::HandleNonTextNode() {
if (ShouldEmitNewlineForNode(node_, EmitsOriginalText()))
yosin_UTC9 2017/06/01 01:31:52 FYI: Subject to change early-return style.
SpliceBuffer('\n', Strategy::Parent(*node_), node_, 0, 1);
else if (EmitsCharactersBetweenAllVisiblePositions() &&
@@ -785,8 +776,6 @@ bool TextIteratorAlgorithm<Strategy>::HandleNonTextNode() {
SpliceBuffer(kSpaceCharacter, Strategy::Parent(*node_), node_, 0, 1);
else
RepresentNodeOffsetZero();
-
- return true;
}
template <typename Strategy>

Powered by Google App Engine
This is Rietveld 408576698