| 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 |