OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "core/animation/CSSImageListInterpolationType.h" | 5 #include "core/animation/CSSImageListInterpolationType.h" |
6 | 6 |
7 #include "core/animation/CSSImageInterpolationType.h" | 7 #include "core/animation/CSSImageInterpolationType.h" |
8 #include "core/animation/ImageListPropertyFunctions.h" | 8 #include "core/animation/ImageListPropertyFunctions.h" |
9 #include "core/animation/ListInterpolationFunctions.h" | 9 #include "core/animation/ListInterpolationFunctions.h" |
10 #include "core/css/CSSPrimitiveValue.h" | 10 #include "core/css/CSSIdentifierValue.h" |
11 #include "core/css/CSSValueList.h" | 11 #include "core/css/CSSValueList.h" |
12 #include "core/css/resolver/StyleResolverState.h" | 12 #include "core/css/resolver/StyleResolverState.h" |
13 #include "wtf/PtrUtil.h" | 13 #include "wtf/PtrUtil.h" |
14 #include <memory> | 14 #include <memory> |
15 | 15 |
16 namespace blink { | 16 namespace blink { |
17 | 17 |
18 class UnderlyingImageListChecker : public InterpolationType::ConversionChecker { | 18 class UnderlyingImageListChecker : public InterpolationType::ConversionChecker { |
19 public: | 19 public: |
20 ~UnderlyingImageListChecker() final {} | 20 ~UnderlyingImageListChecker() final {} |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 return nullptr; | 92 return nullptr; |
93 | 93 |
94 StyleImageList inheritedImageList; | 94 StyleImageList inheritedImageList; |
95 ImageListPropertyFunctions::getImageList(cssProperty(), *state.parentStyle()
, inheritedImageList); | 95 ImageListPropertyFunctions::getImageList(cssProperty(), *state.parentStyle()
, inheritedImageList); |
96 conversionCheckers.append(ParentImageListChecker::create(cssProperty(), inhe
ritedImageList)); | 96 conversionCheckers.append(ParentImageListChecker::create(cssProperty(), inhe
ritedImageList)); |
97 return maybeConvertStyleImageList(inheritedImageList); | 97 return maybeConvertStyleImageList(inheritedImageList); |
98 } | 98 } |
99 | 99 |
100 InterpolationValue CSSImageListInterpolationType::maybeConvertValue(const CSSVal
ue& value, const StyleResolverState&, ConversionCheckers&) const | 100 InterpolationValue CSSImageListInterpolationType::maybeConvertValue(const CSSVal
ue& value, const StyleResolverState&, ConversionCheckers&) const |
101 { | 101 { |
102 if (value.isPrimitiveValue() && toCSSPrimitiveValue(value).getValueID() == C
SSValueNone) | 102 if (value.isIdentifierValue() && toCSSIdentifierValue(value).getValueID() ==
CSSValueNone) |
103 return nullptr; | 103 return nullptr; |
104 | 104 |
105 CSSValueList* tempList = nullptr; | 105 CSSValueList* tempList = nullptr; |
106 if (!value.isBaseValueList()) { | 106 if (!value.isBaseValueList()) { |
107 tempList = CSSValueList::createCommaSeparated(); | 107 tempList = CSSValueList::createCommaSeparated(); |
108 tempList->append(value); | 108 tempList->append(value); |
109 } | 109 } |
110 const CSSValueList& valueList = tempList ? *tempList : toCSSValueList(value)
; | 110 const CSSValueList& valueList = tempList ? *tempList : toCSSValueList(value)
; |
111 | 111 |
112 const size_t length = valueList.length(); | 112 const size_t length = valueList.length(); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 DCHECK_GT(length, 0U); | 146 DCHECK_GT(length, 0U); |
147 const NonInterpolableList& nonInterpolableList = toNonInterpolableList(*nonI
nterpolableValue); | 147 const NonInterpolableList& nonInterpolableList = toNonInterpolableList(*nonI
nterpolableValue); |
148 DCHECK_EQ(nonInterpolableList.length(), length); | 148 DCHECK_EQ(nonInterpolableList.length(), length); |
149 StyleImageList imageList(length); | 149 StyleImageList imageList(length); |
150 for (size_t i = 0; i < length; i++) | 150 for (size_t i = 0; i < length; i++) |
151 imageList[i] = CSSImageInterpolationType::resolveStyleImage(cssProperty(
), *interpolableList.get(i), nonInterpolableList.get(i), environment.state()); | 151 imageList[i] = CSSImageInterpolationType::resolveStyleImage(cssProperty(
), *interpolableList.get(i), nonInterpolableList.get(i), environment.state()); |
152 ImageListPropertyFunctions::setImageList(cssProperty(), *environment.state()
.style(), imageList); | 152 ImageListPropertyFunctions::setImageList(cssProperty(), *environment.state()
.style(), imageList); |
153 } | 153 } |
154 | 154 |
155 } // namespace blink | 155 } // namespace blink |
OLD | NEW |