Remove -webkit-color-correction CSS property
[WebKit-https.git] / Source / WebCore / rendering / style / StyleRareInheritedData.cpp
index 8310844..6b3924c 100644 (file)
 #include "RenderStyleConstants.h"
 #include "ShadowData.h"
 #include "StyleImage.h"
-#include "WebCoreMemoryInstrumentation.h"
-#include <wtf/MemoryObjectInfo.h>
 
 namespace WebCore {
 
-struct SameSizeAsStyleRareInheritedData : public RefCounted<SameSizeAsStyleRareInheritedData> {
+struct GreaterThanOrSameSizeAsStyleRareInheritedData : public RefCounted<GreaterThanOrSameSizeAsStyleRareInheritedData> {
     void* styleImage;
     Color firstColor;
     float firstFloat;
@@ -41,27 +39,30 @@ struct SameSizeAsStyleRareInheritedData : public RefCounted<SameSizeAsStyleRareI
     void* ownPtrs[1];
     AtomicString atomicStrings[5];
     void* refPtrs[2];
-    Length lengths[1];
+    Length lengths[2];
     float secondFloat;
-    unsigned m_bitfields[2];
+    unsigned m_bitfields[4];
     short pagedMediaShorts[2];
     unsigned unsigneds[1];
     short hyphenationShorts[3];
 
+#if PLATFORM(IOS)
+    Color compositionColor;
+#endif
+#if ENABLE(IOS_TEXT_AUTOSIZING)
+    TextSizeAdjustment textSizeAdjust;
+#endif
+
 #if ENABLE(CSS_IMAGE_RESOLUTION)
     float imageResolutionFloats;
 #endif
 
 #if ENABLE(TOUCH_EVENTS)
-    Color touchColors;
-#endif
-
-#if ENABLE(CSS_VARIABLES)
-    void* variableDataRefs[1];
+    Color tapHighlightColor;
 #endif
 };
 
-COMPILE_ASSERT(sizeof(StyleRareInheritedData) == sizeof(SameSizeAsStyleRareInheritedData), StyleRareInheritedData_should_bit_pack);
+COMPILE_ASSERT(sizeof(StyleRareInheritedData) <= sizeof(GreaterThanOrSameSizeAsStyleRareInheritedData), StyleRareInheritedData_should_bit_pack);
 
 StyleRareInheritedData::StyleRareInheritedData()
     : listStyleImage(RenderStyle::initialListStyleImage())
@@ -80,15 +81,15 @@ StyleRareInheritedData::StyleRareInheritedData()
     , lineBreak(LineBreakAuto)
     , resize(RenderStyle::initialResize())
     , userSelect(RenderStyle::initialUserSelect())
-    , colorSpace(ColorSpaceDeviceRGB)
     , speak(SpeakNormal)
     , hyphens(HyphensManual)
     , textEmphasisFill(TextEmphasisFillFilled)
     , textEmphasisMark(TextEmphasisMarkNone)
-    , textEmphasisPosition(TextEmphasisPositionOver)
+    , textEmphasisPosition(TextEmphasisPositionOver | TextEmphasisPositionRight)
     , m_textOrientation(TextOrientationVerticalRight)
 #if ENABLE(CSS3_TEXT)
     , m_textIndentLine(RenderStyle::initialTextIndentLine())
+    , m_textIndentType(RenderStyle::initialTextIndentType())
 #endif
     , m_lineBoxContain(RenderStyle::initialLineBoxContain())
 #if ENABLE(CSS_IMAGE_ORIENTATION)
@@ -106,27 +107,36 @@ StyleRareInheritedData::StyleRareInheritedData()
 #endif
 #if ENABLE(CSS3_TEXT)
     , m_textAlignLast(RenderStyle::initialTextAlignLast())
-    , m_textUnderlinePosition(RenderStyle::initialTextUnderlinePosition())
+    , m_textJustify(RenderStyle::initialTextJustify())
 #endif // CSS3_TEXT
+    , m_textDecorationSkip(RenderStyle::initialTextDecorationSkip())
+    , m_textUnderlinePosition(RenderStyle::initialTextUnderlinePosition())
     , m_rubyPosition(RenderStyle::initialRubyPosition())
+    , m_textZoom(RenderStyle::initialTextZoom())
+#if PLATFORM(IOS)
+    , touchCalloutEnabled(RenderStyle::initialTouchCalloutEnabled())
+#endif
+#if ENABLE(CSS_TRAILING_WORD)
+    , trailingWord(static_cast<unsigned>(RenderStyle::initialTrailingWord()))
+#endif
     , hyphenationLimitBefore(-1)
     , hyphenationLimitAfter(-1)
     , hyphenationLimitLines(-1)
     , m_lineGrid(RenderStyle::initialLineGrid())
     , m_tabSize(RenderStyle::initialTabSize())
+#if ENABLE(IOS_TEXT_AUTOSIZING)
+    , textSizeAdjust(RenderStyle::initialTextSizeAdjust())
+#endif
 #if ENABLE(CSS_IMAGE_RESOLUTION)
     , m_imageResolution(RenderStyle::initialImageResolution())
 #endif
 #if ENABLE(TOUCH_EVENTS)
     , tapHighlightColor(RenderStyle::initialTapHighlightColor())
-#endif    
-{
-#if ENABLE(CSS_VARIABLES)
-    m_variables.init();
 #endif
+{
 }
 
-StyleRareInheritedData::StyleRareInheritedData(const StyleRareInheritedData& o)
+inline StyleRareInheritedData::StyleRareInheritedData(const StyleRareInheritedData& o)
     : RefCounted<StyleRareInheritedData>()
     , listStyleImage(o.listStyleImage)
     , textStrokeColor(o.textStrokeColor)
@@ -136,8 +146,7 @@ StyleRareInheritedData::StyleRareInheritedData(const StyleRareInheritedData& o)
     , visitedLinkTextStrokeColor(o.visitedLinkTextStrokeColor)
     , visitedLinkTextFillColor(o.visitedLinkTextFillColor)
     , visitedLinkTextEmphasisColor(o.visitedLinkTextEmphasisColor)
-    , textShadow(o.textShadow ? adoptPtr(new ShadowData(*o.textShadow)) : nullptr)
-    , highlight(o.highlight)
+    , textShadow(o.textShadow ? std::make_unique<ShadowData>(*o.textShadow) : nullptr)
     , cursorData(o.cursorData)
     , indent(o.indent)
     , m_effectiveZoom(o.m_effectiveZoom)
@@ -153,7 +162,6 @@ StyleRareInheritedData::StyleRareInheritedData(const StyleRareInheritedData& o)
     , lineBreak(o.lineBreak)
     , resize(o.resize)
     , userSelect(o.userSelect)
-    , colorSpace(o.colorSpace)
     , speak(o.speak)
     , hyphens(o.hyphens)
     , textEmphasisFill(o.textEmphasisFill)
@@ -162,6 +170,7 @@ StyleRareInheritedData::StyleRareInheritedData(const StyleRareInheritedData& o)
     , m_textOrientation(o.m_textOrientation)
 #if ENABLE(CSS3_TEXT)
     , m_textIndentLine(o.m_textIndentLine)
+    , m_textIndentType(o.m_textIndentType)
 #endif
     , m_lineBoxContain(o.m_lineBoxContain)
 #if ENABLE(CSS_IMAGE_ORIENTATION)
@@ -179,29 +188,42 @@ StyleRareInheritedData::StyleRareInheritedData(const StyleRareInheritedData& o)
 #endif
 #if ENABLE(CSS3_TEXT)
     , m_textAlignLast(o.m_textAlignLast)
-    , m_textUnderlinePosition(o.m_textUnderlinePosition)
+    , m_textJustify(o.m_textJustify)
 #endif // CSS3_TEXT
+    , m_textDecorationSkip(o.m_textDecorationSkip)
+    , m_textUnderlinePosition(o.m_textUnderlinePosition)
     , m_rubyPosition(o.m_rubyPosition)
+    , m_textZoom(o.m_textZoom)
+#if PLATFORM(IOS)
+    , touchCalloutEnabled(o.touchCalloutEnabled)
+#endif
+#if ENABLE(CSS_TRAILING_WORD)
+    , trailingWord(o.trailingWord)
+#endif
     , hyphenationString(o.hyphenationString)
     , hyphenationLimitBefore(o.hyphenationLimitBefore)
     , hyphenationLimitAfter(o.hyphenationLimitAfter)
     , hyphenationLimitLines(o.hyphenationLimitLines)
-    , locale(o.locale)
     , textEmphasisCustomMark(o.textEmphasisCustomMark)
     , m_lineGrid(o.m_lineGrid)
     , m_tabSize(o.m_tabSize)
+#if ENABLE(IOS_TEXT_AUTOSIZING)
+    , textSizeAdjust(o.textSizeAdjust)
+#endif
 #if ENABLE(CSS_IMAGE_RESOLUTION)
     , m_imageResolution(o.m_imageResolution)
 #endif
 #if ENABLE(TOUCH_EVENTS)
     , tapHighlightColor(o.tapHighlightColor)
 #endif
-#if ENABLE(CSS_VARIABLES)
-    , m_variables(o.m_variables)
-#endif
 {
 }
 
+Ref<StyleRareInheritedData> StyleRareInheritedData::copy() const
+{
+    return adoptRef(*new StyleRareInheritedData(*this));
+}
+
 StyleRareInheritedData::~StyleRareInheritedData()
 {
 }
@@ -215,6 +237,15 @@ static bool cursorDataEquivalent(const CursorList* c1, const CursorList* c2)
     return (*c1 == *c2);
 }
 
+static bool quotesDataEquivalent(const QuotesData* q1, const QuotesData* q2)
+{
+    if (q1 == q2)
+        return true;
+    if ((!q1 && q2) || (q1 && !q2))
+        return false;
+    return (*q1 == *q2);
+}
+
 bool StyleRareInheritedData::operator==(const StyleRareInheritedData& o) const
 {
     return textStrokeColor == o.textStrokeColor
@@ -228,7 +259,6 @@ bool StyleRareInheritedData::operator==(const StyleRareInheritedData& o) const
         && tapHighlightColor == o.tapHighlightColor
 #endif
         && shadowDataEquivalent(o)
-        && highlight == o.highlight
         && cursorDataEquivalent(cursorData.get(), o.cursorData.get())
         && indent == o.indent
         && m_effectiveZoom == o.m_effectiveZoom
@@ -245,9 +275,11 @@ bool StyleRareInheritedData::operator==(const StyleRareInheritedData& o) const
 #if ENABLE(ACCELERATED_OVERFLOW_SCROLLING)
         && useTouchOverflowScrolling == o.useTouchOverflowScrolling
 #endif
+#if ENABLE(IOS_TEXT_AUTOSIZING)
+        && textSizeAdjust == o.textSizeAdjust
+#endif
         && resize == o.resize
         && userSelect == o.userSelect
-        && colorSpace == o.colorSpace
         && speak == o.speak
         && hyphens == o.hyphens
         && hyphenationLimitBefore == o.hyphenationLimitBefore
@@ -259,12 +291,15 @@ bool StyleRareInheritedData::operator==(const StyleRareInheritedData& o) const
         && m_textOrientation == o.m_textOrientation
 #if ENABLE(CSS3_TEXT)
         && m_textIndentLine == o.m_textIndentLine
+        && m_textIndentType == o.m_textIndentType
 #endif
         && m_lineBoxContain == o.m_lineBoxContain
+#if PLATFORM(IOS)
+        && touchCalloutEnabled == o.touchCalloutEnabled
+#endif
         && hyphenationString == o.hyphenationString
-        && locale == o.locale
         && textEmphasisCustomMark == o.textEmphasisCustomMark
-        && QuotesData::equals(quotes.get(), o.quotes.get())
+        && quotesDataEquivalent(quotes.get(), o.quotes.get())
         && m_tabSize == o.m_tabSize
         && m_lineGrid == o.m_lineGrid
 #if ENABLE(CSS_IMAGE_ORIENTATION)
@@ -278,14 +313,17 @@ bool StyleRareInheritedData::operator==(const StyleRareInheritedData& o) const
 #endif
 #if ENABLE(CSS3_TEXT)
         && m_textAlignLast == o.m_textAlignLast
-        && m_textUnderlinePosition == o.m_textUnderlinePosition
+        && m_textJustify == o.m_textJustify
 #endif // CSS3_TEXT
+        && m_textDecorationSkip == o.m_textDecorationSkip
+        && m_textUnderlinePosition == o.m_textUnderlinePosition
         && m_rubyPosition == o.m_rubyPosition
+        && m_textZoom == o.m_textZoom
         && m_lineSnap == o.m_lineSnap
-#if ENABLE(CSS_VARIABLES)
-        && m_variables == o.m_variables
-#endif
         && m_lineAlign == o.m_lineAlign
+#if ENABLE(CSS_TRAILING_WORD)
+        && trailingWord == o.trailingWord
+#endif
         && StyleImage::imagesEquivalent(listStyleImage.get(), o.listStyleImage.get());
 }
 
@@ -298,22 +336,4 @@ bool StyleRareInheritedData::shadowDataEquivalent(const StyleRareInheritedData&
     return true;
 }
 
-void StyleRareInheritedData::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
-{
-    MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::CSS);
-    info.addMember(listStyleImage, "listStyleImage");
-    info.addMember(indent, "indent");
-    info.addMember(textShadow, "textShadow");
-    info.addMember(highlight, "highlight");
-    info.addMember(cursorData, "cursorData");
-    info.addMember(hyphenationString, "hyphenationString");
-    info.addMember(locale, "locale");
-    info.addMember(textEmphasisCustomMark, "textEmphasisCustomMark");
-    info.addMember(quotes, "quotes");
-    info.addMember(m_lineGrid, "lineGrid");
-#if ENABLE(CSS_VARIABLES)
-    info.addMember(m_variables, "variables");
-#endif
-}
-
 } // namespace WebCore