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

Reply via email to