| Index: Source/core/style/ComputedStyle.h
|
| diff --git a/Source/core/style/ComputedStyle.h b/Source/core/style/ComputedStyle.h
|
| index 4a0263de57fdd7cc4e9a6cf0bd323239f1ec58ae..7a8afb21bd75499295f9defd5487d790b4d9efdb 100644
|
| --- a/Source/core/style/ComputedStyle.h
|
| +++ b/Source/core/style/ComputedStyle.h
|
| @@ -171,7 +171,7 @@ protected:
|
| && (_visibility == other._visibility)
|
| && (_text_align == other._text_align)
|
| && (_text_transform == other._text_transform)
|
| - && (m_textUnderline == other.m_textUnderline)
|
| + && (m_hasSimpleUnderline == other.m_hasSimpleUnderline)
|
| && (_cursor_style == other._cursor_style)
|
| && (_direction == other._direction)
|
| && (_white_space == other._white_space)
|
| @@ -193,7 +193,7 @@ protected:
|
| unsigned _visibility : 2; // EVisibility
|
| unsigned _text_align : 4; // ETextAlign
|
| unsigned _text_transform : 2; // ETextTransform
|
| - unsigned m_textUnderline : 1;
|
| + unsigned m_hasSimpleUnderline : 1; // True if 'underline solid currentColor' is the only text decoration on this element
|
| unsigned _cursor_style : 6; // ECursor
|
| unsigned _direction : 1; // TextDirection
|
| unsigned _white_space : 3; // EWhiteSpace
|
| @@ -297,7 +297,7 @@ protected:
|
| inherited_flags._visibility = initialVisibility();
|
| inherited_flags._text_align = initialTextAlign();
|
| inherited_flags._text_transform = initialTextTransform();
|
| - inherited_flags.m_textUnderline = false;
|
| + inherited_flags.m_hasSimpleUnderline = false;
|
| inherited_flags._cursor_style = initialCursor();
|
| inherited_flags._direction = initialDirection();
|
| inherited_flags._white_space = initialWhiteSpace();
|
| @@ -587,7 +587,7 @@ public:
|
| TextDecoration textDecorationsInEffect() const;
|
| const Vector<AppliedTextDecoration>& appliedTextDecorations() const;
|
| TextDecoration textDecoration() const { return static_cast<TextDecoration>(visual->textDecoration); }
|
| - TextUnderlinePosition textUnderlinePosition() const { return static_cast<TextUnderlinePosition>(rareInheritedData->m_textUnderlinePosition); }
|
| + TextUnderlinePosition textUnderlinePosition() const { return static_cast<TextUnderlinePosition>(rareInheritedData->m_hasSimpleUnderlinePosition); }
|
| TextDecorationStyle textDecorationStyle() const { return static_cast<TextDecorationStyle>(rareNonInheritedData->m_textDecorationStyle); }
|
| float wordSpacing() const;
|
| float letterSpacing() const;
|
| @@ -1136,10 +1136,10 @@ public:
|
| void setTextAlignLast(TextAlignLast v) { SET_VAR(rareInheritedData, m_textAlignLast, v); }
|
| void setTextJustify(TextJustify v) { SET_VAR(rareInheritedData, m_textJustify, v); }
|
| void setTextTransform(ETextTransform v) { inherited_flags._text_transform = v; }
|
| - void applyTextDecorations();
|
| + void applyTextDecorations(bool overrideExistingColors);
|
| void clearAppliedTextDecorations();
|
| void setTextDecoration(TextDecoration v) { SET_VAR(visual, textDecoration, v); }
|
| - void setTextUnderlinePosition(TextUnderlinePosition v) { SET_VAR(rareInheritedData, m_textUnderlinePosition, v); }
|
| + void setTextUnderlinePosition(TextUnderlinePosition v) { SET_VAR(rareInheritedData, m_hasSimpleUnderlinePosition, v); }
|
| void setTextDecorationStyle(TextDecorationStyle v) { SET_VAR(rareNonInheritedData, m_textDecorationStyle, v); }
|
| void setDirection(TextDirection v) { inherited_flags._direction = v; }
|
| void setSelfOrAncestorHasDirAutoAttribute(bool v) { SET_VAR(rareInheritedData, m_selfOrAncestorHasDirAutoAttribute, v); }
|
| @@ -1381,6 +1381,9 @@ public:
|
| void setSpeak(ESpeak s) { SET_VAR(rareInheritedData, speak, s); }
|
| void setTextCombine(TextCombine v) { SET_VAR(rareInheritedData, m_textCombine, v); }
|
| void setTextDecorationColor(const StyleColor& c) { SET_VAR(rareNonInheritedData, m_textDecorationColor, c); }
|
| +
|
| + void setSimpleUnderlineColor(const Color& c) { SET_VAR(rareInheritedData, simpleUnderlineColor, c); }
|
| + void setSimpleUnderlineVisitedColor(const Color& c) { SET_VAR(rareInheritedData, simpleUnderlineVisitedColor, c); }
|
| void setTextEmphasisColor(const StyleColor& c) { SET_VAR_WITH_SETTER(rareInheritedData, textEmphasisColor, setTextEmphasisColor, c); }
|
| void setTextEmphasisFill(TextEmphasisFill fill) { SET_VAR(rareInheritedData, textEmphasisFill, fill); }
|
| void setTextEmphasisMark(TextEmphasisMark mark) { SET_VAR(rareInheritedData, textEmphasisMark, mark); }
|
| @@ -1388,6 +1391,8 @@ public:
|
| void setTextEmphasisPosition(TextEmphasisPosition position) { SET_VAR(rareInheritedData, textEmphasisPosition, position); }
|
| bool setTextOrientation(TextOrientation);
|
|
|
| + Color visitedDependentSimpleUnderlineColor() const { return (insideLink() == InsideVisitedLink) ? rareInheritedData->simpleUnderlineVisitedColor : rareInheritedData->simpleUnderlineColor; }
|
| +
|
| void setMotionPath(PassRefPtr<StyleMotionPath>);
|
| void resetMotionPath();
|
| void setMotionOffset(const Length& motionOffset) { SET_VAR(rareNonInheritedData.access()->m_transform, m_motion.m_offset, motionOffset); }
|
| @@ -1860,6 +1865,7 @@ private:
|
|
|
| void appendContent(PassOwnPtrWillBeRawPtr<ContentData>);
|
| void addAppliedTextDecoration(const AppliedTextDecoration&);
|
| + void updateAppliedTextDecoration(size_t index, Color newColor);
|
| void applyMotionPathTransform(float originX, float originY, TransformationMatrix&) const;
|
|
|
| bool diffNeedsFullLayoutAndPaintInvalidation(const ComputedStyle& other) const;
|
|
|