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

Side by Side Diff: third_party/WebKit/Source/core/animation/CSSVisibilityInterpolationType.cpp

Issue 2346193002: Split CSSPrimitiveValue into CSSPrimitiveValue and CSSIdentifierValue (Closed)
Patch Set: Rebase please work Created 4 years, 2 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 unified diff | Download patch
OLDNEW
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/CSSVisibilityInterpolationType.h" 5 #include "core/animation/CSSVisibilityInterpolationType.h"
6 6
7 #include "core/css/CSSPrimitiveValueMappings.h" 7 #include "core/css/CSSPrimitiveValueMappings.h"
8 #include "core/css/resolver/StyleResolverState.h" 8 #include "core/css/resolver/StyleResolverState.h"
9 #include "wtf/PtrUtil.h" 9 #include "wtf/PtrUtil.h"
10 #include <memory> 10 #include <memory>
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 { 120 {
121 if (!state.parentStyle()) 121 if (!state.parentStyle())
122 return nullptr; 122 return nullptr;
123 EVisibility inheritedVisibility = state.parentStyle()->visibility(); 123 EVisibility inheritedVisibility = state.parentStyle()->visibility();
124 conversionCheckers.append(ParentVisibilityChecker::create(inheritedVisibilit y)); 124 conversionCheckers.append(ParentVisibilityChecker::create(inheritedVisibilit y));
125 return createVisibilityValue(inheritedVisibility); 125 return createVisibilityValue(inheritedVisibility);
126 } 126 }
127 127
128 InterpolationValue CSSVisibilityInterpolationType::maybeConvertValue(const CSSVa lue& value, const StyleResolverState& state, ConversionCheckers& conversionCheck ers) const 128 InterpolationValue CSSVisibilityInterpolationType::maybeConvertValue(const CSSVa lue& value, const StyleResolverState& state, ConversionCheckers& conversionCheck ers) const
129 { 129 {
130 if (!value.isPrimitiveValue()) 130 if (!value.isIdentifierValue())
131 return nullptr; 131 return nullptr;
132 132
133 const CSSPrimitiveValue& primitiveValue = toCSSPrimitiveValue(value); 133 const CSSIdentifierValue& identifierValue = toCSSIdentifierValue(value);
134 CSSValueID keyword = primitiveValue.getValueID(); 134 CSSValueID keyword = identifierValue.getValueID();
135 135
136 switch (keyword) { 136 switch (keyword) {
137 case CSSValueHidden: 137 case CSSValueHidden:
138 case CSSValueVisible: 138 case CSSValueVisible:
139 case CSSValueCollapse: 139 case CSSValueCollapse:
140 return createVisibilityValue(primitiveValue.convertTo<EVisibility>()); 140 return createVisibilityValue(identifierValue.convertTo<EVisibility>());
141 default: 141 default:
142 return nullptr; 142 return nullptr;
143 } 143 }
144 } 144 }
145 145
146 InterpolationValue CSSVisibilityInterpolationType::maybeConvertUnderlyingValue(c onst InterpolationEnvironment& environment) const 146 InterpolationValue CSSVisibilityInterpolationType::maybeConvertUnderlyingValue(c onst InterpolationEnvironment& environment) const
147 { 147 {
148 return createVisibilityValue(environment.state().style()->visibility()); 148 return createVisibilityValue(environment.state().style()->visibility());
149 } 149 }
150 150
(...skipping 14 matching lines...) Expand all
165 165
166 void CSSVisibilityInterpolationType::apply(const InterpolableValue& interpolable Value, const NonInterpolableValue* nonInterpolableValue, InterpolationEnvironmen t& environment) const 166 void CSSVisibilityInterpolationType::apply(const InterpolableValue& interpolable Value, const NonInterpolableValue* nonInterpolableValue, InterpolationEnvironmen t& environment) const
167 { 167 {
168 // Visibility interpolation has been deferred to application time here due t o its non-linear behaviour. 168 // Visibility interpolation has been deferred to application time here due t o its non-linear behaviour.
169 double fraction = toInterpolableNumber(interpolableValue).value(); 169 double fraction = toInterpolableNumber(interpolableValue).value();
170 EVisibility visibility = toCSSVisibilityNonInterpolableValue(nonInterpolable Value)->visibility(fraction); 170 EVisibility visibility = toCSSVisibilityNonInterpolableValue(nonInterpolable Value)->visibility(fraction);
171 environment.state().style()->setVisibility(visibility); 171 environment.state().style()->setVisibility(visibility);
172 } 172 }
173 173
174 } // namespace blink 174 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698