Index: third_party/WebKit/Source/core/layout/svg/LayoutSVGText.cpp |
diff --git a/third_party/WebKit/Source/core/layout/svg/LayoutSVGText.cpp b/third_party/WebKit/Source/core/layout/svg/LayoutSVGText.cpp |
index 21ba55caf809ef2d45f3d078bed77e16550067e7..598b5eade546a09e5872713b9b9f2ab92d69dde1 100644 |
--- a/third_party/WebKit/Source/core/layout/svg/LayoutSVGText.cpp |
+++ b/third_party/WebKit/Source/core/layout/svg/LayoutSVGText.cpp |
@@ -31,7 +31,6 @@ |
#include "core/layout/HitTestResult.h" |
#include "core/layout/LayoutAnalyzer.h" |
#include "core/layout/LayoutState.h" |
-#include "core/layout/LayoutView.h" |
#include "core/layout/PointerEventsHitRules.h" |
#include "core/layout/api/LineLayoutItem.h" |
#include "core/layout/svg/LayoutSVGInline.h" |
@@ -43,10 +42,7 @@ |
#include "core/layout/svg/line/SVGRootInlineBox.h" |
#include "core/paint/SVGTextPainter.h" |
#include "core/style/ShadowList.h" |
-#include "core/svg/SVGLengthList.h" |
#include "core/svg/SVGTextElement.h" |
-#include "core/svg/SVGTransformList.h" |
-#include "core/svg/SVGURIReference.h" |
#include "platform/FloatConversion.h" |
#include "platform/geometry/FloatQuad.h" |
@@ -77,12 +73,12 @@ LayoutSVGText::LayoutSVGText(SVGTextElement* node) |
LayoutSVGText::~LayoutSVGText() |
{ |
- ASSERT(m_layoutAttributes.isEmpty()); |
+ ASSERT(m_descendantTextNodes.isEmpty()); |
} |
void LayoutSVGText::willBeDestroyed() |
{ |
- m_layoutAttributes.clear(); |
+ m_descendantTextNodes.clear(); |
LayoutSVGBlock::willBeDestroyed(); |
} |
@@ -102,17 +98,17 @@ const LayoutSVGText* LayoutSVGText::locateLayoutSVGTextAncestor(const LayoutObje |
return findTextRoot(start); |
} |
-static inline void collectLayoutAttributes(LayoutObject* text, Vector<SVGTextLayoutAttributes*>& attributes) |
+static inline void collectDescendantTextNodes(LayoutSVGText& textRoot, Vector<LayoutSVGInlineText*>& descendantTextNodes) |
{ |
- for (LayoutObject* descendant = text; descendant; descendant = descendant->nextInPreOrder(text)) { |
+ for (LayoutObject* descendant = textRoot.firstChild(); descendant; descendant = descendant->nextInPreOrder(&textRoot)) { |
if (descendant->isSVGInlineText()) |
- attributes.append(toLayoutSVGInlineText(descendant)->layoutAttributes()); |
+ descendantTextNodes.append(toLayoutSVGInlineText(descendant)); |
} |
} |
void LayoutSVGText::invalidatePositioningValues(LayoutInvalidationReasonForTracing reason) |
{ |
- m_layoutAttributes.clear(); |
+ m_descendantTextNodes.clear(); |
setNeedsPositioningValuesUpdate(); |
setNeedsLayoutAndFullPaintInvalidation(reason); |
} |
@@ -120,7 +116,7 @@ void LayoutSVGText::invalidatePositioningValues(LayoutInvalidationReasonForTraci |
void LayoutSVGText::subtreeChildWasAdded() |
{ |
if (beingDestroyed() || !everHadLayout()) { |
- ASSERT(m_layoutAttributes.isEmpty()); |
+ ASSERT(m_descendantTextNodes.isEmpty()); |
return; |
} |
if (documentBeingDestroyed()) |
@@ -135,7 +131,7 @@ void LayoutSVGText::subtreeChildWasAdded() |
void LayoutSVGText::subtreeChildWillBeRemoved() |
{ |
if (beingDestroyed() || !everHadLayout()) { |
- ASSERT(m_layoutAttributes.isEmpty()); |
+ ASSERT(m_descendantTextNodes.isEmpty()); |
return; |
} |
@@ -149,7 +145,7 @@ void LayoutSVGText::subtreeTextDidChange() |
{ |
ASSERT(!beingDestroyed()); |
if (!everHadLayout()) { |
- ASSERT(m_layoutAttributes.isEmpty()); |
+ ASSERT(m_descendantTextNodes.isEmpty()); |
return; |
} |
@@ -172,12 +168,12 @@ static inline void updateFontAndMetrics(LayoutSVGText& textRoot) |
} |
} |
-static inline void checkLayoutAttributesConsistency(LayoutSVGText* text, Vector<SVGTextLayoutAttributes*>& expectedLayoutAttributes) |
+static inline void checkDescendantTextNodeConsistency(LayoutSVGText& text, Vector<LayoutSVGInlineText*>& expectedDescendantTextNodes) |
{ |
#if ENABLE(ASSERT) |
- Vector<SVGTextLayoutAttributes*> newLayoutAttributes; |
- collectLayoutAttributes(text, newLayoutAttributes); |
- ASSERT(newLayoutAttributes == expectedLayoutAttributes); |
+ Vector<LayoutSVGInlineText*> newDescendantTextNodes; |
+ collectDescendantTextNodes(text, newDescendantTextNodes); |
+ ASSERT(newDescendantTextNodes == expectedDescendantTextNodes); |
#endif |
} |
@@ -216,8 +212,8 @@ void LayoutSVGText::layout() |
// When the x/y/dx/dy/rotate lists change, we need to recompute the layout |
// attributes. |
if (m_needsPositioningValuesUpdate) { |
- m_layoutAttributes.clear(); |
- collectLayoutAttributes(this, m_layoutAttributes); |
+ m_descendantTextNodes.clear(); |
+ collectDescendantTextNodes(*this, m_descendantTextNodes); |
SVGTextLayoutAttributesBuilder(*this).buildLayoutAttributes(); |
@@ -226,7 +222,7 @@ void LayoutSVGText::layout() |
updateParentBoundaries = true; |
} |
- checkLayoutAttributesConsistency(this, m_layoutAttributes); |
+ checkDescendantTextNodeConsistency(*this, m_descendantTextNodes); |
// Reduced version of LayoutBlock::layoutBlock(), which only takes care of SVG text. |
// All if branches that could cause early exit in LayoutBlocks layoutBlock() method are turned into assertions. |