Chromium Code Reviews| Index: Source/core/editing/TextIterator.cpp |
| diff --git a/Source/core/editing/TextIterator.cpp b/Source/core/editing/TextIterator.cpp |
| index 60dc3cb6d24ddcf2b0778fa03d1f8b8ab3e65d53..78e7ba2b84c868d7bfd50c37489ba3acab4e5439 100644 |
| --- a/Source/core/editing/TextIterator.cpp |
| +++ b/Source/core/editing/TextIterator.cpp |
| @@ -265,6 +265,7 @@ TextIterator::TextIterator(const Range* range, TextIteratorBehaviorFlags behavio |
| , m_shouldStop(false) |
| , m_emitsImageAltText(behavior & TextIteratorEmitsImageAltText) |
| , m_entersAuthorShadowRoots(behavior & TextIteratorEntersAuthorShadowRoots) |
| + , m_emitsReplacementChar(behavior & TextIteratorEmitsReplacementChar) |
| { |
| if (range) |
| initialize(range->startPosition(), range->endPosition()); |
| @@ -295,6 +296,7 @@ TextIterator::TextIterator(const Position& start, const Position& end, TextItera |
| , m_shouldStop(false) |
| , m_emitsImageAltText(behavior & TextIteratorEmitsImageAltText) |
| , m_entersAuthorShadowRoots(behavior & TextIteratorEntersAuthorShadowRoots) |
| + , m_emitsReplacementChar(behavior & TextIteratorEmitsReplacementChar) |
| { |
| initialize(start, end); |
| } |
| @@ -782,16 +784,21 @@ bool TextIterator::handleReplacedElement() |
| if (renderer->style()->visibility() != VISIBLE && !m_ignoresStyleVisibility) |
| return false; |
| - if (m_lastTextNodeEndedWithCollapsedSpace) { |
| - emitCharacter(' ', m_lastTextNode->parentNode(), m_lastTextNode, 1, 1); |
| - return false; |
| - } |
| - |
| if (m_entersTextControls && renderer->isTextControl()) { |
|
leviw_travelin_and_unemployed
2014/05/27 23:33:45
Why are you pulling this up above the m_lastTextNo
guohui
2014/05/28 01:17:06
actually it was not clear to me why this was not u
Yuta Kitamura
2014/05/28 07:36:07
Text control case does seem like a bug, but I thin
guohui
2014/05/28 13:19:12
reverted, we'd better fix the text control case in
guohui
2014/05/28 13:32:39
Correction:
when m_lastTextNodeEndedWithCollapsed
|
| // The shadow tree should be already visited. |
| return true; |
| } |
| + if (m_emitsReplacementChar) { |
| + emitCharacter(objectReplacementCharacter, m_node->parentNode(), m_node, 0, 1); |
| + return true; |
| + } |
| + |
| + if (m_lastTextNodeEndedWithCollapsedSpace) { |
| + emitCharacter(' ', m_lastTextNode->parentNode(), m_lastTextNode, 1, 1); |
| + return false; |
| + } |
| + |
| m_hasEmitted = true; |
| if (m_emitsCharactersBetweenAllVisiblePositions) { |