| 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/css/resolver/CSSVariableResolver.h" | 5 #include "core/css/resolver/CSSVariableResolver.h" |
| 6 | 6 |
| 7 #include "core/CSSPropertyNames.h" | 7 #include "core/CSSPropertyNames.h" |
| 8 #include "core/CSSValueKeywords.h" | 8 #include "core/CSSValueKeywords.h" |
| 9 #include "core/StyleBuilderFunctions.h" | 9 #include "core/StyleBuilderFunctions.h" |
| 10 #include "core/StylePropertyShorthand.h" | 10 #include "core/StylePropertyShorthand.h" |
| 11 #include "core/css/CSSPendingSubstitutionValue.h" | 11 #include "core/css/CSSPendingSubstitutionValue.h" |
| 12 #include "core/css/CSSUnsetValue.h" | 12 #include "core/css/CSSUnsetValue.h" |
| 13 #include "core/css/CSSVariableData.h" | 13 #include "core/css/CSSVariableData.h" |
| 14 #include "core/css/CSSVariableReferenceValue.h" | 14 #include "core/css/CSSVariableReferenceValue.h" |
| 15 #include "core/css/PropertyRegistry.h" | 15 #include "core/css/PropertyRegistry.h" |
| 16 #include "core/css/parser/CSSParserToken.h" | 16 #include "core/css/parser/CSSParserToken.h" |
| 17 #include "core/css/parser/CSSParserTokenRange.h" | 17 #include "core/css/parser/CSSParserTokenRange.h" |
| 18 #include "core/css/parser/CSSPropertyParser.h" | 18 #include "core/css/parser/CSSPropertyParser.h" |
| 19 #include "core/css/resolver/StyleBuilder.h" | 19 #include "core/css/resolver/StyleBuilder.h" |
| 20 #include "core/css/resolver/StyleBuilderConverter.h" | 20 #include "core/css/resolver/StyleBuilderConverter.h" |
| 21 #include "core/css/resolver/StyleResolverState.h" | 21 #include "core/css/resolver/StyleResolverState.h" |
| 22 #include "core/css/resolver/StyleResolverStats.h" |
| 23 #include "core/dom/StyleEngine.h" |
| 22 #include "core/style/StyleInheritedVariables.h" | 24 #include "core/style/StyleInheritedVariables.h" |
| 23 #include "core/style/StyleNonInheritedVariables.h" | 25 #include "core/style/StyleNonInheritedVariables.h" |
| 24 #include "wtf/Vector.h" | 26 #include "wtf/Vector.h" |
| 25 | 27 |
| 26 namespace blink { | 28 namespace blink { |
| 27 | 29 |
| 28 bool CSSVariableResolver::resolveFallback(CSSParserTokenRange range, | 30 bool CSSVariableResolver::resolveFallback(CSSParserTokenRange range, |
| 29 bool disallowAnimationTainted, | 31 bool disallowAnimationTainted, |
| 30 Vector<CSSParserToken>& result, | 32 Vector<CSSParserToken>& result, |
| 31 bool& resultIsAnimationTainted) { | 33 bool& resultIsAnimationTainted) { |
| (...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 282 void CSSVariableResolver::resolveVariableDefinitions( | 284 void CSSVariableResolver::resolveVariableDefinitions( |
| 283 const StyleResolverState& state) { | 285 const StyleResolverState& state) { |
| 284 StyleInheritedVariables* inheritedVariables = | 286 StyleInheritedVariables* inheritedVariables = |
| 285 state.style()->inheritedVariables(); | 287 state.style()->inheritedVariables(); |
| 286 StyleNonInheritedVariables* nonInheritedVariables = | 288 StyleNonInheritedVariables* nonInheritedVariables = |
| 287 state.style()->nonInheritedVariables(); | 289 state.style()->nonInheritedVariables(); |
| 288 if (!inheritedVariables && !nonInheritedVariables) | 290 if (!inheritedVariables && !nonInheritedVariables) |
| 289 return; | 291 return; |
| 290 | 292 |
| 291 CSSVariableResolver resolver(state); | 293 CSSVariableResolver resolver(state); |
| 294 int variableCount = 0; |
| 292 if (inheritedVariables) { | 295 if (inheritedVariables) { |
| 293 for (auto& variable : inheritedVariables->m_data) | 296 for (auto& variable : inheritedVariables->m_data) |
| 294 resolver.valueForCustomProperty(variable.key); | 297 resolver.valueForCustomProperty(variable.key); |
| 298 variableCount += inheritedVariables->m_data.size(); |
| 295 } | 299 } |
| 296 if (nonInheritedVariables) { | 300 if (nonInheritedVariables) { |
| 297 for (auto& variable : nonInheritedVariables->m_data) | 301 for (auto& variable : nonInheritedVariables->m_data) |
| 298 resolver.valueForCustomProperty(variable.key); | 302 resolver.valueForCustomProperty(variable.key); |
| 303 variableCount += nonInheritedVariables->m_data.size(); |
| 299 } | 304 } |
| 305 INCREMENT_STYLE_STATS_COUNTER(state.document().styleEngine(), |
| 306 customPropertiesApplied, variableCount); |
| 300 } | 307 } |
| 301 | 308 |
| 302 void CSSVariableResolver::computeRegisteredVariables( | 309 void CSSVariableResolver::computeRegisteredVariables( |
| 303 const StyleResolverState& state) { | 310 const StyleResolverState& state) { |
| 304 // const_cast is needed because Persistent<const ...> doesn't work properly. | 311 // const_cast is needed because Persistent<const ...> doesn't work properly. |
| 305 | 312 |
| 306 StyleInheritedVariables* inheritedVariables = | 313 StyleInheritedVariables* inheritedVariables = |
| 307 state.style()->inheritedVariables(); | 314 state.style()->inheritedVariables(); |
| 308 if (inheritedVariables) { | 315 if (inheritedVariables) { |
| 309 for (auto& variable : inheritedVariables->m_registeredData) { | 316 for (auto& variable : inheritedVariables->m_registeredData) { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 327 } | 334 } |
| 328 } | 335 } |
| 329 } | 336 } |
| 330 | 337 |
| 331 CSSVariableResolver::CSSVariableResolver(const StyleResolverState& state) | 338 CSSVariableResolver::CSSVariableResolver(const StyleResolverState& state) |
| 332 : m_inheritedVariables(state.style()->inheritedVariables()), | 339 : m_inheritedVariables(state.style()->inheritedVariables()), |
| 333 m_nonInheritedVariables(state.style()->nonInheritedVariables()), | 340 m_nonInheritedVariables(state.style()->nonInheritedVariables()), |
| 334 m_registry(state.document().propertyRegistry()) {} | 341 m_registry(state.document().propertyRegistry()) {} |
| 335 | 342 |
| 336 } // namespace blink | 343 } // namespace blink |
| OLD | NEW |