| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/parser/CSSParserImpl.h" | 5 #include "core/css/parser/CSSParserImpl.h" |
| 6 | 6 |
| 7 #include "core/css/CSSCustomIdentValue.h" | 7 #include "core/css/CSSCustomIdentValue.h" |
| 8 #include "core/css/CSSCustomPropertyDeclaration.h" | 8 #include "core/css/CSSCustomPropertyDeclaration.h" |
| 9 #include "core/css/CSSKeyframesRule.h" | 9 #include "core/css/CSSKeyframesRule.h" |
| 10 #include "core/css/CSSStyleSheet.h" | 10 #include "core/css/CSSStyleSheet.h" |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 215 if (selector->pseudoType() == CSSSelector::PseudoUnknown) | 215 if (selector->pseudoType() == CSSSelector::PseudoUnknown) |
| 216 return CSSSelectorList(); | 216 return CSSSelectorList(); |
| 217 } | 217 } |
| 218 if (!typeSelector.isNull()) { | 218 if (!typeSelector.isNull()) { |
| 219 selector->prependTagSelector(QualifiedName(nullAtom, typeSelector, s
tyleSheet->defaultNamespace())); | 219 selector->prependTagSelector(QualifiedName(nullAtom, typeSelector, s
tyleSheet->defaultNamespace())); |
| 220 } | 220 } |
| 221 } | 221 } |
| 222 | 222 |
| 223 selector->setForPage(); | 223 selector->setForPage(); |
| 224 Vector<OwnPtr<CSSParserSelector>> selectorVector; | 224 Vector<OwnPtr<CSSParserSelector>> selectorVector; |
| 225 selectorVector.append(selector.release()); | 225 selectorVector.append(std::move(selector)); |
| 226 CSSSelectorList selectorList = CSSSelectorList::adoptSelectorVector(selector
Vector); | 226 CSSSelectorList selectorList = CSSSelectorList::adoptSelectorVector(selector
Vector); |
| 227 return selectorList; | 227 return selectorList; |
| 228 } | 228 } |
| 229 | 229 |
| 230 ImmutableStylePropertySet* CSSParserImpl::parseCustomPropertySet(CSSParserTokenR
ange range) | 230 ImmutableStylePropertySet* CSSParserImpl::parseCustomPropertySet(CSSParserTokenR
ange range) |
| 231 { | 231 { |
| 232 range.consumeWhitespace(); | 232 range.consumeWhitespace(); |
| 233 if (range.peek().type() != LeftBraceToken) | 233 if (range.peek().type() != LeftBraceToken) |
| 234 return nullptr; | 234 return nullptr; |
| 235 CSSParserTokenRange block = range.consumeBlock(); | 235 CSSParserTokenRange block = range.consumeBlock(); |
| (...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 649 OwnPtr<Vector<double>> keyList = consumeKeyframeKeyList(prelude); | 649 OwnPtr<Vector<double>> keyList = consumeKeyframeKeyList(prelude); |
| 650 if (!keyList) | 650 if (!keyList) |
| 651 return nullptr; | 651 return nullptr; |
| 652 | 652 |
| 653 if (m_observerWrapper) { | 653 if (m_observerWrapper) { |
| 654 m_observerWrapper->observer().startRuleHeader(StyleRule::Keyframe, m_obs
erverWrapper->startOffset(prelude)); | 654 m_observerWrapper->observer().startRuleHeader(StyleRule::Keyframe, m_obs
erverWrapper->startOffset(prelude)); |
| 655 m_observerWrapper->observer().endRuleHeader(m_observerWrapper->endOffset
(prelude)); | 655 m_observerWrapper->observer().endRuleHeader(m_observerWrapper->endOffset
(prelude)); |
| 656 } | 656 } |
| 657 | 657 |
| 658 consumeDeclarationList(block, StyleRule::Keyframe); | 658 consumeDeclarationList(block, StyleRule::Keyframe); |
| 659 return StyleRuleKeyframe::create(keyList.release(), createStylePropertySet(m
_parsedProperties, m_context.mode())); | 659 return StyleRuleKeyframe::create(std::move(keyList), createStylePropertySet(
m_parsedProperties, m_context.mode())); |
| 660 } | 660 } |
| 661 | 661 |
| 662 static void observeSelectors(CSSParserObserverWrapper& wrapper, CSSParserTokenRa
nge selectors) | 662 static void observeSelectors(CSSParserObserverWrapper& wrapper, CSSParserTokenRa
nge selectors) |
| 663 { | 663 { |
| 664 // This is easier than hooking into the CSSSelectorParser | 664 // This is easier than hooking into the CSSSelectorParser |
| 665 selectors.consumeWhitespace(); | 665 selectors.consumeWhitespace(); |
| 666 CSSParserTokenRange originalRange = selectors; | 666 CSSParserTokenRange originalRange = selectors; |
| 667 wrapper.observer().startRuleHeader(StyleRule::Style, wrapper.startOffset(ori
ginalRange)); | 667 wrapper.observer().startRuleHeader(StyleRule::Style, wrapper.startOffset(ori
ginalRange)); |
| 668 | 668 |
| 669 while (!selectors.atEnd()) { | 669 while (!selectors.atEnd()) { |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 811 const CSSParserToken& token = range.consumeIncludingWhitespace(); | 811 const CSSParserToken& token = range.consumeIncludingWhitespace(); |
| 812 if (token.type() == PercentageToken && token.numericValue() >= 0 && toke
n.numericValue() <= 100) | 812 if (token.type() == PercentageToken && token.numericValue() >= 0 && toke
n.numericValue() <= 100) |
| 813 result->append(token.numericValue() / 100); | 813 result->append(token.numericValue() / 100); |
| 814 else if (token.type() == IdentToken && token.valueEqualsIgnoringASCIICas
e("from")) | 814 else if (token.type() == IdentToken && token.valueEqualsIgnoringASCIICas
e("from")) |
| 815 result->append(0); | 815 result->append(0); |
| 816 else if (token.type() == IdentToken && token.valueEqualsIgnoringASCIICas
e("to")) | 816 else if (token.type() == IdentToken && token.valueEqualsIgnoringASCIICas
e("to")) |
| 817 result->append(1); | 817 result->append(1); |
| 818 else | 818 else |
| 819 return nullptr; // Parser error, invalid value in keyframe selector | 819 return nullptr; // Parser error, invalid value in keyframe selector |
| 820 if (range.atEnd()) | 820 if (range.atEnd()) |
| 821 return result.release(); | 821 return result; |
| 822 if (range.consume().type() != CommaToken) | 822 if (range.consume().type() != CommaToken) |
| 823 return nullptr; // Parser error | 823 return nullptr; // Parser error |
| 824 } | 824 } |
| 825 } | 825 } |
| 826 | 826 |
| 827 } // namespace blink | 827 } // namespace blink |
| OLD | NEW |