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

Unified Diff: Source/core/editing/TextIterator.cpp

Issue 481753002: Use Shadow DOM to display fallback content for images (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Updated Created 6 years, 3 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: Source/core/editing/TextIterator.cpp
diff --git a/Source/core/editing/TextIterator.cpp b/Source/core/editing/TextIterator.cpp
index 2fad13588cfa45747555c261c1aacff8826cf7e9..55c41c7a5ed754762f4625c85582ca58647d76b8 100644
--- a/Source/core/editing/TextIterator.cpp
+++ b/Source/core/editing/TextIterator.cpp
@@ -37,6 +37,7 @@
#include "core/editing/htmlediting.h"
#include "core/frame/FrameView.h"
#include "core/html/HTMLElement.h"
+#include "core/html/HTMLImageElement.h"
#include "core/html/HTMLTextFormControlElement.h"
#include "core/rendering/InlineTextBox.h"
#include "core/rendering/RenderImage.h"
@@ -467,6 +468,7 @@ void TextIterator::advance()
|| (m_node && m_node->isHTMLElement()
&& (isHTMLFormControlElement(toHTMLElement(*m_node))
|| isHTMLLegendElement(toHTMLElement(*m_node))
+ || isHTMLImageElement(toElement(*m_node))
|| isHTMLMeterElement(toHTMLElement(*m_node))
|| isHTMLProgressElement(toHTMLElement(*m_node)))))) {
handledNode = handleReplacedElement();
@@ -829,9 +831,14 @@ bool TextIterator::handleReplacedElement()
m_positionEndOffset = 1;
m_singleCharacterBuffer = 0;
- if (m_emitsImageAltText && renderer->isImage() && renderer->isRenderImage()) {
- m_text = toRenderImage(renderer)->altText();
- if (!m_text.isEmpty()) {
+ if (m_emitsImageAltText) {
+ bool isTextModified = false;
+ if (isHTMLImageElement(toElement(*m_node))) {
+ m_text = toHTMLImageElement(m_node)->altText();
+ isTextModified = true;
+ }
+
+ if (!m_text.isEmpty() && isTextModified) {
m_textLength = m_text.length();
m_lastCharacter = m_text[m_textLength - 1];
return true;
@@ -1313,7 +1320,7 @@ void SimplifiedBackwardsTextIterator::advance()
// FIXME: What about CDATA_SECTION_NODE?
if (renderer->style()->visibility() == VISIBLE && m_offset > 0)
m_handledNode = handleTextNode();
- } else if (renderer && (renderer->isImage() || renderer->isWidget())) {
+ } else if (renderer && (isHTMLImageElement(toElement(*m_node)) || renderer->isWidget())) {
esprehn 2014/09/05 00:47:50 I think this breaks image inputs, they're also Ren
rhogan 2014/09/08 19:52:41 Done
if (renderer->style()->visibility() == VISIBLE && m_offset > 0)
m_handledNode = handleReplacedElement();
} else {

Powered by Google App Engine
This is Rietveld 408576698