Index: Source/core/editing/iterators/TextIterator.cpp |
diff --git a/Source/core/editing/iterators/TextIterator.cpp b/Source/core/editing/iterators/TextIterator.cpp |
index 394ec99d503ae06c3f95bf9ab763148e9c90fff0..582645b5fd94a4465086abf8c6e246e7bcc0b4e2 100644 |
--- a/Source/core/editing/iterators/TextIterator.cpp |
+++ b/Source/core/editing/iterators/TextIterator.cpp |
@@ -196,8 +196,8 @@ bool TextIteratorAlgorithm<Strategy>::isInsideReplacedElement() const |
if (atEnd() || length() != 1 || !m_node) |
return false; |
- LayoutObject* renderer = m_node->layoutObject(); |
- return renderer && renderer->isReplaced(); |
+ LayoutObject* layoutObject = m_node->layoutObject(); |
+ return layoutObject && layoutObject->isReplaced(); |
} |
template<typename Strategy> |
@@ -252,10 +252,10 @@ void TextIteratorAlgorithm<Strategy>::advance() |
return; |
} |
- LayoutObject* renderer = m_node->layoutObject(); |
- if (!renderer) { |
+ LayoutObject* layoutObject = m_node->layoutObject(); |
+ if (!layoutObject) { |
if (m_node->isShadowRoot()) { |
- // A shadow root doesn't have a renderer, but we want to visit children anyway. |
+ // A shadow root doesn't have a layoutObject, but we want to visit children anyway. |
m_iterationProgress = m_iterationProgress < HandledNode ? HandledNode : m_iterationProgress; |
} else { |
m_iterationProgress = HandledChildren; |
@@ -278,7 +278,7 @@ void TextIteratorAlgorithm<Strategy>::advance() |
// Enter user-agent shadow root, if necessary. |
if (m_iterationProgress < HandledUserAgentShadowRoot) { |
- if (entersTextControls() && renderer->isTextControl()) { |
+ if (entersTextControls() && layoutObject->isTextControl()) { |
ShadowRoot* userAgentShadowRoot = toElement(m_node)->userAgentShadowRoot(); |
ASSERT(userAgentShadowRoot->type() == ShadowRoot::UserAgentShadowRoot); |
m_node = userAgentShadowRoot; |
@@ -293,10 +293,10 @@ void TextIteratorAlgorithm<Strategy>::advance() |
// Handle the current node according to its type. |
if (m_iterationProgress < HandledNode) { |
bool handledNode = false; |
- if (renderer->isText() && m_node->nodeType() == Node::TEXT_NODE) { // FIXME: What about CDATA_SECTION_NODE? |
+ if (layoutObject->isText() && m_node->nodeType() == Node::TEXT_NODE) { // FIXME: What about CDATA_SECTION_NODE? |
if (!m_fullyClippedStack.top() || ignoresStyleVisibility()) |
handledNode = handleTextNode(); |
- } else if (renderer && (renderer->isImage() || renderer->isLayoutPart() |
+ } else if (layoutObject && (layoutObject->isImage() || layoutObject->isLayoutPart() |
|| (m_node && m_node->isHTMLElement() |
&& (isHTMLFormControlElement(toHTMLElement(*m_node)) |
|| isHTMLLegendElement(toHTMLElement(*m_node)) |
@@ -394,15 +394,15 @@ void TextIteratorAlgorithm<Strategy>::advance() |
} |
} |
-static bool hasVisibleTextNode(LayoutText* renderer) |
+static bool hasVisibleTextNode(LayoutText* layoutObject) |
{ |
- if (renderer->style()->visibility() == VISIBLE) |
+ if (layoutObject->style()->visibility() == VISIBLE) |
return true; |
- if (!renderer->isTextFragment()) |
+ if (!layoutObject->isTextFragment()) |
return false; |
- LayoutTextFragment* fragment = toLayoutTextFragment(renderer); |
+ LayoutTextFragment* fragment = toLayoutTextFragment(layoutObject); |
if (!fragment->isRemainingTextLayoutObject()) |
return false; |
@@ -415,20 +415,20 @@ template<typename Strategy> |
bool TextIteratorAlgorithm<Strategy>::handleTextNode() |
{ |
Text* textNode = toText(m_node); |
- LayoutText* renderer = textNode->layoutObject(); |
+ LayoutText* layoutObject = textNode->layoutObject(); |
m_lastTextNode = textNode; |
- String str = renderer->text(); |
+ String str = layoutObject->text(); |
// handle pre-formatted text |
- if (!renderer->style()->collapseWhiteSpace()) { |
+ if (!layoutObject->style()->collapseWhiteSpace()) { |
int runStart = m_offset; |
- if (m_lastTextNodeEndedWithCollapsedSpace && hasVisibleTextNode(renderer)) { |
+ if (m_lastTextNodeEndedWithCollapsedSpace && hasVisibleTextNode(layoutObject)) { |
emitCharacter(space, textNode, 0, runStart, runStart); |
return false; |
} |
- if (!m_handledFirstLetter && renderer->isTextFragment() && !m_offset) { |
- handleTextNodeFirstLetter(toLayoutTextFragment(renderer)); |
+ if (!m_handledFirstLetter && layoutObject->isTextFragment() && !m_offset) { |
+ handleTextNodeFirstLetter(toLayoutTextFragment(layoutObject)); |
if (m_firstLetterText) { |
String firstLetter = m_firstLetterText->text(); |
emitText(textNode, m_firstLetterText, m_offset, m_offset + firstLetter.length()); |
@@ -437,7 +437,7 @@ bool TextIteratorAlgorithm<Strategy>::handleTextNode() |
return false; |
} |
} |
- if (renderer->style()->visibility() != VISIBLE && !ignoresStyleVisibility()) |
+ if (layoutObject->style()->visibility() != VISIBLE && !ignoresStyleVisibility()) |
return false; |
int strLength = str.length(); |
int end = (textNode == m_endContainer) ? m_endOffset : INT_MAX; |
@@ -450,27 +450,27 @@ bool TextIteratorAlgorithm<Strategy>::handleTextNode() |
return true; |
} |
- if (renderer->firstTextBox()) |
- m_textBox = renderer->firstTextBox(); |
+ if (layoutObject->firstTextBox()) |
+ m_textBox = layoutObject->firstTextBox(); |
- bool shouldHandleFirstLetter = !m_handledFirstLetter && renderer->isTextFragment() && !m_offset; |
+ bool shouldHandleFirstLetter = !m_handledFirstLetter && layoutObject->isTextFragment() && !m_offset; |
if (shouldHandleFirstLetter) |
- handleTextNodeFirstLetter(toLayoutTextFragment(renderer)); |
+ handleTextNodeFirstLetter(toLayoutTextFragment(layoutObject)); |
- if (!renderer->firstTextBox() && str.length() > 0 && !shouldHandleFirstLetter) { |
- if (renderer->style()->visibility() != VISIBLE && !ignoresStyleVisibility()) |
+ if (!layoutObject->firstTextBox() && str.length() > 0 && !shouldHandleFirstLetter) { |
+ if (layoutObject->style()->visibility() != VISIBLE && !ignoresStyleVisibility()) |
return false; |
m_lastTextNodeEndedWithCollapsedSpace = true; // entire block is collapsed space |
return true; |
} |
if (m_firstLetterText) |
- renderer = m_firstLetterText; |
+ layoutObject = m_firstLetterText; |
// Used when text boxes are out of order (Hebrew/Arabic w/ embeded LTR text) |
- if (renderer->containsReversedText()) { |
+ if (layoutObject->containsReversedText()) { |
m_sortedTextBoxes.clear(); |
- for (InlineTextBox* textBox = renderer->firstTextBox(); textBox; textBox = textBox->nextTextBox()) { |
+ for (InlineTextBox* textBox = layoutObject->firstTextBox(); textBox; textBox = textBox->nextTextBox()) { |
m_sortedTextBoxes.append(textBox); |
} |
std::sort(m_sortedTextBoxes.begin(), m_sortedTextBoxes.end(), InlineTextBox::compareByStart); |
@@ -485,12 +485,12 @@ bool TextIteratorAlgorithm<Strategy>::handleTextNode() |
template<typename Strategy> |
void TextIteratorAlgorithm<Strategy>::handleTextBox() |
{ |
- LayoutText* renderer = m_firstLetterText ? m_firstLetterText.get() : toLayoutText(m_node->layoutObject()); |
+ LayoutText* layoutObject = m_firstLetterText ? m_firstLetterText.get() : toLayoutText(m_node->layoutObject()); |
- if (renderer->style()->visibility() != VISIBLE && !ignoresStyleVisibility()) { |
+ if (layoutObject->style()->visibility() != VISIBLE && !ignoresStyleVisibility()) { |
m_textBox = nullptr; |
} else { |
- String str = renderer->text(); |
+ String str = layoutObject->text(); |
unsigned start = m_offset; |
unsigned end = (m_node == m_endContainer) ? static_cast<unsigned>(m_endOffset) : INT_MAX; |
while (m_textBox) { |
@@ -498,15 +498,15 @@ void TextIteratorAlgorithm<Strategy>::handleTextBox() |
unsigned runStart = std::max(textBoxStart, start); |
// Check for collapsed space at the start of this run. |
- InlineTextBox* firstTextBox = renderer->containsReversedText() ? (m_sortedTextBoxes.isEmpty() ? 0 : m_sortedTextBoxes[0]) : renderer->firstTextBox(); |
+ InlineTextBox* firstTextBox = layoutObject->containsReversedText() ? (m_sortedTextBoxes.isEmpty() ? 0 : m_sortedTextBoxes[0]) : layoutObject->firstTextBox(); |
bool needSpace = m_lastTextNodeEndedWithCollapsedSpace |
|| (m_textBox == firstTextBox && textBoxStart == runStart && runStart > 0); |
- if (needSpace && !renderer->style()->isCollapsibleWhiteSpace(m_textState.lastCharacter()) && m_textState.lastCharacter()) { |
+ if (needSpace && !layoutObject->style()->isCollapsibleWhiteSpace(m_textState.lastCharacter()) && m_textState.lastCharacter()) { |
if (m_lastTextNode == m_node && runStart > 0 && str[runStart - 1] == ' ') { |
unsigned spaceRunStart = runStart - 1; |
while (spaceRunStart > 0 && str[spaceRunStart - 1] == ' ') |
--spaceRunStart; |
- emitText(m_node, renderer, spaceRunStart, spaceRunStart + 1); |
+ emitText(m_node, layoutObject, spaceRunStart, spaceRunStart + 1); |
} else { |
emitCharacter(space, m_node, 0, runStart, runStart); |
} |
@@ -517,7 +517,7 @@ void TextIteratorAlgorithm<Strategy>::handleTextBox() |
// Determine what the next text box will be, but don't advance yet |
InlineTextBox* nextTextBox = nullptr; |
- if (renderer->containsReversedText()) { |
+ if (layoutObject->containsReversedText()) { |
if (m_sortedTextBoxesPosition + 1 < m_sortedTextBoxes.size()) |
nextTextBox = m_sortedTextBoxes[m_sortedTextBoxesPosition + 1]; |
} else { |
@@ -529,11 +529,11 @@ void TextIteratorAlgorithm<Strategy>::handleTextBox() |
// FirstLetter seem to have different ideas of where things can split. |
// FirstLetter takes the punctuation + first letter, and BIDI will |
// split out the punctuation and possibly reorder it. |
- if (nextTextBox && nextTextBox->layoutObject() != renderer) { |
+ if (nextTextBox && nextTextBox->layoutObject() != layoutObject) { |
m_textBox = 0; |
return; |
} |
- ASSERT(!nextTextBox || nextTextBox->layoutObject() == renderer); |
+ ASSERT(!nextTextBox || nextTextBox->layoutObject() == layoutObject); |
if (runStart < runEnd) { |
// Handle either a single newline character (which becomes a space), |
@@ -548,7 +548,7 @@ void TextIteratorAlgorithm<Strategy>::handleTextBox() |
subrunEnd = runEnd; |
m_offset = subrunEnd; |
- emitText(m_node, renderer, runStart, subrunEnd); |
+ emitText(m_node, layoutObject, runStart, subrunEnd); |
} |
// If we are doing a subrun that doesn't go to the end of the text box, |
@@ -562,13 +562,13 @@ void TextIteratorAlgorithm<Strategy>::handleTextBox() |
m_lastTextNodeEndedWithCollapsedSpace = true; // collapsed space between runs or at the end |
m_textBox = nextTextBox; |
- if (renderer->containsReversedText()) |
+ if (layoutObject->containsReversedText()) |
++m_sortedTextBoxesPosition; |
return; |
} |
// Advance and continue |
m_textBox = nextTextBox; |
- if (renderer->containsReversedText()) |
+ if (layoutObject->containsReversedText()) |
++m_sortedTextBoxesPosition; |
} |
} |
@@ -583,14 +583,14 @@ void TextIteratorAlgorithm<Strategy>::handleTextBox() |
} |
template<typename Strategy> |
-void TextIteratorAlgorithm<Strategy>::handleTextNodeFirstLetter(LayoutTextFragment* renderer) |
+void TextIteratorAlgorithm<Strategy>::handleTextNodeFirstLetter(LayoutTextFragment* layoutObject) |
{ |
m_handledFirstLetter = true; |
- if (!renderer->isRemainingTextLayoutObject()) |
+ if (!layoutObject->isRemainingTextLayoutObject()) |
return; |
- FirstLetterPseudoElement* firstLetterElement = renderer->firstLetterPseudoElement(); |
+ FirstLetterPseudoElement* firstLetterElement = layoutObject->firstLetterPseudoElement(); |
if (!firstLetterElement) |
return; |
@@ -628,8 +628,8 @@ bool TextIteratorAlgorithm<Strategy>::handleReplacedElement() |
if (m_fullyClippedStack.top()) |
return false; |
- LayoutObject* renderer = m_node->layoutObject(); |
- if (renderer->style()->visibility() != VISIBLE && !ignoresStyleVisibility()) |
+ LayoutObject* layoutObject = m_node->layoutObject(); |
+ if (layoutObject->style()->visibility() != VISIBLE && !ignoresStyleVisibility()) |
return false; |
if (emitsObjectReplacementCharacter()) { |
@@ -642,7 +642,7 @@ bool TextIteratorAlgorithm<Strategy>::handleReplacedElement() |
return false; |
} |
- if (entersTextControls() && renderer->isTextControl()) { |
+ if (entersTextControls() && layoutObject->isTextControl()) { |
// The shadow tree should be already visited. |
return true; |
} |
@@ -684,9 +684,9 @@ bool TextIteratorAlgorithm<Strategy>::shouldEmitTabBeforeNode(Node* node) |
template<typename Strategy> |
bool TextIteratorAlgorithm<Strategy>::shouldEmitNewlineForNode(Node* node, bool emitsOriginalText) |
{ |
- LayoutObject* renderer = node->layoutObject(); |
+ LayoutObject* layoutObject = node->layoutObject(); |
- if (renderer ? !renderer->isBR() : !isHTMLBRElement(node)) |
+ if (layoutObject ? !layoutObject->isBR() : !isHTMLBRElement(node)) |
return false; |
return emitsOriginalText || !(node->isInShadowTree() && isHTMLInputElement(*node->shadowHost())); |
} |
@@ -719,7 +719,7 @@ static bool shouldEmitNewlinesBeforeAndAfterNode(Node& node) |
} |
// Need to make an exception for option and optgroup, because we want to |
- // keep the legacy behavior before we added renderers to them. |
+ // keep the legacy behavior before we added layoutObjects to them. |
if (isHTMLOptionElement(node) || isHTMLOptGroupElement(node)) |
return false; |
@@ -746,7 +746,7 @@ bool TextIteratorAlgorithm<Strategy>::shouldEmitNewlineAfterNode(Node& node) |
// FIXME: It should be better but slower to create a VisiblePosition here. |
if (!shouldEmitNewlinesBeforeAndAfterNode(node)) |
return false; |
- // Check if this is the very last renderer in the document. |
+ // Check if this is the very last layoutObject in the document. |
// If so, then we should not emit a newline. |
Node* next = &node; |
do { |
@@ -946,12 +946,12 @@ void TextIteratorAlgorithm<Strategy>::emitCharacter(UChar c, Node* textNode, Nod |
} |
template<typename Strategy> |
-void TextIteratorAlgorithm<Strategy>::emitText(Node* textNode, LayoutText* renderer, int textStartOffset, int textEndOffset) |
+void TextIteratorAlgorithm<Strategy>::emitText(Node* textNode, LayoutText* layoutObject, int textStartOffset, int textEndOffset) |
{ |
// Since m_lastTextNodeEndedWithCollapsedSpace seems better placed in |
// TextIterator, but is always reset when we call emitCharacter, we |
// wrap TextIteratorTextState::emitCharacter() with this function. |
- m_textState.emitText(textNode, renderer, textStartOffset, textEndOffset); |
+ m_textState.emitText(textNode, layoutObject, textStartOffset, textEndOffset); |
m_lastTextNodeEndedWithCollapsedSpace = false; |
} |