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 536 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
547 return nullptr; // Parser error; @viewport prelude should be empty | 547 return nullptr; // Parser error; @viewport prelude should be empty |
548 | 548 |
549 if (m_observerWrapper) { | 549 if (m_observerWrapper) { |
550 unsigned endOffset = m_observerWrapper->endOffset(prelude); | 550 unsigned endOffset = m_observerWrapper->endOffset(prelude); |
551 m_observerWrapper->observer().startRuleHeader(StyleRule::Viewport, m_obs
erverWrapper->startOffset(prelude)); | 551 m_observerWrapper->observer().startRuleHeader(StyleRule::Viewport, m_obs
erverWrapper->startOffset(prelude)); |
552 m_observerWrapper->observer().endRuleHeader(endOffset); | 552 m_observerWrapper->observer().endRuleHeader(endOffset); |
553 m_observerWrapper->observer().startRuleBody(endOffset); | 553 m_observerWrapper->observer().startRuleBody(endOffset); |
554 m_observerWrapper->observer().endRuleBody(endOffset); | 554 m_observerWrapper->observer().endRuleBody(endOffset); |
555 } | 555 } |
556 | 556 |
| 557 if (m_styleSheet) |
| 558 m_styleSheet->setHasViewportRule(); |
| 559 |
557 consumeDeclarationList(block, StyleRule::Viewport); | 560 consumeDeclarationList(block, StyleRule::Viewport); |
558 return StyleRuleViewport::create(createStylePropertySet(m_parsedProperties,
CSSViewportRuleMode)); | 561 return StyleRuleViewport::create(createStylePropertySet(m_parsedProperties,
CSSViewportRuleMode)); |
559 } | 562 } |
560 | 563 |
561 StyleRuleFontFace* CSSParserImpl::consumeFontFaceRule(CSSParserTokenRange prelud
e, CSSParserTokenRange block) | 564 StyleRuleFontFace* CSSParserImpl::consumeFontFaceRule(CSSParserTokenRange prelud
e, CSSParserTokenRange block) |
562 { | 565 { |
563 prelude.consumeWhitespace(); | 566 prelude.consumeWhitespace(); |
564 if (!prelude.atEnd()) | 567 if (!prelude.atEnd()) |
565 return nullptr; // Parse error; @font-face prelude should be empty | 568 return nullptr; // Parse error; @font-face prelude should be empty |
566 | 569 |
567 if (m_observerWrapper) { | 570 if (m_observerWrapper) { |
568 unsigned endOffset = m_observerWrapper->endOffset(prelude); | 571 unsigned endOffset = m_observerWrapper->endOffset(prelude); |
569 m_observerWrapper->observer().startRuleHeader(StyleRule::FontFace, m_obs
erverWrapper->startOffset(prelude)); | 572 m_observerWrapper->observer().startRuleHeader(StyleRule::FontFace, m_obs
erverWrapper->startOffset(prelude)); |
570 m_observerWrapper->observer().endRuleHeader(endOffset); | 573 m_observerWrapper->observer().endRuleHeader(endOffset); |
571 m_observerWrapper->observer().startRuleBody(endOffset); | 574 m_observerWrapper->observer().startRuleBody(endOffset); |
572 m_observerWrapper->observer().endRuleBody(endOffset); | 575 m_observerWrapper->observer().endRuleBody(endOffset); |
573 } | 576 } |
574 | 577 |
575 if (m_styleSheet) | 578 if (m_styleSheet) |
576 m_styleSheet->setHasFontFaceRule(true); | 579 m_styleSheet->setHasFontFaceRule(); |
577 | 580 |
578 consumeDeclarationList(block, StyleRule::FontFace); | 581 consumeDeclarationList(block, StyleRule::FontFace); |
579 return StyleRuleFontFace::create(createStylePropertySet(m_parsedProperties,
m_context.mode())); | 582 return StyleRuleFontFace::create(createStylePropertySet(m_parsedProperties,
m_context.mode())); |
580 } | 583 } |
581 | 584 |
582 StyleRuleKeyframes* CSSParserImpl::consumeKeyframesRule(bool webkitPrefixed, CSS
ParserTokenRange prelude, CSSParserTokenRange block) | 585 StyleRuleKeyframes* CSSParserImpl::consumeKeyframesRule(bool webkitPrefixed, CSS
ParserTokenRange prelude, CSSParserTokenRange block) |
583 { | 586 { |
584 prelude.consumeWhitespace(); | 587 prelude.consumeWhitespace(); |
585 CSSParserTokenRange rangeCopy = prelude; // For inspector callbacks | 588 CSSParserTokenRange rangeCopy = prelude; // For inspector callbacks |
586 const CSSParserToken& nameToken = prelude.consumeIncludingWhitespace(); | 589 const CSSParserToken& nameToken = prelude.consumeIncludingWhitespace(); |
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
818 else | 821 else |
819 return nullptr; // Parser error, invalid value in keyframe selector | 822 return nullptr; // Parser error, invalid value in keyframe selector |
820 if (range.atEnd()) | 823 if (range.atEnd()) |
821 return result; | 824 return result; |
822 if (range.consume().type() != CommaToken) | 825 if (range.consume().type() != CommaToken) |
823 return nullptr; // Parser error | 826 return nullptr; // Parser error |
824 } | 827 } |
825 } | 828 } |
826 | 829 |
827 } // namespace blink | 830 } // namespace blink |
OLD | NEW |