Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(551)

Unified Diff: third_party/WebKit/Source/core/animation/css/CSSPropertyEquality.cpp

Issue 1896893004: Hook up style invalidation for CSS Paint API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@css-paint-register
Patch Set: rebase. Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/animation/css/CSSPropertyEquality.cpp
diff --git a/third_party/WebKit/Source/core/animation/css/CSSPropertyEquality.cpp b/third_party/WebKit/Source/core/animation/css/CSSPropertyEquality.cpp
deleted file mode 100644
index 9355fee81ed4a4edbaf79af053c3b0182ad0cbab..0000000000000000000000000000000000000000
--- a/third_party/WebKit/Source/core/animation/css/CSSPropertyEquality.cpp
+++ /dev/null
@@ -1,340 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "core/animation/css/CSSPropertyEquality.h"
-
-#include "core/animation/css/CSSAnimations.h"
-#include "core/style/DataEquivalency.h"
-#include "core/style/ComputedStyle.h"
-#include "core/style/ShadowList.h"
-
-namespace blink {
-
-namespace {
-
-template <CSSPropertyID property>
-bool fillLayersEqual(const FillLayer& aLayers, const FillLayer& bLayers)
-{
- const FillLayer* aLayer = &aLayers;
- const FillLayer* bLayer = &bLayers;
- while (aLayer && bLayer) {
- switch (property) {
- case CSSPropertyBackgroundPositionX:
- case CSSPropertyWebkitMaskPositionX:
- if (aLayer->xPosition() != bLayer->xPosition())
- return false;
- break;
- case CSSPropertyBackgroundPositionY:
- case CSSPropertyWebkitMaskPositionY:
- if (aLayer->yPosition() != bLayer->yPosition())
- return false;
- break;
- case CSSPropertyBackgroundSize:
- case CSSPropertyWebkitMaskSize:
- if (!(aLayer->sizeLength() == bLayer->sizeLength()))
- return false;
- break;
- case CSSPropertyBackgroundImage:
- if (!dataEquivalent(aLayer->image(), bLayer->image()))
- return false;
- break;
- default:
- ASSERT_NOT_REACHED();
- return true;
- }
-
- aLayer = aLayer->next();
- bLayer = bLayer->next();
- }
-
- // FIXME: Shouldn't this be return !aLayer && !bLayer; ?
- return true;
-}
-
-} // namespace
-
-bool CSSPropertyEquality::propertiesEqual(CSSPropertyID prop, const ComputedStyle& a, const ComputedStyle& b)
-{
- switch (prop) {
- case CSSPropertyBackgroundColor:
- return a.backgroundColor() == b.backgroundColor()
- && a.visitedLinkBackgroundColor() == b.visitedLinkBackgroundColor();
- case CSSPropertyBackgroundImage:
- return fillLayersEqual<CSSPropertyBackgroundImage>(a.backgroundLayers(), b.backgroundLayers());
- case CSSPropertyBackgroundPositionX:
- return fillLayersEqual<CSSPropertyBackgroundPositionX>(a.backgroundLayers(), b.backgroundLayers());
- case CSSPropertyBackgroundPositionY:
- return fillLayersEqual<CSSPropertyBackgroundPositionY>(a.backgroundLayers(), b.backgroundLayers());
- case CSSPropertyBackgroundSize:
- return fillLayersEqual<CSSPropertyBackgroundSize>(a.backgroundLayers(), b.backgroundLayers());
- case CSSPropertyBaselineShift:
- return a.baselineShiftValue() == b.baselineShiftValue();
- case CSSPropertyBorderBottomColor:
- return a.borderBottomColor() == b.borderBottomColor()
- && a.visitedLinkBorderBottomColor() == b.visitedLinkBorderBottomColor();
- case CSSPropertyBorderBottomLeftRadius:
- return a.borderBottomLeftRadius() == b.borderBottomLeftRadius();
- case CSSPropertyBorderBottomRightRadius:
- return a.borderBottomRightRadius() == b.borderBottomRightRadius();
- case CSSPropertyBorderBottomWidth:
- return a.borderBottomWidth() == b.borderBottomWidth();
- case CSSPropertyBorderImageOutset:
- return a.borderImageOutset() == b.borderImageOutset();
- case CSSPropertyBorderImageSlice:
- return a.borderImageSlices() == b.borderImageSlices();
- case CSSPropertyBorderImageSource:
- return dataEquivalent(a.borderImageSource(), b.borderImageSource());
- case CSSPropertyBorderImageWidth:
- return a.borderImageWidth() == b.borderImageWidth();
- case CSSPropertyBorderLeftColor:
- return a.borderLeftColor() == b.borderLeftColor()
- && a.visitedLinkBorderLeftColor() == b.visitedLinkBorderLeftColor();
- case CSSPropertyBorderLeftWidth:
- return a.borderLeftWidth() == b.borderLeftWidth();
- case CSSPropertyBorderRightColor:
- return a.borderRightColor() == b.borderRightColor()
- && a.visitedLinkBorderRightColor() == b.visitedLinkBorderRightColor();
- case CSSPropertyBorderRightWidth:
- return a.borderRightWidth() == b.borderRightWidth();
- case CSSPropertyBorderTopColor:
- return a.borderTopColor() == b.borderTopColor()
- && a.visitedLinkBorderTopColor() == b.visitedLinkBorderTopColor();
- case CSSPropertyBorderTopLeftRadius:
- return a.borderTopLeftRadius() == b.borderTopLeftRadius();
- case CSSPropertyBorderTopRightRadius:
- return a.borderTopRightRadius() == b.borderTopRightRadius();
- case CSSPropertyBorderTopWidth:
- return a.borderTopWidth() == b.borderTopWidth();
- case CSSPropertyBottom:
- return a.bottom() == b.bottom();
- case CSSPropertyBoxShadow:
- return dataEquivalent(a.boxShadow(), b.boxShadow());
- case CSSPropertyClip:
- return a.clip() == b.clip();
- case CSSPropertyColor:
- return a.color() == b.color() && a.visitedLinkColor() == b.visitedLinkColor();
- case CSSPropertyFill: {
- const SVGComputedStyle& aSVG = a.svgStyle();
- const SVGComputedStyle& bSVG = b.svgStyle();
- return aSVG.fillPaintType() == bSVG.fillPaintType()
- && (aSVG.fillPaintType() != SVG_PAINTTYPE_RGBCOLOR || aSVG.fillPaintColor() == bSVG.fillPaintColor())
- && aSVG.visitedLinkFillPaintType() == bSVG.visitedLinkFillPaintType()
- && (aSVG.visitedLinkFillPaintType() != SVG_PAINTTYPE_RGBCOLOR || aSVG.visitedLinkFillPaintColor() == bSVG.visitedLinkFillPaintColor());
- }
- case CSSPropertyFillOpacity:
- return a.fillOpacity() == b.fillOpacity();
- case CSSPropertyFlexBasis:
- return a.flexBasis() == b.flexBasis();
- case CSSPropertyFlexGrow:
- return a.flexGrow() == b.flexGrow();
- case CSSPropertyFlexShrink:
- return a.flexShrink() == b.flexShrink();
- case CSSPropertyFloodColor:
- return a.floodColor() == b.floodColor();
- case CSSPropertyFloodOpacity:
- return a.floodOpacity() == b.floodOpacity();
- case CSSPropertyFontSize:
- // CSSPropertyFontSize: Must pass a specified size to setFontSize if Text Autosizing is enabled, but a computed size
- // if text zoom is enabled (if neither is enabled it's irrelevant as they're probably the same).
- // FIXME: Should we introduce an option to pass the computed font size here, allowing consumers to
- // enable text zoom rather than Text Autosizing? See http://crbug.com/227545.
- return a.specifiedFontSize() == b.specifiedFontSize();
- case CSSPropertyFontSizeAdjust:
- return a.fontSizeAdjust() == b.fontSizeAdjust();
- case CSSPropertyFontStretch:
- return a.fontStretch() == b.fontStretch();
- case CSSPropertyFontWeight:
- return a.fontWeight() == b.fontWeight();
- case CSSPropertyHeight:
- return a.height() == b.height();
- case CSSPropertyLeft:
- return a.left() == b.left();
- case CSSPropertyLetterSpacing:
- return a.letterSpacing() == b.letterSpacing();
- case CSSPropertyLightingColor:
- return a.lightingColor() == b.lightingColor();
- case CSSPropertyLineHeight:
- return a.specifiedLineHeight() == b.specifiedLineHeight();
- case CSSPropertyListStyleImage:
- return dataEquivalent(a.listStyleImage(), b.listStyleImage());
- case CSSPropertyMarginBottom:
- return a.marginBottom() == b.marginBottom();
- case CSSPropertyMarginLeft:
- return a.marginLeft() == b.marginLeft();
- case CSSPropertyMarginRight:
- return a.marginRight() == b.marginRight();
- case CSSPropertyMarginTop:
- return a.marginTop() == b.marginTop();
- case CSSPropertyMaxHeight:
- return a.maxHeight() == b.maxHeight();
- case CSSPropertyMaxWidth:
- return a.maxWidth() == b.maxWidth();
- case CSSPropertyMinHeight:
- return a.minHeight() == b.minHeight();
- case CSSPropertyMinWidth:
- return a.minWidth() == b.minWidth();
- case CSSPropertyMotionOffset:
- return a.motionOffset() == b.motionOffset();
- case CSSPropertyMotionRotation:
- return a.motionRotation() == b.motionRotation();
- case CSSPropertyObjectPosition:
- return a.objectPosition() == b.objectPosition();
- case CSSPropertyOpacity:
- return a.opacity() == b.opacity();
- case CSSPropertyOrphans:
- return a.orphans() == b.orphans();
- case CSSPropertyOutlineColor:
- return a.outlineColor() == b.outlineColor()
- && a.visitedLinkOutlineColor() == b.visitedLinkOutlineColor();
- case CSSPropertyOutlineOffset:
- return a.outlineOffset() == b.outlineOffset();
- case CSSPropertyOutlineWidth:
- return a.outlineWidth() == b.outlineWidth();
- case CSSPropertyPaddingBottom:
- return a.paddingBottom() == b.paddingBottom();
- case CSSPropertyPaddingLeft:
- return a.paddingLeft() == b.paddingLeft();
- case CSSPropertyPaddingRight:
- return a.paddingRight() == b.paddingRight();
- case CSSPropertyPaddingTop:
- return a.paddingTop() == b.paddingTop();
- case CSSPropertyRight:
- return a.right() == b.right();
- case CSSPropertyShapeImageThreshold:
- return a.shapeImageThreshold() == b.shapeImageThreshold();
- case CSSPropertyShapeMargin:
- return a.shapeMargin() == b.shapeMargin();
- case CSSPropertyShapeOutside:
- return dataEquivalent(a.shapeOutside(), b.shapeOutside());
- case CSSPropertyStopColor:
- return a.stopColor() == b.stopColor();
- case CSSPropertyStopOpacity:
- return a.stopOpacity() == b.stopOpacity();
- case CSSPropertyStroke: {
- const SVGComputedStyle& aSVG = a.svgStyle();
- const SVGComputedStyle& bSVG = b.svgStyle();
- return aSVG.strokePaintType() == bSVG.strokePaintType()
- && (aSVG.strokePaintType() != SVG_PAINTTYPE_RGBCOLOR || aSVG.strokePaintColor() == bSVG.strokePaintColor())
- && aSVG.visitedLinkStrokePaintType() == bSVG.visitedLinkStrokePaintType()
- && (aSVG.visitedLinkStrokePaintType() != SVG_PAINTTYPE_RGBCOLOR || aSVG.visitedLinkStrokePaintColor() == bSVG.visitedLinkStrokePaintColor());
- }
- case CSSPropertyStrokeDasharray:
- return a.strokeDashArray() == b.strokeDashArray();
- case CSSPropertyStrokeDashoffset:
- return a.strokeDashOffset() == b.strokeDashOffset();
- case CSSPropertyStrokeMiterlimit:
- return a.strokeMiterLimit() == b.strokeMiterLimit();
- case CSSPropertyStrokeOpacity:
- return a.strokeOpacity() == b.strokeOpacity();
- case CSSPropertyStrokeWidth:
- return a.strokeWidth() == b.strokeWidth();
- case CSSPropertyTextDecorationColor:
- return a.textDecorationColor() == b.textDecorationColor()
- && a.visitedLinkTextDecorationColor() == b.visitedLinkTextDecorationColor();
- case CSSPropertyTextIndent:
- return a.textIndent() == b.textIndent();
- case CSSPropertyTextShadow:
- return dataEquivalent(a.textShadow(), b.textShadow());
- case CSSPropertyTop:
- return a.top() == b.top();
- case CSSPropertyVerticalAlign:
- return a.verticalAlign() == b.verticalAlign()
- && (a.verticalAlign() != VerticalAlignLength || a.getVerticalAlignLength() == b.getVerticalAlignLength());
- case CSSPropertyVisibility:
- return a.visibility() == b.visibility();
- case CSSPropertyWebkitBorderHorizontalSpacing:
- return a.horizontalBorderSpacing() == b.horizontalBorderSpacing();
- case CSSPropertyWebkitBorderVerticalSpacing:
- return a.verticalBorderSpacing() == b.verticalBorderSpacing();
- case CSSPropertyWebkitClipPath:
- return dataEquivalent(a.clipPath(), b.clipPath());
- case CSSPropertyColumnCount:
- return a.columnCount() == b.columnCount();
- case CSSPropertyColumnGap:
- return a.columnGap() == b.columnGap();
- case CSSPropertyColumnRuleColor:
- return a.columnRuleColor() == b.columnRuleColor()
- && a.visitedLinkColumnRuleColor() == b.visitedLinkColumnRuleColor();
- case CSSPropertyColumnRuleWidth:
- return a.columnRuleWidth() == b.columnRuleWidth();
- case CSSPropertyColumnWidth:
- return a.columnWidth() == b.columnWidth();
- case CSSPropertyWebkitFilter:
- return a.filter() == b.filter();
- case CSSPropertyBackdropFilter:
- return a.backdropFilter() == b.backdropFilter();
- case CSSPropertyWebkitMaskBoxImageOutset:
- return a.maskBoxImageOutset() == b.maskBoxImageOutset();
- case CSSPropertyWebkitMaskBoxImageSlice:
- return a.maskBoxImageSlices() == b.maskBoxImageSlices();
- case CSSPropertyWebkitMaskBoxImageSource:
- return dataEquivalent(a.maskBoxImageSource(), b.maskBoxImageSource());
- case CSSPropertyWebkitMaskBoxImageWidth:
- return a.maskBoxImageWidth() == b.maskBoxImageWidth();
- case CSSPropertyWebkitMaskImage:
- return dataEquivalent(a.maskImage(), b.maskImage());
- case CSSPropertyWebkitMaskPositionX:
- return fillLayersEqual<CSSPropertyWebkitMaskPositionX>(a.maskLayers(), b.maskLayers());
- case CSSPropertyWebkitMaskPositionY:
- return fillLayersEqual<CSSPropertyWebkitMaskPositionY>(a.maskLayers(), b.maskLayers());
- case CSSPropertyWebkitMaskSize:
- return fillLayersEqual<CSSPropertyWebkitMaskSize>(a.maskLayers(), b.maskLayers());
- case CSSPropertyPerspective:
- return a.perspective() == b.perspective();
- case CSSPropertyPerspectiveOrigin:
- return a.perspectiveOriginX() == b.perspectiveOriginX() && a.perspectiveOriginY() == b.perspectiveOriginY();
- case CSSPropertyWebkitTextStrokeColor:
- return a.textStrokeColor() == b.textStrokeColor()
- && a.visitedLinkTextStrokeColor() == b.visitedLinkTextStrokeColor();
- case CSSPropertyTransform:
- return a.transform() == b.transform();
- case CSSPropertyTranslate:
- return dataEquivalent<TransformOperation>(a.translate(), b.translate());
- case CSSPropertyRotate:
- return dataEquivalent<TransformOperation>(a.rotate(), b.rotate());
- case CSSPropertyScale:
- return dataEquivalent<TransformOperation>(a.scale(), b.scale());
- case CSSPropertyTransformOrigin:
- return a.transformOriginX() == b.transformOriginX() && a.transformOriginY() == b.transformOriginY() && a.transformOriginZ() == b.transformOriginZ();
- case CSSPropertyWebkitPerspectiveOriginX:
- return a.perspectiveOriginX() == b.perspectiveOriginX();
- case CSSPropertyWebkitPerspectiveOriginY:
- return a.perspectiveOriginY() == b.perspectiveOriginY();
- case CSSPropertyWebkitTransformOriginX:
- return a.transformOriginX() == b.transformOriginX();
- case CSSPropertyWebkitTransformOriginY:
- return a.transformOriginY() == b.transformOriginY();
- case CSSPropertyWebkitTransformOriginZ:
- return a.transformOriginZ() == b.transformOriginZ();
- case CSSPropertyWidows:
- return a.widows() == b.widows();
- case CSSPropertyWidth:
- return a.width() == b.width();
- case CSSPropertyWordSpacing:
- return a.wordSpacing() == b.wordSpacing();
- case CSSPropertyD:
- return dataEquivalent(a.svgStyle().d(), b.svgStyle().d());
- case CSSPropertyCx:
- return a.svgStyle().cx() == b.svgStyle().cx();
- case CSSPropertyCy:
- return a.svgStyle().cy() == b.svgStyle().cy();
- case CSSPropertyX:
- return a.svgStyle().x() == b.svgStyle().x();
- case CSSPropertyY:
- return a.svgStyle().y() == b.svgStyle().y();
- case CSSPropertyR:
- return a.svgStyle().r() == b.svgStyle().r();
- case CSSPropertyRx:
- return a.svgStyle().rx() == b.svgStyle().rx();
- case CSSPropertyRy:
- return a.svgStyle().ry() == b.svgStyle().ry();
- case CSSPropertyZIndex:
- return a.hasAutoZIndex() == b.hasAutoZIndex() && (a.hasAutoZIndex() || a.zIndex() == b.zIndex());
- default:
- ASSERT_NOT_REACHED();
- return true;
- }
-}
-
-} // namespace blink
« no previous file with comments | « third_party/WebKit/Source/core/animation/css/CSSPropertyEquality.h ('k') | third_party/WebKit/Source/core/core.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698