Title: [208055] trunk/Source/WebCore
- Revision
- 208055
- Author
- [email protected]
- Date
- 2016-10-28 10:42:47 -0700 (Fri, 28 Oct 2016)
Log Message
[CSS Parser] Support the marquee properties
https://bugs.webkit.org/show_bug.cgi?id=164132
Reviewed by Zalan Bujtas.
* css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
* css/parser/CSSPropertyParser.cpp:
(WebCore::consumeWebkitMarqueeIncrement):
(WebCore::consumeWebkitMarqueeRepetition):
(WebCore::consumeWebkitMarqueeSpeed):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseShorthand):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (208054 => 208055)
--- trunk/Source/WebCore/ChangeLog 2016-10-28 17:41:55 UTC (rev 208054)
+++ trunk/Source/WebCore/ChangeLog 2016-10-28 17:42:47 UTC (rev 208055)
@@ -1,5 +1,21 @@
2016-10-28 Dave Hyatt <[email protected]>
+ [CSS Parser] Support the marquee properties
+ https://bugs.webkit.org/show_bug.cgi?id=164132
+
+ Reviewed by Zalan Bujtas.
+
+ * css/parser/CSSParserFastPaths.cpp:
+ (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
+ * css/parser/CSSPropertyParser.cpp:
+ (WebCore::consumeWebkitMarqueeIncrement):
+ (WebCore::consumeWebkitMarqueeRepetition):
+ (WebCore::consumeWebkitMarqueeSpeed):
+ (WebCore::CSSPropertyParser::parseSingleValue):
+ (WebCore::CSSPropertyParser::parseShorthand):
+
+2016-10-28 Dave Hyatt <[email protected]>
+
[CSS Parser] Miscellaneous bug fixes
https://bugs.webkit.org/show_bug.cgi?id=164131
Modified: trunk/Source/WebCore/css/StyleBuilderConverter.h (208054 => 208055)
--- trunk/Source/WebCore/css/StyleBuilderConverter.h 2016-10-28 17:41:55 UTC (rev 208054)
+++ trunk/Source/WebCore/css/StyleBuilderConverter.h 2016-10-28 17:42:47 UTC (rev 208055)
@@ -341,14 +341,14 @@
if (value.isValueID()) {
switch (value.valueID()) {
- case cssValueFor0:
- return Length(0, Percent);
- case cssValueFor100:
- return Length(100, Percent);
- case CSSValueCenter:
- return Length(50, Percent);
- default:
- ASSERT_NOT_REACHED();
+ case cssValueFor0:
+ return Length(0, Percent);
+ case cssValueFor100:
+ return Length(100, Percent);
+ case CSSValueCenter:
+ return Length(50, Percent);
+ default:
+ ASSERT_NOT_REACHED();
}
}
Modified: trunk/Source/WebCore/css/parser/CSSParserFastPaths.cpp (208054 => 208055)
--- trunk/Source/WebCore/css/parser/CSSParserFastPaths.cpp 2016-10-28 17:41:55 UTC (rev 208054)
+++ trunk/Source/WebCore/css/parser/CSSParserFastPaths.cpp 2016-10-28 17:42:47 UTC (rev 208055)
@@ -792,6 +792,11 @@
case CSSPropertyWebkitTouchCallout:
return valueID == CSSValueDefault || valueID == CSSValueNone;
#endif
+ case CSSPropertyWebkitMarqueeDirection:
+ return valueID == CSSValueForwards || valueID == CSSValueBackwards || valueID == CSSValueAhead || valueID == CSSValueReverse || valueID == CSSValueLeft || valueID == CSSValueRight || valueID == CSSValueDown
+ || valueID == CSSValueUp || valueID == CSSValueAuto;
+ case CSSPropertyWebkitMarqueeStyle:
+ return valueID == CSSValueNone || valueID == CSSValueSlide || valueID == CSSValueScroll || valueID == CSSValueAlternate;
default:
ASSERT_NOT_REACHED();
return false;
Modified: trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp (208054 => 208055)
--- trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp 2016-10-28 17:41:55 UTC (rev 208054)
+++ trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp 2016-10-28 17:42:47 UTC (rev 208055)
@@ -3125,6 +3125,27 @@
return consumeCustomIdent(range);
}
+static RefPtr<CSSValue> consumeWebkitMarqueeIncrement(CSSParserTokenRange& range, CSSParserMode cssParserMode)
+{
+ if (range.peek().type() == IdentToken)
+ return consumeIdent<CSSValueSmall, CSSValueMedium, CSSValueLarge>(range);
+ return consumeLengthOrPercent(range, cssParserMode, ValueRangeAll);
+}
+
+static RefPtr<CSSValue> consumeWebkitMarqueeRepetition(CSSParserTokenRange& range)
+{
+ if (range.peek().type() == IdentToken)
+ return consumeIdent<CSSValueInfinite>(range);
+ return consumeNumber(range, ValueRangeNonNegative);
+}
+
+static RefPtr<CSSValue> consumeWebkitMarqueeSpeed(CSSParserTokenRange& range, CSSParserMode cssParserMode)
+{
+ if (range.peek().type() == IdentToken)
+ return consumeIdent<CSSValueSlow, CSSValueNormal, CSSValueFast>(range);
+ return consumeTime(range, cssParserMode, ValueRangeNonNegative, UnitlessQuirk::Allow);
+}
+
RefPtr<CSSValue> CSSPropertyParser::parseSingleValue(CSSPropertyID property, CSSPropertyID currentShorthand)
{
if (CSSParserFastPaths::isKeywordPropertyID(property)) {
@@ -3495,6 +3516,12 @@
#endif
case CSSPropertyWebkitLineGrid:
return consumeLineGrid(m_range);
+ case CSSPropertyWebkitMarqueeIncrement:
+ return consumeWebkitMarqueeIncrement(m_range, m_context.mode);
+ case CSSPropertyWebkitMarqueeRepetition:
+ return consumeWebkitMarqueeRepetition(m_range);
+ case CSSPropertyWebkitMarqueeSpeed:
+ return consumeWebkitMarqueeSpeed(m_range, m_context.mode);
default:
return nullptr;
}
@@ -4731,6 +4758,8 @@
return consumeGridTemplateShorthand(CSSPropertyGridTemplate, important);
case CSSPropertyGrid:
return consumeGridShorthand(important);
+ case CSSPropertyWebkitMarquee:
+ return consumeShorthandGreedily(webkitMarqueeShorthand(), important);
default:
return false;
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes