Changeset 207677 in webkit
- Timestamp:
- Oct 21, 2016 9:35:09 AM (7 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r207676 r207677 1 2016-10-21 Dave Hyatt <hyatt@apple.com> 2 3 [CSS Parser] Add support for @-webkit-region rules 4 https://bugs.webkit.org/show_bug.cgi?id=163787 5 6 Reviewed by Zalan Bujtas. 7 8 * css/StyleRule.cpp: 9 (WebCore::StyleRuleRegion::StyleRuleRegion): 10 * css/StyleRule.h: 11 * css/parser/CSSAtRuleID.cpp: 12 (WebCore::cssAtRuleID): 13 * css/parser/CSSAtRuleID.h: 14 * css/parser/CSSParserImpl.cpp: 15 (WebCore::CSSParserImpl::consumeAtRule): 16 (WebCore::CSSParserImpl::consumePageRule): 17 (WebCore::CSSParserImpl::consumeRegionRule): 18 * css/parser/CSSParserImpl.h: 19 1 20 2016-10-21 David Kilzer <ddkilzer@apple.com> 2 21 -
trunk/Source/WebCore/css/StyleRule.cpp
r205790 r207677 372 372 } 373 373 374 StyleRuleRegion::StyleRuleRegion(CSSSelectorList& selectors, Vector<RefPtr<StyleRuleBase>>& adoptRules) 375 : StyleRuleGroup(Region, adoptRules) 376 , m_selectorList(WTFMove(selectors)) 377 { 378 } 379 374 380 StyleRuleRegion::StyleRuleRegion(const StyleRuleRegion& o) 375 381 : StyleRuleGroup(o) -
trunk/Source/WebCore/css/StyleRule.h
r205790 r207677 237 237 return adoptRef(*new StyleRuleRegion(selectors, adoptRules)); 238 238 } 239 239 240 static Ref<StyleRuleRegion> create(CSSSelectorList& selectors, Vector<RefPtr<StyleRuleBase>>& adoptRules) 241 { 242 return adoptRef(*new StyleRuleRegion(selectors, adoptRules)); 243 } 244 240 245 const CSSSelectorList& selectorList() const { return m_selectorList; } 241 246 … … 244 249 private: 245 250 StyleRuleRegion(Vector<std::unique_ptr<CSSParserSelector>>*, Vector<RefPtr<StyleRuleBase>>& adoptRules); 251 StyleRuleRegion(CSSSelectorList&, Vector<RefPtr<StyleRuleBase>>&); 246 252 StyleRuleRegion(const StyleRuleRegion&); 247 253 -
trunk/Source/WebCore/css/parser/CSSAtRuleID.cpp
r205869 r207677 57 57 if (equalIgnoringASCIICase(name, "apply")) 58 58 return CSSAtRuleApply; 59 #if ENABLE(CSS_REGIONS) 60 if (equalIgnoringASCIICase(name, "-webkit-region")) 61 return CSSAtRuleWebkitRegion; 62 #endif 59 63 return CSSAtRuleInvalid; 60 64 } -
trunk/Source/WebCore/css/parser/CSSAtRuleID.h
r205550 r207677 48 48 CSSAtRuleWebkitKeyframes = 10, 49 49 CSSAtRuleApply = 11, 50 CSSAtRuleWebkitRegion = 12 50 51 }; 51 52 -
trunk/Source/WebCore/css/parser/CSSParserImpl.cpp
r207479 r207677 423 423 case CSSAtRulePage: 424 424 return consumePageRule(prelude, block); 425 #if ENABLE(CSS_REGIONS) 426 case CSSAtRuleWebkitRegion: 427 return consumeRegionRule(prelude, block); 428 #endif 425 429 default: 426 430 return nullptr; // Parse error, unrecognised at-rule with block … … 635 639 return page; 636 640 } 641 642 #if ENABLE(CSS_REGIONS) 643 RefPtr<StyleRuleRegion> CSSParserImpl::consumeRegionRule(CSSParserTokenRange prelude, CSSParserTokenRange block) 644 { 645 CSSSelectorList selectorList = CSSSelectorParser::parseSelector(prelude, m_context, m_styleSheet.get()); 646 if (!selectorList.isValid()) 647 return nullptr; // Parse error, invalid selector list 648 649 if (m_observerWrapper) { 650 m_observerWrapper->observer().startRuleHeader(StyleRule::Region, m_observerWrapper->startOffset(prelude)); 651 m_observerWrapper->observer().endRuleHeader(m_observerWrapper->endOffset(prelude)); 652 m_observerWrapper->observer().startRuleBody(m_observerWrapper->previousTokenStartOffset(block)); 653 } 654 655 Vector<RefPtr<StyleRuleBase>> rules; 656 consumeRuleList(block, RegularRuleList, [&rules](RefPtr<StyleRuleBase> rule) { 657 rules.append(rule); 658 }); 659 660 if (m_observerWrapper) 661 m_observerWrapper->observer().endRuleBody(m_observerWrapper->endOffset(block)); 662 663 return StyleRuleRegion::create(selectorList, rules); 664 665 } 666 #endif 637 667 638 668 // FIXME-NEWPARSER: Support "apply" -
trunk/Source/WebCore/css/parser/CSSParserImpl.h
r205790 r207677 124 124 RefPtr<StyleRuleKeyframes> consumeKeyframesRule(bool webkitPrefixed, CSSParserTokenRange prelude, CSSParserTokenRange block); 125 125 RefPtr<StyleRulePage> consumePageRule(CSSParserTokenRange prelude, CSSParserTokenRange block); 126 #if ENABLE(CSS_REGIONS) 127 RefPtr<StyleRuleRegion> consumeRegionRule(CSSParserTokenRange prelude, CSSParserTokenRange block); 128 #endif 126 129 // Updates m_parsedProperties 127 130
Note: See TracChangeset
for help on using the changeset viewer.