OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2003 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 2003 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) | 3 * Copyright (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) |
4 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. | 4 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc.
All rights reserved. |
5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> | 5 * Copyright (C) 2007 Nicholas Shanks <webkit@nickshanks.com> |
6 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> | 6 * Copyright (C) 2008 Eric Seidel <eric@webkit.org> |
7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) | 7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) |
8 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. | 8 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. |
9 * Copyright (C) 2012 Intel Corporation. All rights reserved. | 9 * Copyright (C) 2012 Intel Corporation. All rights reserved. |
10 * | 10 * |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 , m_styleSheet(nullptr) | 107 , m_styleSheet(nullptr) |
108 , m_supportsCondition(false) | 108 , m_supportsCondition(false) |
109 , m_selectorListForParseSelector(0) | 109 , m_selectorListForParseSelector(0) |
110 , m_numParsedPropertiesBeforeMarginBox(INVALID_NUM_PARSED_PROPERTIES) | 110 , m_numParsedPropertiesBeforeMarginBox(INVALID_NUM_PARSED_PROPERTIES) |
111 , m_hadSyntacticallyValidCSSRule(false) | 111 , m_hadSyntacticallyValidCSSRule(false) |
112 , m_logErrors(false) | 112 , m_logErrors(false) |
113 , m_ignoreErrors(false) | 113 , m_ignoreErrors(false) |
114 , m_defaultNamespace(starAtom) | 114 , m_defaultNamespace(starAtom) |
115 , m_observer(0) | 115 , m_observer(0) |
116 , m_source(0) | 116 , m_source(0) |
117 , m_ruleHeaderType(CSSRuleSourceData::UNKNOWN_RULE) | 117 , m_ruleHeaderType(StyleRule::Unknown) |
118 , m_allowImportRules(true) | 118 , m_allowImportRules(true) |
119 , m_allowNamespaceDeclarations(true) | 119 , m_allowNamespaceDeclarations(true) |
120 , m_inViewport(false) | 120 , m_inViewport(false) |
121 , m_tokenizer(*this) | 121 , m_tokenizer(*this) |
122 { | 122 { |
123 #if YYDEBUG > 0 | 123 #if YYDEBUG > 0 |
124 cssyydebug = 1; | 124 cssyydebug = 1; |
125 #endif | 125 #endif |
126 } | 126 } |
127 | 127 |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
264 | 264 |
265 | 265 |
266 bool BisonCSSParser::parseDeclaration(MutableStylePropertySet* declaration, cons
t String& string, CSSParserObserver* observer, StyleSheetContents* contextStyleS
heet) | 266 bool BisonCSSParser::parseDeclaration(MutableStylePropertySet* declaration, cons
t String& string, CSSParserObserver* observer, StyleSheetContents* contextStyleS
heet) |
267 { | 267 { |
268 setStyleSheet(contextStyleSheet); | 268 setStyleSheet(contextStyleSheet); |
269 | 269 |
270 TemporaryChange<CSSParserObserver*> scopedObsever(m_observer, observer); | 270 TemporaryChange<CSSParserObserver*> scopedObsever(m_observer, observer); |
271 | 271 |
272 setupParser("@-internal-decls ", string, ""); | 272 setupParser("@-internal-decls ", string, ""); |
273 if (m_observer) { | 273 if (m_observer) { |
274 m_observer->startRuleHeader(CSSRuleSourceData::STYLE_RULE, 0); | 274 m_observer->startRuleHeader(StyleRule::Style, 0); |
275 m_observer->endRuleHeader(1); | 275 m_observer->endRuleHeader(1); |
276 m_observer->startRuleBody(0); | 276 m_observer->startRuleBody(0); |
277 } | 277 } |
278 | 278 |
279 { | 279 { |
280 StyleDeclarationScope scope(this, declaration); | 280 StyleDeclarationScope scope(this, declaration); |
281 cssyyparse(this); | 281 cssyyparse(this); |
282 } | 282 } |
283 | 283 |
284 m_rule = nullptr; | 284 m_rule = nullptr; |
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
589 m_parsedRules.append(rule.release()); | 589 m_parsedRules.append(rule.release()); |
590 | 590 |
591 return result; | 591 return result; |
592 } | 592 } |
593 | 593 |
594 void BisonCSSParser::markSupportsRuleHeaderStart() | 594 void BisonCSSParser::markSupportsRuleHeaderStart() |
595 { | 595 { |
596 if (!m_supportsRuleDataStack) | 596 if (!m_supportsRuleDataStack) |
597 m_supportsRuleDataStack = adoptPtrWillBeNoop(new RuleSourceDataList()); | 597 m_supportsRuleDataStack = adoptPtrWillBeNoop(new RuleSourceDataList()); |
598 | 598 |
599 RefPtrWillBeRawPtr<CSSRuleSourceData> data = CSSRuleSourceData::create(CSSRu
leSourceData::SUPPORTS_RULE); | 599 RefPtrWillBeRawPtr<CSSRuleSourceData> data = CSSRuleSourceData::create(Style
Rule::Supports); |
600 data->ruleHeaderRange.start = m_tokenizer.tokenStartOffset(); | 600 data->ruleHeaderRange.start = m_tokenizer.tokenStartOffset(); |
601 m_supportsRuleDataStack->append(data); | 601 m_supportsRuleDataStack->append(data); |
602 } | 602 } |
603 | 603 |
604 void BisonCSSParser::markSupportsRuleHeaderEnd() | 604 void BisonCSSParser::markSupportsRuleHeaderEnd() |
605 { | 605 { |
606 ASSERT(m_supportsRuleDataStack && !m_supportsRuleDataStack->isEmpty()); | 606 ASSERT(m_supportsRuleDataStack && !m_supportsRuleDataStack->isEmpty()); |
607 | 607 |
608 if (m_tokenizer.is8BitSource()) | 608 if (m_tokenizer.is8BitSource()) |
609 m_supportsRuleDataStack->last()->ruleHeaderRange.end = m_tokenizer.token
Start<LChar>() - m_tokenizer.m_dataStart8.get(); | 609 m_supportsRuleDataStack->last()->ruleHeaderRange.end = m_tokenizer.token
Start<LChar>() - m_tokenizer.m_dataStart8.get(); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
664 size_t length = token.length(); | 664 size_t length = token.length(); |
665 if (token.is8Bit()) { | 665 if (token.is8Bit()) { |
666 makeLower(token.characters8(), const_cast<LChar*>(token.characters8()),
length); | 666 makeLower(token.characters8(), const_cast<LChar*>(token.characters8()),
length); |
667 } else { | 667 } else { |
668 makeLower(token.characters16(), const_cast<UChar*>(token.characters16())
, length); | 668 makeLower(token.characters16(), const_cast<UChar*>(token.characters16())
, length); |
669 } | 669 } |
670 } | 670 } |
671 | 671 |
672 void BisonCSSParser::endInvalidRuleHeader() | 672 void BisonCSSParser::endInvalidRuleHeader() |
673 { | 673 { |
674 if (m_ruleHeaderType == CSSRuleSourceData::UNKNOWN_RULE) | 674 if (m_ruleHeaderType == StyleRule::Unknown) |
675 return; | 675 return; |
676 | 676 |
677 CSSParserLocation location; | 677 CSSParserLocation location; |
678 location.lineNumber = m_tokenizer.m_lineNumber; | 678 location.lineNumber = m_tokenizer.m_lineNumber; |
679 location.offset = m_ruleHeaderStartOffset; | 679 location.offset = m_ruleHeaderStartOffset; |
680 if (m_tokenizer.is8BitSource()) | 680 if (m_tokenizer.is8BitSource()) |
681 location.token.init(m_tokenizer.m_dataStart8.get() + m_ruleHeaderStartOf
fset, 0); | 681 location.token.init(m_tokenizer.m_dataStart8.get() + m_ruleHeaderStartOf
fset, 0); |
682 else | 682 else |
683 location.token.init(m_tokenizer.m_dataStart16.get() + m_ruleHeaderStartO
ffset, 0); | 683 location.token.init(m_tokenizer.m_dataStart16.get() + m_ruleHeaderStartO
ffset, 0); |
684 | 684 |
685 reportError(location, m_ruleHeaderType == CSSRuleSourceData::STYLE_RULE ? In
validSelectorCSSError : InvalidRuleCSSError); | 685 reportError(location, m_ruleHeaderType == StyleRule::Style ? InvalidSelector
CSSError : InvalidRuleCSSError); |
686 | 686 |
687 endRuleHeader(); | 687 endRuleHeader(); |
688 } | 688 } |
689 | 689 |
690 void BisonCSSParser::reportError(const CSSParserLocation&, CSSParserError) | 690 void BisonCSSParser::reportError(const CSSParserLocation&, CSSParserError) |
691 { | 691 { |
692 // FIXME: error reporting temporatily disabled. | 692 // FIXME: error reporting temporatily disabled. |
693 } | 693 } |
694 | 694 |
695 StyleRuleKeyframes* BisonCSSParser::createKeyframesRule(const String& name, Pass
OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<StyleRuleKeyframe> > > po
pKeyframes, bool isPrefixed) | 695 StyleRuleKeyframes* BisonCSSParser::createKeyframesRule(const String& name, Pass
OwnPtrWillBeRawPtr<WillBeHeapVector<RefPtrWillBeMember<StyleRuleKeyframe> > > po
pKeyframes, bool isPrefixed) |
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
984 void BisonCSSParser::endRule(bool valid) | 984 void BisonCSSParser::endRule(bool valid) |
985 { | 985 { |
986 if (!m_observer) | 986 if (!m_observer) |
987 return; | 987 return; |
988 | 988 |
989 if (m_ruleHasHeader) | 989 if (m_ruleHasHeader) |
990 m_observer->endRuleBody(m_tokenizer.safeUserStringTokenOffset(), !valid)
; | 990 m_observer->endRuleBody(m_tokenizer.safeUserStringTokenOffset(), !valid)
; |
991 m_ruleHasHeader = true; | 991 m_ruleHasHeader = true; |
992 } | 992 } |
993 | 993 |
994 void BisonCSSParser::startRuleHeader(CSSRuleSourceData::Type ruleType) | 994 void BisonCSSParser::startRuleHeader(StyleRule::Type ruleType) |
995 { | 995 { |
996 resumeErrorLogging(); | 996 resumeErrorLogging(); |
997 m_ruleHeaderType = ruleType; | 997 m_ruleHeaderType = ruleType; |
998 m_ruleHeaderStartOffset = m_tokenizer.safeUserStringTokenOffset(); | 998 m_ruleHeaderStartOffset = m_tokenizer.safeUserStringTokenOffset(); |
999 m_ruleHeaderStartLineNumber = m_tokenizer.m_tokenStartLineNumber; | 999 m_ruleHeaderStartLineNumber = m_tokenizer.m_tokenStartLineNumber; |
1000 if (m_observer) { | 1000 if (m_observer) { |
1001 ASSERT(!m_ruleHasHeader); | 1001 ASSERT(!m_ruleHasHeader); |
1002 m_observer->startRuleHeader(ruleType, m_ruleHeaderStartOffset); | 1002 m_observer->startRuleHeader(ruleType, m_ruleHeaderStartOffset); |
1003 m_ruleHasHeader = true; | 1003 m_ruleHasHeader = true; |
1004 } | 1004 } |
1005 } | 1005 } |
1006 | 1006 |
1007 void BisonCSSParser::endRuleHeader() | 1007 void BisonCSSParser::endRuleHeader() |
1008 { | 1008 { |
1009 ASSERT(m_ruleHeaderType != CSSRuleSourceData::UNKNOWN_RULE); | 1009 ASSERT(m_ruleHeaderType != StyleRule::Unknown); |
1010 m_ruleHeaderType = CSSRuleSourceData::UNKNOWN_RULE; | 1010 m_ruleHeaderType = StyleRule::Unknown; |
1011 if (m_observer) { | 1011 if (m_observer) { |
1012 ASSERT(m_ruleHasHeader); | 1012 ASSERT(m_ruleHasHeader); |
1013 m_observer->endRuleHeader(m_tokenizer.safeUserStringTokenOffset()); | 1013 m_observer->endRuleHeader(m_tokenizer.safeUserStringTokenOffset()); |
1014 } | 1014 } |
1015 } | 1015 } |
1016 | 1016 |
1017 void BisonCSSParser::startSelector() | 1017 void BisonCSSParser::startSelector() |
1018 { | 1018 { |
1019 if (m_observer) | 1019 if (m_observer) |
1020 m_observer->startSelector(m_tokenizer.safeUserStringTokenOffset()); | 1020 m_observer->startSelector(m_tokenizer.safeUserStringTokenOffset()); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1059 rule->setProperties(createStylePropertySet()); | 1059 rule->setProperties(createStylePropertySet()); |
1060 clearProperties(); | 1060 clearProperties(); |
1061 | 1061 |
1062 StyleRuleViewport* result = rule.get(); | 1062 StyleRuleViewport* result = rule.get(); |
1063 m_parsedRules.append(rule.release()); | 1063 m_parsedRules.append(rule.release()); |
1064 | 1064 |
1065 return result; | 1065 return result; |
1066 } | 1066 } |
1067 | 1067 |
1068 } | 1068 } |
OLD | NEW |