Title: [208064] trunk/Source/WebCore
Revision
208064
Author
[email protected]
Date
2016-10-28 13:41:38 -0700 (Fri, 28 Oct 2016)

Log Message

[CSS Parser] Add support for -webkit-canvas images
https://bugs.webkit.org/show_bug.cgi?id=164144

Reviewed by Simon Fraser.

* css/CSSValueKeywords.in:
* css/parser/CSSParser.cpp:
(WebCore::CSSParserContext::CSSParserContext):
* css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeWebkitCanvas):
(WebCore::CSSPropertyParserHelpers::consumeGeneratedImage):
(WebCore::CSSPropertyParserHelpers::isGeneratedImage):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (208063 => 208064)


--- trunk/Source/WebCore/ChangeLog	2016-10-28 20:04:56 UTC (rev 208063)
+++ trunk/Source/WebCore/ChangeLog	2016-10-28 20:41:38 UTC (rev 208064)
@@ -1,3 +1,18 @@
+2016-10-28  Dave Hyatt  <[email protected]>
+
+        [CSS Parser] Add support for -webkit-canvas images
+        https://bugs.webkit.org/show_bug.cgi?id=164144
+
+        Reviewed by Simon Fraser.
+
+        * css/CSSValueKeywords.in:
+        * css/parser/CSSParser.cpp:
+        (WebCore::CSSParserContext::CSSParserContext):
+        * css/parser/CSSPropertyParserHelpers.cpp:
+        (WebCore::CSSPropertyParserHelpers::consumeWebkitCanvas):
+        (WebCore::CSSPropertyParserHelpers::consumeGeneratedImage):
+        (WebCore::CSSPropertyParserHelpers::isGeneratedImage):
+
 2016-10-27  Geoffrey Garen  <[email protected]>
 
         One file per class for Executable.h/.cpp

Modified: trunk/Source/WebCore/css/CSSValueKeywords.in (208063 => 208064)


--- trunk/Source/WebCore/css/CSSValueKeywords.in	2016-10-28 20:04:56 UTC (rev 208063)
+++ trunk/Source/WebCore/css/CSSValueKeywords.in	2016-10-28 20:41:38 UTC (rev 208064)
@@ -1155,6 +1155,7 @@
 repeating-linear-gradient
 repeating-radial-gradient
 paint
+-webkit-canvas
 -webkit-cross-fade
 -webkit-gradient
 -webkit-linear-gradient

Modified: trunk/Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp (208063 => 208064)


--- trunk/Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp	2016-10-28 20:04:56 UTC (rev 208063)
+++ trunk/Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp	2016-10-28 20:41:38 UTC (rev 208064)
@@ -31,6 +31,7 @@
 #include "CSSPropertyParserHelpers.h"
 
 #include "CSSCalculationValue.h"
+#include "CSSCanvasValue.h"
 #include "CSSCrossfadeValue.h"
 #include "CSSGradientValue.h"
 #include "CSSImageSetValue.h"
@@ -1020,6 +1021,16 @@
     return CSSCrossfadeValue::create(fromImageValue.releaseNonNull(), toImageValue.releaseNonNull(), percentage.releaseNonNull());
 }
 
+static RefPtr<CSSValue> consumeWebkitCanvas(CSSParserTokenRange& args)
+{
+    if (args.peek().type() != IdentToken)
+        return nullptr;
+    auto canvasName = args.consumeIncludingWhitespace().value().toString();
+    if (!args.atEnd())
+        return nullptr;
+    return CSSCanvasValue::create(canvasName);
+}
+    
 static RefPtr<CSSValue> consumeGeneratedImage(CSSParserTokenRange& range, CSSParserContext context)
 {
     CSSValueID id = range.peek().functionId();
@@ -1046,6 +1057,8 @@
         result = consumeDeprecatedRadialGradient(args, context.mode, Repeating);
     else if (id == CSSValueWebkitCrossFade)
         result = consumeCrossFade(args, context);
+    else if (id == CSSValueWebkitCanvas)
+        result = consumeWebkitCanvas(args);
 
     if (!result || !args.atEnd())
         return nullptr;
@@ -1089,7 +1102,8 @@
         || id == CSSValueRepeatingLinearGradient || id == CSSValueRepeatingRadialGradient
         || id == CSSValueWebkitLinearGradient || id == CSSValueWebkitRadialGradient
         || id == CSSValueWebkitRepeatingLinearGradient || id == CSSValueWebkitRepeatingRadialGradient
-        || id == CSSValueWebkitGradient || id == CSSValueWebkitCrossFade || id == CSSValuePaint;
+        || id == CSSValueWebkitGradient || id == CSSValueWebkitCrossFade || id == CSSValueWebkitCanvas
+        || id == CSSValuePaint;
 }
 
 RefPtr<CSSValue> consumeImage(CSSParserTokenRange& range, CSSParserContext context, ConsumeGeneratedImage generatedImage)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to