| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "sky/engine/config.h" | 5 #include "sky/engine/config.h" |
| 6 #include "sky/engine/core/animation/css/CSSPropertyEquality.h" | 6 #include "sky/engine/core/animation/css/CSSPropertyEquality.h" |
| 7 | 7 |
| 8 #include "sky/engine/core/animation/css/CSSAnimations.h" | 8 #include "sky/engine/core/animation/css/CSSAnimations.h" |
| 9 #include "sky/engine/core/rendering/style/DataEquivalency.h" | 9 #include "sky/engine/core/rendering/style/DataEquivalency.h" |
| 10 #include "sky/engine/core/rendering/style/RenderStyle.h" | 10 #include "sky/engine/core/rendering/style/RenderStyle.h" |
| 11 #include "sky/engine/core/rendering/style/ShadowList.h" | 11 #include "sky/engine/core/rendering/style/ShadowList.h" |
| 12 | 12 |
| 13 namespace blink { | 13 namespace blink { |
| 14 | 14 |
| 15 namespace { | 15 namespace { |
| 16 | 16 |
| 17 template <CSSPropertyID property> | 17 template <CSSPropertyID property> |
| 18 bool fillLayersEqual(const FillLayer& aLayers, const FillLayer& bLayers) | 18 bool fillLayersEqual(const FillLayer& aLayers, const FillLayer& bLayers) |
| 19 { | 19 { |
| 20 const FillLayer* aLayer = &aLayers; | 20 const FillLayer* aLayer = &aLayers; |
| 21 const FillLayer* bLayer = &bLayers; | 21 const FillLayer* bLayer = &bLayers; |
| 22 while (aLayer && bLayer) { | 22 while (aLayer && bLayer) { |
| 23 switch (property) { | 23 switch (property) { |
| 24 case CSSPropertyBackgroundPositionX: | 24 case CSSPropertyBackgroundPositionX: |
| 25 case CSSPropertyWebkitMaskPositionX: | |
| 26 if (aLayer->xPosition() != bLayer->xPosition()) | 25 if (aLayer->xPosition() != bLayer->xPosition()) |
| 27 return false; | 26 return false; |
| 28 break; | 27 break; |
| 29 case CSSPropertyBackgroundPositionY: | 28 case CSSPropertyBackgroundPositionY: |
| 30 case CSSPropertyWebkitMaskPositionY: | |
| 31 if (aLayer->yPosition() != bLayer->yPosition()) | 29 if (aLayer->yPosition() != bLayer->yPosition()) |
| 32 return false; | 30 return false; |
| 33 break; | 31 break; |
| 34 case CSSPropertyBackgroundSize: | 32 case CSSPropertyBackgroundSize: |
| 35 case CSSPropertyWebkitBackgroundSize: | 33 case CSSPropertyWebkitBackgroundSize: |
| 36 case CSSPropertyWebkitMaskSize: | |
| 37 if (!(aLayer->sizeLength() == bLayer->sizeLength())) | 34 if (!(aLayer->sizeLength() == bLayer->sizeLength())) |
| 38 return false; | 35 return false; |
| 39 break; | 36 break; |
| 40 case CSSPropertyBackgroundImage: | 37 case CSSPropertyBackgroundImage: |
| 41 if (!dataEquivalent(aLayer->image(), bLayer->image())) | 38 if (!dataEquivalent(aLayer->image(), bLayer->image())) |
| 42 return false; | 39 return false; |
| 43 break; | 40 break; |
| 44 default: | 41 default: |
| 45 ASSERT_NOT_REACHED(); | 42 ASSERT_NOT_REACHED(); |
| 46 return true; | 43 return true; |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 case CSSPropertyWebkitBackgroundSize: | 186 case CSSPropertyWebkitBackgroundSize: |
| 190 return fillLayersEqual<CSSPropertyWebkitBackgroundSize>(a.backgroundLaye
rs(), b.backgroundLayers()); | 187 return fillLayersEqual<CSSPropertyWebkitBackgroundSize>(a.backgroundLaye
rs(), b.backgroundLayers()); |
| 191 case CSSPropertyWebkitBorderHorizontalSpacing: | 188 case CSSPropertyWebkitBorderHorizontalSpacing: |
| 192 return a.horizontalBorderSpacing() == b.horizontalBorderSpacing(); | 189 return a.horizontalBorderSpacing() == b.horizontalBorderSpacing(); |
| 193 case CSSPropertyWebkitBorderVerticalSpacing: | 190 case CSSPropertyWebkitBorderVerticalSpacing: |
| 194 return a.verticalBorderSpacing() == b.verticalBorderSpacing(); | 191 return a.verticalBorderSpacing() == b.verticalBorderSpacing(); |
| 195 case CSSPropertyWebkitBoxShadow: | 192 case CSSPropertyWebkitBoxShadow: |
| 196 return dataEquivalent(a.boxShadow(), b.boxShadow()); | 193 return dataEquivalent(a.boxShadow(), b.boxShadow()); |
| 197 case CSSPropertyWebkitClipPath: | 194 case CSSPropertyWebkitClipPath: |
| 198 return dataEquivalent(a.clipPath(), b.clipPath()); | 195 return dataEquivalent(a.clipPath(), b.clipPath()); |
| 199 case CSSPropertyWebkitMaskBoxImageOutset: | |
| 200 return a.maskBoxImageOutset() == b.maskBoxImageOutset(); | |
| 201 case CSSPropertyWebkitMaskBoxImageSlice: | |
| 202 return a.maskBoxImageSlices() == b.maskBoxImageSlices(); | |
| 203 case CSSPropertyWebkitMaskBoxImageSource: | |
| 204 return dataEquivalent(a.maskBoxImageSource(), b.maskBoxImageSource()); | |
| 205 case CSSPropertyWebkitMaskBoxImageWidth: | |
| 206 return a.maskBoxImageWidth() == b.maskBoxImageWidth(); | |
| 207 case CSSPropertyWebkitMaskImage: | |
| 208 return dataEquivalent(a.maskImage(), b.maskImage()); | |
| 209 case CSSPropertyWebkitMaskPositionX: | |
| 210 return fillLayersEqual<CSSPropertyWebkitMaskPositionX>(a.maskLayers(), b
.maskLayers()); | |
| 211 case CSSPropertyWebkitMaskPositionY: | |
| 212 return fillLayersEqual<CSSPropertyWebkitMaskPositionY>(a.maskLayers(), b
.maskLayers()); | |
| 213 case CSSPropertyWebkitMaskSize: | |
| 214 return fillLayersEqual<CSSPropertyWebkitMaskSize>(a.maskLayers(), b.mask
Layers()); | |
| 215 case CSSPropertyPerspective: | 196 case CSSPropertyPerspective: |
| 216 return a.perspective() == b.perspective(); | 197 return a.perspective() == b.perspective(); |
| 217 case CSSPropertyPerspectiveOrigin: | 198 case CSSPropertyPerspectiveOrigin: |
| 218 return a.perspectiveOriginX() == b.perspectiveOriginX() && a.perspective
OriginY() == b.perspectiveOriginY(); | 199 return a.perspectiveOriginX() == b.perspectiveOriginX() && a.perspective
OriginY() == b.perspectiveOriginY(); |
| 219 case CSSPropertyWebkitTextStrokeColor: | 200 case CSSPropertyWebkitTextStrokeColor: |
| 220 return a.textStrokeColor().resolve(a.color()) == b.textStrokeColor().res
olve(b.color()); | 201 return a.textStrokeColor().resolve(a.color()) == b.textStrokeColor().res
olve(b.color()); |
| 221 case CSSPropertyTransform: | 202 case CSSPropertyTransform: |
| 222 return a.transform() == b.transform(); | 203 return a.transform() == b.transform(); |
| 223 case CSSPropertyTransformOrigin: | 204 case CSSPropertyTransformOrigin: |
| 224 return a.transformOriginX() == b.transformOriginX() && a.transformOrigin
Y() == b.transformOriginY() && a.transformOriginZ() == b.transformOriginZ(); | 205 return a.transformOriginX() == b.transformOriginX() && a.transformOrigin
Y() == b.transformOriginY() && a.transformOriginZ() == b.transformOriginZ(); |
| 225 case CSSPropertyWidows: | 206 case CSSPropertyWidows: |
| 226 return a.widows() == b.widows(); | 207 return a.widows() == b.widows(); |
| 227 case CSSPropertyWidth: | 208 case CSSPropertyWidth: |
| 228 return a.width() == b.width(); | 209 return a.width() == b.width(); |
| 229 case CSSPropertyWordSpacing: | 210 case CSSPropertyWordSpacing: |
| 230 return a.wordSpacing() == b.wordSpacing(); | 211 return a.wordSpacing() == b.wordSpacing(); |
| 231 case CSSPropertyZIndex: | 212 case CSSPropertyZIndex: |
| 232 return a.zIndex() == b.zIndex(); | 213 return a.zIndex() == b.zIndex(); |
| 233 default: | 214 default: |
| 234 ASSERT_NOT_REACHED(); | 215 ASSERT_NOT_REACHED(); |
| 235 return true; | 216 return true; |
| 236 } | 217 } |
| 237 } | 218 } |
| 238 | 219 |
| 239 } | 220 } |
| OLD | NEW |