15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/*
25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org)
35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *
55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * This library is free software; you can redistribute it and/or
65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modify it under the terms of the GNU Library General Public
75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * License as published by the Free Software Foundation; either
85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * version 2 of the License, or (at your option) any later version.
95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *
105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * This library is distributed in the hope that it will be useful,
115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * but WITHOUT ANY WARRANTY; without even the implied warranty of
125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Library General Public License for more details.
145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *
155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * You should have received a copy of the GNU Library General Public License
165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * along with this library; see the file COPYING.LIB.  If not, write to
175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Boston, MA 02110-1301, USA.
195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) *
205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */
215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#include "config.h"
2353e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/rendering/style/StyleRareNonInheritedData.h"
245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2553e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/rendering/style/ContentData.h"
26323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)#include "core/rendering/style/DataEquivalency.h"
2753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/rendering/style/RenderStyle.h"
28f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)#include "core/rendering/style/ShadowList.h"
2953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/rendering/style/StyleFilterData.h"
3053e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#include "core/rendering/style/StyleTransformData.h"
3151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#include "core/rendering/svg/ReferenceFilterBuilder.h"
325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
33c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink {
345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)StyleRareNonInheritedData::StyleRareNonInheritedData()
365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    : opacity(RenderStyle::initialOpacity())
375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_aspectRatioDenominator(RenderStyle::initialAspectRatioDenominator())
385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_aspectRatioNumerator(RenderStyle::initialAspectRatioNumerator())
395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_perspective(RenderStyle::initialPerspective())
405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_perspectiveOriginX(RenderStyle::initialPerspectiveOriginX())
415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_perspectiveOriginY(RenderStyle::initialPerspectiveOriginY())
425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , lineClamp(RenderStyle::initialLineClamp())
435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_draggableRegionMode(DraggableRegionNone)
4451b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    , m_mask(MaskFillLayer, true)
455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_pageSize()
465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_shapeOutside(RenderStyle::initialShapeOutside())
47926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    , m_shapeMargin(RenderStyle::initialShapeMargin())
481e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    , m_shapeImageThreshold(RenderStyle::initialShapeImageThreshold())
495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_clipPath(RenderStyle::initialClipPath())
5009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    , m_textDecorationColor(StyleColor::currentColor())
5109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    , m_visitedLinkTextDecorationColor(StyleColor::currentColor())
525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_visitedLinkBackgroundColor(RenderStyle::initialBackgroundColor())
5309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    , m_visitedLinkOutlineColor(StyleColor::currentColor())
5409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    , m_visitedLinkBorderLeftColor(StyleColor::currentColor())
5509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    , m_visitedLinkBorderRightColor(StyleColor::currentColor())
5609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    , m_visitedLinkBorderTopColor(StyleColor::currentColor())
5709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    , m_visitedLinkBorderBottomColor(StyleColor::currentColor())
585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_order(RenderStyle::initialOrder())
5906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    , m_objectPosition(RenderStyle::initialObjectPosition())
605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_pageSizeType(PAGE_SIZE_AUTO)
615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_transformStyle3D(RenderStyle::initialTransformStyle3D())
625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_backfaceVisibility(RenderStyle::initialBackfaceVisibility())
635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_alignContent(RenderStyle::initialAlignContent())
645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_alignItems(RenderStyle::initialAlignItems())
6509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    , m_alignItemsOverflowAlignment(RenderStyle::initialAlignItemsOverflowAlignment())
665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_alignSelf(RenderStyle::initialAlignSelf())
6709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    , m_alignSelfOverflowAlignment(RenderStyle::initialAlignSelfOverflowAlignment())
685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_justifyContent(RenderStyle::initialJustifyContent())
695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , userDrag(RenderStyle::initialUserDrag())
705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , textOverflow(RenderStyle::initialTextOverflow())
715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , marginBeforeCollapse(MCOLLAPSE)
725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , marginAfterCollapse(MCOLLAPSE)
735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_appearance(RenderStyle::initialAppearance())
745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_borderFit(RenderStyle::initialBorderFit())
755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_textCombine(RenderStyle::initialTextCombine())
765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_textDecorationStyle(RenderStyle::initialTextDecorationStyle())
775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_wrapFlow(RenderStyle::initialWrapFlow())
785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_wrapThrough(RenderStyle::initialWrapThrough())
79a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch    , m_hasCurrentOpacityAnimation(false)
80a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch    , m_hasCurrentTransformAnimation(false)
81a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch    , m_hasCurrentFilterAnimation(false)
82a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch    , m_runningOpacityAnimationOnCompositor(false)
83a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch    , m_runningTransformAnimationOnCompositor(false)
84a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch    , m_runningFilterAnimationOnCompositor(false)
855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_hasAspectRatio(false)
865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_effectiveBlendMode(RenderStyle::initialBlendMode())
8793ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)    , m_touchAction(RenderStyle::initialTouchAction())
88e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles)    , m_objectFit(RenderStyle::initialObjectFit())
8906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    , m_isolation(RenderStyle::initialIsolation())
90197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    , m_justifyItems(RenderStyle::initialJustifyItems())
91197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    , m_justifyItemsOverflowAlignment(RenderStyle::initialJustifyItemsOverflowAlignment())
927242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    , m_justifyItemsPositionType(RenderStyle::initialJustifyItemsPositionType())
9309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    , m_justifySelf(RenderStyle::initialJustifySelf())
9409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    , m_justifySelfOverflowAlignment(RenderStyle::initialJustifySelfOverflowAlignment())
9509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    , m_scrollBehavior(RenderStyle::initialScrollBehavior())
965d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)    , m_requiresAcceleratedCompositingForExternalReasons(false)
97197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    , m_hasInlineTransform(false)
985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){
995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    m_maskBoxImage.setMaskDefaults();
1005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
1015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)StyleRareNonInheritedData::StyleRareNonInheritedData(const StyleRareNonInheritedData& o)
1035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    : RefCounted<StyleRareNonInheritedData>()
1045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , opacity(o.opacity)
1055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_aspectRatioDenominator(o.m_aspectRatioDenominator)
1065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_aspectRatioNumerator(o.m_aspectRatioNumerator)
1075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_perspective(o.m_perspective)
1085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_perspectiveOriginX(o.m_perspectiveOriginX)
1095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_perspectiveOriginY(o.m_perspectiveOriginY)
1105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , lineClamp(o.lineClamp)
1115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_draggableRegionMode(o.m_draggableRegionMode)
1125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_deprecatedFlexibleBox(o.m_deprecatedFlexibleBox)
1135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_flexibleBox(o.m_flexibleBox)
1145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_marquee(o.m_marquee)
1155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_multiCol(o.m_multiCol)
1165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_transform(o.m_transform)
117d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    , m_willChange(o.m_willChange)
1185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_filter(o.m_filter)
1195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_grid(o.m_grid)
1205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_gridItem(o.m_gridItem)
1215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_content(o.m_content ? o.m_content->clone() : nullptr)
1225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_counterDirectives(o.m_counterDirectives ? clone(*o.m_counterDirectives) : nullptr)
123f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)    , m_boxShadow(o.m_boxShadow)
1245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_boxReflect(o.m_boxReflect)
125d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    , m_animations(o.m_animations ? CSSAnimationData::create(*o.m_animations) : nullptr)
126d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    , m_transitions(o.m_transitions ? CSSTransitionData::create(*o.m_transitions) : nullptr)
1275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_mask(o.m_mask)
1285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_maskBoxImage(o.m_maskBoxImage)
1295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_pageSize(o.m_pageSize)
1305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_shapeOutside(o.m_shapeOutside)
131926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    , m_shapeMargin(o.m_shapeMargin)
1321e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    , m_shapeImageThreshold(o.m_shapeImageThreshold)
1335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_clipPath(o.m_clipPath)
134926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    , m_textDecorationColor(o.m_textDecorationColor)
135926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    , m_visitedLinkTextDecorationColor(o.m_visitedLinkTextDecorationColor)
1365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_visitedLinkBackgroundColor(o.m_visitedLinkBackgroundColor)
1375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_visitedLinkOutlineColor(o.m_visitedLinkOutlineColor)
1385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_visitedLinkBorderLeftColor(o.m_visitedLinkBorderLeftColor)
1395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_visitedLinkBorderRightColor(o.m_visitedLinkBorderRightColor)
1405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_visitedLinkBorderTopColor(o.m_visitedLinkBorderTopColor)
1415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_visitedLinkBorderBottomColor(o.m_visitedLinkBorderBottomColor)
1425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_order(o.m_order)
14306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    , m_objectPosition(o.m_objectPosition)
1445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_pageSizeType(o.m_pageSizeType)
1455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_transformStyle3D(o.m_transformStyle3D)
1465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_backfaceVisibility(o.m_backfaceVisibility)
1475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_alignContent(o.m_alignContent)
1485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_alignItems(o.m_alignItems)
14909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    , m_alignItemsOverflowAlignment(o.m_alignItemsOverflowAlignment)
1505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_alignSelf(o.m_alignSelf)
15109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    , m_alignSelfOverflowAlignment(o.m_alignSelfOverflowAlignment)
1525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_justifyContent(o.m_justifyContent)
1535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , userDrag(o.userDrag)
1545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , textOverflow(o.textOverflow)
1555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , marginBeforeCollapse(o.marginBeforeCollapse)
1565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , marginAfterCollapse(o.marginAfterCollapse)
1575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_appearance(o.m_appearance)
1585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_borderFit(o.m_borderFit)
1595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_textCombine(o.m_textCombine)
1605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_textDecorationStyle(o.m_textDecorationStyle)
1615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_wrapFlow(o.m_wrapFlow)
1625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_wrapThrough(o.m_wrapThrough)
163a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch    , m_hasCurrentOpacityAnimation(o.m_hasCurrentOpacityAnimation)
164a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch    , m_hasCurrentTransformAnimation(o.m_hasCurrentTransformAnimation)
165a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch    , m_hasCurrentFilterAnimation(o.m_hasCurrentFilterAnimation)
166a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch    , m_runningOpacityAnimationOnCompositor(o.m_runningOpacityAnimationOnCompositor)
167a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch    , m_runningTransformAnimationOnCompositor(o.m_runningTransformAnimationOnCompositor)
168a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch    , m_runningFilterAnimationOnCompositor(o.m_runningFilterAnimationOnCompositor)
1695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_hasAspectRatio(o.m_hasAspectRatio)
1705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    , m_effectiveBlendMode(o.m_effectiveBlendMode)
17193ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)    , m_touchAction(o.m_touchAction)
172e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles)    , m_objectFit(o.m_objectFit)
17306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)    , m_isolation(o.m_isolation)
174197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    , m_justifyItems(o.m_justifyItems)
175197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    , m_justifyItemsOverflowAlignment(o.m_justifyItemsOverflowAlignment)
176197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    , m_justifyItemsPositionType(o.m_justifyItemsPositionType)
17709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    , m_justifySelf(o.m_justifySelf)
17809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    , m_justifySelfOverflowAlignment(o.m_justifySelfOverflowAlignment)
17909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    , m_scrollBehavior(o.m_scrollBehavior)
1805d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)    , m_requiresAcceleratedCompositingForExternalReasons(o.m_requiresAcceleratedCompositingForExternalReasons)
181197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    , m_hasInlineTransform(o.m_hasInlineTransform)
1825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){
1835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
1845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)StyleRareNonInheritedData::~StyleRareNonInheritedData()
1865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){
18751b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    const FilterOperations& filterOperations = m_filter->m_operations;
18851b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)    for (unsigned i = 0; i < filterOperations.size(); ++i)
18951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)        ReferenceFilterBuilder::clearDocumentResourceReference(filterOperations.at(i));
1905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
1915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
1925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)bool StyleRareNonInheritedData::operator==(const StyleRareNonInheritedData& o) const
1935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){
1945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    return opacity == o.opacity
1955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_aspectRatioDenominator == o.m_aspectRatioDenominator
1965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_aspectRatioNumerator == o.m_aspectRatioNumerator
1975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_perspective == o.m_perspective
1985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_perspectiveOriginX == o.m_perspectiveOriginX
1995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_perspectiveOriginY == o.m_perspectiveOriginY
2005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && lineClamp == o.lineClamp
2015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_draggableRegionMode == o.m_draggableRegionMode
2025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_deprecatedFlexibleBox == o.m_deprecatedFlexibleBox
2035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_flexibleBox == o.m_flexibleBox
2045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_marquee == o.m_marquee
2055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_multiCol == o.m_multiCol
2065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_transform == o.m_transform
207d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)        && m_willChange == o.m_willChange
2085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_filter == o.m_filter
2095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_grid == o.m_grid
2105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_gridItem == o.m_gridItem
2115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && contentDataEquivalent(o)
2125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && counterDataEquivalent(o)
2135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && shadowDataEquivalent(o)
2145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && reflectionDataEquivalent(o)
2155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && animationDataEquivalent(o)
2165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && transitionDataEquivalent(o)
2175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_mask == o.m_mask
2185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_maskBoxImage == o.m_maskBoxImage
2195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_pageSize == o.m_pageSize
2205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_shapeOutside == o.m_shapeOutside
221926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        && m_shapeMargin == o.m_shapeMargin
2221e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)        && m_shapeImageThreshold == o.m_shapeImageThreshold
2235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_clipPath == o.m_clipPath
224926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        && m_textDecorationColor == o.m_textDecorationColor
225926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)        && m_visitedLinkTextDecorationColor == o.m_visitedLinkTextDecorationColor
2265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_visitedLinkBackgroundColor == o.m_visitedLinkBackgroundColor
2275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_visitedLinkOutlineColor == o.m_visitedLinkOutlineColor
2285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_visitedLinkBorderLeftColor == o.m_visitedLinkBorderLeftColor
2295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_visitedLinkBorderRightColor == o.m_visitedLinkBorderRightColor
2305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_visitedLinkBorderTopColor == o.m_visitedLinkBorderTopColor
2315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_visitedLinkBorderBottomColor == o.m_visitedLinkBorderBottomColor
2325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_order == o.m_order
23306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)        && m_objectPosition == o.m_objectPosition
2341e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)        && m_callbackSelectors == o.m_callbackSelectors
2355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_pageSizeType == o.m_pageSizeType
2365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_transformStyle3D == o.m_transformStyle3D
2375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_backfaceVisibility == o.m_backfaceVisibility
2385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_alignContent == o.m_alignContent
2395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_alignItems == o.m_alignItems
24009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        && m_alignItemsOverflowAlignment == o.m_alignItemsOverflowAlignment
2415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_alignSelf == o.m_alignSelf
24209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        && m_alignSelfOverflowAlignment == o.m_alignSelfOverflowAlignment
2435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_justifyContent == o.m_justifyContent
2445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && userDrag == o.userDrag
2455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && textOverflow == o.textOverflow
2465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && marginBeforeCollapse == o.marginBeforeCollapse
2475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && marginAfterCollapse == o.marginAfterCollapse
2485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_appearance == o.m_appearance
2495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_borderFit == o.m_borderFit
2505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_textCombine == o.m_textCombine
2515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_textDecorationStyle == o.m_textDecorationStyle
2525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_wrapFlow == o.m_wrapFlow
2535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_wrapThrough == o.m_wrapThrough
254a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch        && m_hasCurrentOpacityAnimation == o.m_hasCurrentOpacityAnimation
255a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch        && m_hasCurrentTransformAnimation == o.m_hasCurrentTransformAnimation
256a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch        && m_hasCurrentFilterAnimation == o.m_hasCurrentFilterAnimation
2575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        && m_effectiveBlendMode == o.m_effectiveBlendMode
25893ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)        && m_hasAspectRatio == o.m_hasAspectRatio
259e1f1df5f01594c0e62e751e4b46e779b85c2faa5Torne (Richard Coles)        && m_touchAction == o.m_touchAction
26006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)        && m_objectFit == o.m_objectFit
26109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        && m_isolation == o.m_isolation
262197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch        && m_justifyItems == o.m_justifyItems
263197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch        && m_justifyItemsOverflowAlignment == o.m_justifyItemsOverflowAlignment
264197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch        && m_justifyItemsPositionType == o.m_justifyItemsPositionType
26509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        && m_justifySelf == o.m_justifySelf
26609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)        && m_justifySelfOverflowAlignment == o.m_justifySelfOverflowAlignment
2675d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)        && m_scrollBehavior == o.m_scrollBehavior
268197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch        && m_requiresAcceleratedCompositingForExternalReasons == o.m_requiresAcceleratedCompositingForExternalReasons
269197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch        && m_hasInlineTransform == o.m_hasInlineTransform;
2705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
2715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)bool StyleRareNonInheritedData::contentDataEquivalent(const StyleRareNonInheritedData& o) const
2735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){
2745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    ContentData* a = m_content.get();
2755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    ContentData* b = o.m_content.get();
2765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    while (a && b && *a == *b) {
2785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        a = a->next();
2795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)        b = b->next();
2805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    }
2815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)    return !a && !b;
2835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
2845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)bool StyleRareNonInheritedData::counterDataEquivalent(const StyleRareNonInheritedData& o) const
2865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){
287323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)    return dataEquivalent(m_counterDirectives, o.m_counterDirectives);
2885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
2895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)bool StyleRareNonInheritedData::shadowDataEquivalent(const StyleRareNonInheritedData& o) const
2915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){
292323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)    return dataEquivalent(m_boxShadow, o.m_boxShadow);
2935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
2945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
2955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)bool StyleRareNonInheritedData::reflectionDataEquivalent(const StyleRareNonInheritedData& o) const
2965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){
297323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)    return dataEquivalent(m_boxReflect, o.m_boxReflect);
2985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
2995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
3005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)bool StyleRareNonInheritedData::animationDataEquivalent(const StyleRareNonInheritedData& o) const
3015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){
302d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    if (!m_animations && !o.m_animations)
303d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)        return true;
304d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    if (!m_animations || !o.m_animations)
305d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)        return false;
306d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    return m_animations->animationsMatchForStyleRecalc(*o.m_animations);
3075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
3085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
3095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)bool StyleRareNonInheritedData::transitionDataEquivalent(const StyleRareNonInheritedData& o) const
3105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){
311d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    if (!m_transitions && !o.m_transitions)
312d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)        return true;
313d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    if (!m_transitions || !o.m_transitions)
314d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)        return false;
315d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)    return m_transitions->transitionsMatchForStyleRecalc(*o.m_transitions);
3165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}
3175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)
3188abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)bool StyleRareNonInheritedData::hasFilters() const
3198abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles){
3208abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)    return m_filter.get() && !m_filter->m_operations.isEmpty();
3218abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)}
3228abfc5808a4e34d6e03867af8bc440dee641886fTorne (Richard Coles)
323c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink
324