Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(339)

Side by Side Diff: Source/core/css/parser/BisonCSSParser-in.cpp

Issue 951213004: Make CSSRuleSourceData use the CSSRule Type enum (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Use StyleRule::Type Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/core/css/parser/BisonCSSParser.h ('k') | Source/core/css/parser/CSSGrammar.y » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « Source/core/css/parser/BisonCSSParser.h ('k') | Source/core/css/parser/CSSGrammar.y » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698