Chromium Code Reviews| Index: third_party/WebKit/Source/core/css/resolver/CSSVariableResolver.h |
| diff --git a/third_party/WebKit/Source/core/css/resolver/CSSVariableResolver.h b/third_party/WebKit/Source/core/css/resolver/CSSVariableResolver.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..b961c65b049bf769a250d802a85dd364d122230e |
| --- /dev/null |
| +++ b/third_party/WebKit/Source/core/css/resolver/CSSVariableResolver.h |
| @@ -0,0 +1,40 @@ |
| +// Copyright 2015 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. |
| + |
| +#ifndef CSSVariableResolver_h |
| +#define CSSVariableResolver_h |
| + |
| +#include "core/CSSPropertyNames.h" |
| +#include "core/css/parser/CSSParserToken.h" |
| +#include "wtf/HashSet.h" |
| +#include "wtf/text/AtomicString.h" |
| +#include "wtf/text/AtomicStringHash.h" |
| + |
| +namespace blink { |
| + |
| +class CSSPrimitiveValue; |
| +class StyleResolverState; |
| +class StyleVariableData; |
| + |
| +// TODO(leviw): Refactor to not just use static methods, and instead have private members. |
|
Timothy Loh
2015/09/30 02:09:28
What's wrong with static methods?
|
| +class CSSVariableResolver { |
| +public: |
| + static void resolveVariableDefinitions(StyleResolverState&); |
| + static void resolveAndApplyVariableReferences(StyleResolverState&, CSSPropertyID, const CSSPrimitiveValue&); |
| + |
| +private: |
| + CSSVariableResolver(StyleVariableData*); |
| + CSSVariableResolver(StyleVariableData*, AtomicString& variable); |
| + |
| + unsigned resolveVariableTokensRecursive(Vector<CSSParserToken>&, unsigned startOffset); |
| + void resolveVariableReferencesFromTokens(Vector<CSSParserToken>& tokens); |
| + |
| + StyleVariableData* m_styleVariableData; |
| + HashSet<AtomicString> m_variablesSeen; |
| + bool m_cycleDetected; |
| +}; |
| + |
| +} // namespace blink |
| + |
| +#endif // CSSVariableResolver |