| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/cssom/CSSUnparsedValue.h" | 5 #include "core/css/cssom/CSSUnparsedValue.h" |
| 6 | 6 |
| 7 #include "core/css/cssom/CSSStyleVariableReferenceValue.h" | 7 #include "core/css/cssom/CSSStyleVariableReferenceValue.h" |
| 8 #include "core/css/parser/CSSTokenizer.h" | 8 #include "core/css/parser/CSSTokenizer.h" |
| 9 #include "wtf/text/StringBuilder.h" | 9 #include "wtf/text/StringBuilder.h" |
| 10 | 10 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 variableReference); | 58 variableReference); |
| 59 } | 59 } |
| 60 | 60 |
| 61 HeapVector<StringOrCSSVariableReferenceValue> parserTokenRangeToFragments( | 61 HeapVector<StringOrCSSVariableReferenceValue> parserTokenRangeToFragments( |
| 62 CSSParserTokenRange range) { | 62 CSSParserTokenRange range) { |
| 63 HeapVector<StringOrCSSVariableReferenceValue> fragments; | 63 HeapVector<StringOrCSSVariableReferenceValue> fragments; |
| 64 StringBuilder builder; | 64 StringBuilder builder; |
| 65 while (!range.atEnd()) { | 65 while (!range.atEnd()) { |
| 66 if (range.peek().functionId() == CSSValueVar) { | 66 if (range.peek().functionId() == CSSValueVar) { |
| 67 if (!builder.isEmpty()) { | 67 if (!builder.isEmpty()) { |
| 68 fragments.append( | 68 fragments.push_back( |
| 69 StringOrCSSVariableReferenceValue::fromString(builder.toString())); | 69 StringOrCSSVariableReferenceValue::fromString(builder.toString())); |
| 70 builder.clear(); | 70 builder.clear(); |
| 71 } | 71 } |
| 72 CSSParserTokenRange block = range.consumeBlock(); | 72 CSSParserTokenRange block = range.consumeBlock(); |
| 73 StringView variableName = findVariableName(block); | 73 StringView variableName = findVariableName(block); |
| 74 block.consumeWhitespace(); | 74 block.consumeWhitespace(); |
| 75 if (block.peek().type() == CSSParserTokenType::CommaToken) | 75 if (block.peek().type() == CSSParserTokenType::CommaToken) |
| 76 block.consume(); | 76 block.consume(); |
| 77 fragments.append(variableReferenceValue( | 77 fragments.push_back(variableReferenceValue( |
| 78 variableName, parserTokenRangeToFragments(block))); | 78 variableName, parserTokenRangeToFragments(block))); |
| 79 } else { | 79 } else { |
| 80 range.consume().serialize(builder); | 80 range.consume().serialize(builder); |
| 81 } | 81 } |
| 82 } | 82 } |
| 83 if (!builder.isEmpty()) { | 83 if (!builder.isEmpty()) { |
| 84 fragments.append( | 84 fragments.push_back( |
| 85 StringOrCSSVariableReferenceValue::fromString(builder.toString())); | 85 StringOrCSSVariableReferenceValue::fromString(builder.toString())); |
| 86 } | 86 } |
| 87 return fragments; | 87 return fragments; |
| 88 } | 88 } |
| 89 | 89 |
| 90 } // namespace | 90 } // namespace |
| 91 | 91 |
| 92 ValueIterable<StringOrCSSVariableReferenceValue>::IterationSource* | 92 ValueIterable<StringOrCSSVariableReferenceValue>::IterationSource* |
| 93 CSSUnparsedValue::startIteration(ScriptState*, ExceptionState&) { | 93 CSSUnparsedValue::startIteration(ScriptState*, ExceptionState&) { |
| 94 return new UnparsedValueIterationSource(this); | 94 return new UnparsedValueIterationSource(this); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 117 } | 117 } |
| 118 } | 118 } |
| 119 | 119 |
| 120 CSSTokenizer tokenizer(tokens.toString()); | 120 CSSTokenizer tokenizer(tokens.toString()); |
| 121 return CSSVariableReferenceValue::create(CSSVariableData::create( | 121 return CSSVariableReferenceValue::create(CSSVariableData::create( |
| 122 tokenizer.tokenRange(), false /* isAnimationTainted */, | 122 tokenizer.tokenRange(), false /* isAnimationTainted */, |
| 123 true /* needsVariableResolution */)); | 123 true /* needsVariableResolution */)); |
| 124 } | 124 } |
| 125 | 125 |
| 126 } // namespace blink | 126 } // namespace blink |
| OLD | NEW |