<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[205888] trunk/Source/WebCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/205888">205888</a></dd>
<dt>Author</dt> <dd>dbates@webkit.org</dd>
<dt>Date</dt> <dd>2016-09-13 17:10:21 -0700 (Tue, 13 Sep 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Treat some CSS properties as keyword properties
https://bugs.webkit.org/show_bug.cgi?id=161934

Reviewed by Simon Fraser.

Move validation of the following CSS keyword properties from CSSParser::parseValue() to
WebCore::isValidKeywordPropertyAndValue():

CSSPropertyColumnProgression
CSSPropertyFontStretch
CSSPropertyTextAlign
CSSPropertyUnicodeBidi
CSSPropertyWebkitColumnAxis
CSSPropertyWebkitCursorVisibility
CSSPropertyWebkitTextDecorationStyle
CSSPropertyWebkitTextOrientation
CSSPropertyWebkitTextZoom
CSSPropertyWebkitTouchCallout

Among other benefits, this will make it more straightforward to migrate from CSSParser::is{KeywordPropertyID, ValidKeywordPropertyAndValue}()
to CSSParserFastPaths::is{KeywordPropertyID, ValidKeywordPropertyAndValue}(), respectively.

* css/parser/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorecssparserCSSParsercpp">trunk/Source/WebCore/css/parser/CSSParser.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (205887 => 205888)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-09-13 23:27:47 UTC (rev 205887)
+++ trunk/Source/WebCore/ChangeLog        2016-09-14 00:10:21 UTC (rev 205888)
</span><span class="lines">@@ -1,3 +1,32 @@
</span><ins>+2016-09-13  Daniel Bates  &lt;dabates@apple.com&gt;
+
+        Treat some CSS properties as keyword properties
+        https://bugs.webkit.org/show_bug.cgi?id=161934
+
+        Reviewed by Simon Fraser.
+
+        Move validation of the following CSS keyword properties from CSSParser::parseValue() to
+        WebCore::isValidKeywordPropertyAndValue():
+
+        CSSPropertyColumnProgression
+        CSSPropertyFontStretch
+        CSSPropertyTextAlign
+        CSSPropertyUnicodeBidi
+        CSSPropertyWebkitColumnAxis
+        CSSPropertyWebkitCursorVisibility
+        CSSPropertyWebkitTextDecorationStyle
+        CSSPropertyWebkitTextOrientation
+        CSSPropertyWebkitTextZoom
+        CSSPropertyWebkitTouchCallout
+
+        Among other benefits, this will make it more straightforward to migrate from CSSParser::is{KeywordPropertyID, ValidKeywordPropertyAndValue}()
+        to CSSParserFastPaths::is{KeywordPropertyID, ValidKeywordPropertyAndValue}(), respectively.
+
+        * css/parser/CSSParser.cpp:
+        (WebCore::isValidKeywordPropertyAndValue):
+        (WebCore::isKeywordPropertyID):
+        (WebCore::CSSParser::parseValue):
+
</ins><span class="cx"> 2016-09-13  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Merge Element::ScrollToOptions and DOMWindow::ScrollToOptions
</span></span></pre></div>
<a id="trunkSourceWebCorecssparserCSSParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/CSSParser.cpp (205887 => 205888)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/CSSParser.cpp        2016-09-13 23:27:47 UTC (rev 205887)
+++ trunk/Source/WebCore/css/parser/CSSParser.cpp        2016-09-14 00:10:21 UTC (rev 205888)
</span><span class="lines">@@ -653,6 +653,8 @@
</span><span class="cx">         if (valueID == CSSValueNormal || valueID == CSSValueItalic || valueID == CSSValueOblique)
</span><span class="cx">             return true;
</span><span class="cx">         break;
</span><ins>+    case CSSPropertyFontStretch:
+        return false;
</ins><span class="cx">     case CSSPropertyImageRendering: // auto | optimizeSpeed | optimizeQuality | -webkit-crisp-edges | -webkit-optimize-contrast | crisp-edges | pixelated
</span><span class="cx">         // optimizeSpeed and optimizeQuality are deprecated; a user agent must accept them as valid values but must treat them as having the same behavior as pixelated and auto respectively.
</span><span class="cx">         if (valueID == CSSValueAuto || valueID == CSSValueOptimizespeed || valueID == CSSValueOptimizequality
</span><span class="lines">@@ -736,6 +738,12 @@
</span><span class="cx">         if (valueID == CSSValueAuto || valueID == CSSValueFixed)
</span><span class="cx">             return true;
</span><span class="cx">         break;
</span><ins>+    case CSSPropertyTextAlign:
+        // left | right | center | justify | -webkit-left | -webkit-right | -webkit-center | -webkit-match-parent
+        // | start | end | inherit | -webkit-auto (converted to start)
+        if ((valueID &gt;= CSSValueWebkitAuto &amp;&amp; valueID &lt;= CSSValueWebkitMatchParent) || valueID == CSSValueStart || valueID == CSSValueEnd)
+            return true;
+        break;
</ins><span class="cx">     case CSSPropertyTextLineThroughMode:
</span><span class="cx">     case CSSPropertyTextOverlineMode:
</span><span class="cx">     case CSSPropertyTextUnderlineMode:
</span><span class="lines">@@ -760,6 +768,11 @@
</span><span class="cx">         if ((valueID &gt;= CSSValueCapitalize &amp;&amp; valueID &lt;= CSSValueLowercase) || valueID == CSSValueNone)
</span><span class="cx">             return true;
</span><span class="cx">         break;
</span><ins>+    case CSSPropertyUnicodeBidi:
+        if (valueID == CSSValueNormal || valueID == CSSValueEmbed || valueID == CSSValueBidiOverride || valueID == CSSValueWebkitIsolate
+            || valueID == CSSValueWebkitIsolateOverride || valueID == CSSValueWebkitPlaintext)
+            return true;
+        break;
</ins><span class="cx">     case CSSPropertyVisibility: // visible | hidden | collapse | inherit
</span><span class="cx">         if (valueID == CSSValueVisible || valueID == CSSValueHidden || valueID == CSSValueCollapse)
</span><span class="cx">             return true;
</span><span class="lines">@@ -815,10 +828,24 @@
</span><span class="cx">         if (valueID == CSSValueStart || valueID == CSSValueEnd || valueID == CSSValueCenter || valueID == CSSValueJustify)
</span><span class="cx">             return true;
</span><span class="cx">         break;
</span><ins>+#if ENABLE(CURSOR_VISIBILITY)
+    case CSSPropertyWebkitCursorVisibility:
+        if (valueID == CSSValueAuto || valueID == CSSValueAutoHide)
+            return true;
+        break;
+#endif
+    case CSSPropertyWebkitColumnAxis:
+        if (valueID == CSSValueHorizontal || valueID == CSSValueVertical || valueID == CSSValueAuto)
+            return true;
+        break;
</ins><span class="cx">     case CSSPropertyColumnFill:
</span><span class="cx">         if (valueID == CSSValueAuto || valueID == CSSValueBalance)
</span><span class="cx">             return true;
</span><span class="cx">         break;
</span><ins>+    case CSSPropertyColumnProgression:
+        if (valueID == CSSValueNormal || valueID == CSSValueReverse)
+            return true;
+        break;
</ins><span class="cx">     case CSSPropertyAlignContent:
</span><span class="cx">         // FIXME: Per CSS alignment, this property should accept an optional &lt;overflow-position&gt;. We should share this parsing code with 'justify-self'.
</span><span class="cx">         // FIXME: For now, we will do it behind the GRID_LAYOUT compile flag.
</span><span class="lines">@@ -937,6 +964,10 @@
</span><span class="cx">         if (valueID == CSSValueNone || valueID == CSSValueHorizontal)
</span><span class="cx">             return true;
</span><span class="cx">         break;
</span><ins>+    case CSSPropertyWebkitTextDecorationStyle:
+        if (valueID == CSSValueSolid || valueID == CSSValueDouble || valueID == CSSValueDotted || valueID == CSSValueDashed || valueID == CSSValueWavy)
+            return true;
+        break;
</ins><span class="cx"> #if ENABLE(CSS3_TEXT)
</span><span class="cx">     case CSSPropertyWebkitTextJustify:
</span><span class="cx">         // auto | none | inter-word | distribute
</span><span class="lines">@@ -944,11 +975,20 @@
</span><span class="cx">             return true;
</span><span class="cx">         break;
</span><span class="cx"> #endif // CSS3_TEXT
</span><ins>+    case CSSPropertyWebkitTextOrientation:
+        if (valueID == CSSValueSideways || valueID == CSSValueSidewaysRight || valueID == CSSValueVerticalRight
+            || valueID == CSSValueMixed || valueID == CSSValueUpright)
+            return true;
+        break;
</ins><span class="cx">     case CSSPropertyWebkitTextSecurity:
</span><span class="cx">         // disc | circle | square | none | inherit
</span><span class="cx">         if (valueID == CSSValueDisc || valueID == CSSValueCircle || valueID == CSSValueSquare || valueID == CSSValueNone)
</span><span class="cx">             return true;
</span><span class="cx">         break;
</span><ins>+    case CSSPropertyWebkitTextZoom:
+        if (valueID == CSSValueNormal || valueID == CSSValueReset)
+            return true;
+        break;
</ins><span class="cx"> #if ENABLE(IOS_TEXT_AUTOSIZING)
</span><span class="cx">     case CSSPropertyWebkitTextSizeAdjust:
</span><span class="cx">         if (!parserContext.textAutosizingEnabled)
</span><span class="lines">@@ -958,6 +998,14 @@
</span><span class="cx">             return true;
</span><span class="cx">         break;
</span><span class="cx"> #endif
</span><ins>+#if PLATFORM(IOS)
+    // Apple specific property. These will never be standardized and is purely to
+    // support custom WebKit-based Apple applications.
+    case CSSPropertyWebkitTouchCallout:
+        if (valueID == CSSValueDefault || valueID == CSSValueNone)
+            return true;
+        break;
+#endif
</ins><span class="cx">     case CSSPropertyTransformStyle:
</span><span class="cx">     case CSSPropertyWebkitTransformStyle:
</span><span class="cx">         if (valueID == CSSValueFlat || valueID == CSSValuePreserve3d)
</span><span class="lines">@@ -1052,6 +1100,7 @@
</span><span class="cx">     case CSSPropertyCaptionSide:
</span><span class="cx">     case CSSPropertyClear:
</span><span class="cx">     case CSSPropertyColumnFill:
</span><ins>+    case CSSPropertyColumnProgression:
</ins><span class="cx">     case CSSPropertyColumnRuleStyle:
</span><span class="cx">     case CSSPropertyDirection:
</span><span class="cx">     case CSSPropertyDisplay:
</span><span class="lines">@@ -1059,6 +1108,7 @@
</span><span class="cx">     case CSSPropertyFlexDirection:
</span><span class="cx">     case CSSPropertyFlexWrap:
</span><span class="cx">     case CSSPropertyFloat:
</span><ins>+    case CSSPropertyFontStretch:
</ins><span class="cx">     case CSSPropertyFontStyle:
</span><span class="cx">     case CSSPropertyFontVariantAlternates:
</span><span class="cx">     case CSSPropertyFontVariantCaps:
</span><span class="lines">@@ -1079,6 +1129,7 @@
</span><span class="cx">     case CSSPropertyResize:
</span><span class="cx">     case CSSPropertySpeak:
</span><span class="cx">     case CSSPropertyTableLayout:
</span><ins>+    case CSSPropertyTextAlign:
</ins><span class="cx">     case CSSPropertyTextLineThroughMode:
</span><span class="cx">     case CSSPropertyTextLineThroughStyle:
</span><span class="cx">     case CSSPropertyTextOverflow:
</span><span class="lines">@@ -1089,6 +1140,7 @@
</span><span class="cx">     case CSSPropertyTextUnderlineMode:
</span><span class="cx">     case CSSPropertyTextUnderlineStyle:
</span><span class="cx">     case CSSPropertyTransformStyle:
</span><ins>+    case CSSPropertyUnicodeBidi:
</ins><span class="cx">     case CSSPropertyVisibility:
</span><span class="cx">     case CSSPropertyWebkitAppearance:
</span><span class="cx">     case CSSPropertyWebkitBackfaceVisibility:
</span><span class="lines">@@ -1102,6 +1154,7 @@
</span><span class="cx">     case CSSPropertyWebkitBoxLines:
</span><span class="cx">     case CSSPropertyWebkitBoxOrient:
</span><span class="cx">     case CSSPropertyWebkitBoxPack:
</span><ins>+    case CSSPropertyWebkitColumnAxis:
</ins><span class="cx">     case CSSPropertyWebkitColumnBreakAfter:
</span><span class="cx">     case CSSPropertyWebkitColumnBreakBefore:
</span><span class="cx">     case CSSPropertyWebkitColumnBreakInside:
</span><span class="lines">@@ -1122,7 +1175,10 @@
</span><span class="cx">     case CSSPropertyWebkitRtlOrdering:
</span><span class="cx">     case CSSPropertyWebkitRubyPosition:
</span><span class="cx">     case CSSPropertyWebkitTextCombine:
</span><ins>+    case CSSPropertyWebkitTextDecorationStyle:
+    case CSSPropertyWebkitTextOrientation:
</ins><span class="cx">     case CSSPropertyWebkitTextSecurity:
</span><ins>+    case CSSPropertyWebkitTextZoom:
</ins><span class="cx">     case CSSPropertyWebkitTransformStyle:
</span><span class="cx">     case CSSPropertyWebkitUserDrag:
</span><span class="cx">     case CSSPropertyWebkitUserModify:
</span><span class="lines">@@ -1144,6 +1200,9 @@
</span><span class="cx"> #if ENABLE(CSS_BOX_DECORATION_BREAK)
</span><span class="cx">     case CSSPropertyWebkitBoxDecorationBreak:
</span><span class="cx"> #endif
</span><ins>+#if ENABLE(CURSOR_VISIBILITY)
+    case CSSPropertyWebkitCursorVisibility:
+#endif
</ins><span class="cx"> #if ENABLE(ACCELERATED_OVERFLOW_SCROLLING)
</span><span class="cx">     case CSSPropertyWebkitOverflowScrolling:
</span><span class="cx"> #endif
</span><span class="lines">@@ -1157,6 +1216,11 @@
</span><span class="cx">     case CSSPropertyWebkitTextAlignLast:
</span><span class="cx">     case CSSPropertyWebkitTextJustify:
</span><span class="cx"> #endif
</span><ins>+#if PLATFORM(IOS)
+    // Apple specific property. These will never be standardized and is purely to
+    // support custom WebKit-based Apple applications.
+    case CSSPropertyWebkitTouchCallout:
+#endif
</ins><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><span class="cx">     case CSSPropertyWebkitScrollSnapType:
</span><span class="cx"> #endif
</span><span class="lines">@@ -1980,15 +2044,6 @@
</span><span class="cx">         else
</span><span class="cx">             return parseQuotes(propId, important);
</span><span class="cx">         break;
</span><del>-    case CSSPropertyUnicodeBidi: // normal | embed | bidi-override | isolate | isolate-override | plaintext | inherit
-        if (id == CSSValueNormal
-            || id == CSSValueEmbed
-            || id == CSSValueBidiOverride
-            || id == CSSValueWebkitIsolate
-            || id == CSSValueWebkitIsolateOverride
-            || id == CSSValueWebkitPlaintext)
-            validPrimitive = true;
-        break;
</del><span class="cx"> 
</span><span class="cx">     case CSSPropertyContent:              // [ &lt;string&gt; | &lt;uri&gt; | &lt;counter&gt; | attr(X) | open-quote |
</span><span class="cx">         // close-quote | no-open-quote | no-close-quote ]+ | inherit
</span><span class="lines">@@ -2026,14 +2081,6 @@
</span><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    case CSSPropertyTextAlign:
-        // left | right | center | justify | -webkit-left | -webkit-right | -webkit-center | -webkit-match-parent
-        // | start | end | inherit | -webkit-auto (converted to start)
-        // NOTE: &lt;string&gt; is not supported.
-        if ((id &gt;= CSSValueWebkitAuto &amp;&amp; id &lt;= CSSValueWebkitMatchParent) || id == CSSValueStart || id == CSSValueEnd)
-            validPrimitive = true;
-        break;
-
</del><span class="cx">     case CSSPropertyFontWeight:  { // normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit
</span><span class="cx">         if (m_valueList-&gt;size() != 1)
</span><span class="cx">             return false;
</span><span class="lines">@@ -2184,13 +2231,6 @@
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-#if ENABLE(CURSOR_VISIBILITY)
-    case CSSPropertyWebkitCursorVisibility:
-        if (id == CSSValueAuto || id == CSSValueAutoHide)
-            validPrimitive = true;
-        break;
-#endif
-
</del><span class="cx">     case CSSPropertyBackgroundAttachment:
</span><span class="cx">     case CSSPropertyBackgroundBlendMode:
</span><span class="cx">     case CSSPropertyBackgroundClip:
</span><span class="lines">@@ -2404,12 +2444,6 @@
</span><span class="cx">         // none | [ underline || overline || line-through || blink ] | inherit
</span><span class="cx">         return parseTextDecoration(propId, important);
</span><span class="cx"> 
</span><del>-    case CSSPropertyWebkitTextDecorationStyle:
-        // solid | double | dotted | dashed | wavy
-        if (id == CSSValueSolid || id == CSSValueDouble || id == CSSValueDotted || id == CSSValueDashed || id == CSSValueWavy)
-            validPrimitive = true;
-        break;
-
</del><span class="cx">     case CSSPropertyWebkitTextDecorationSkip:
</span><span class="cx">         // none | [ objects || spaces || ink || edges || box-decoration ]
</span><span class="cx">         return parseTextDecorationSkip(important);
</span><span class="lines">@@ -2425,12 +2459,6 @@
</span><span class="cx">         else
</span><span class="cx">             validPrimitive = (!id &amp;&amp; validateUnit(valueWithCalculation, FNumber | FPercent | FNonNeg, HTMLStandardMode));
</span><span class="cx">         break;
</span><del>-    
-    case CSSPropertyWebkitTextZoom:
-        // normal | reset
-        if (id == CSSValueNormal || id == CSSValueReset)
-            validPrimitive = true;
-        break;
</del><span class="cx"> 
</span><span class="cx">     case CSSPropertySrc: // Only used within @font-face and @-webkit-filter, so cannot use inherit | initial or be !important. This is a list of urls or local references.
</span><span class="cx">         return parseFontFaceSrc();
</span><span class="lines">@@ -2594,14 +2622,6 @@
</span><span class="cx">             return true;
</span><span class="cx">         }
</span><span class="cx">         break;
</span><del>-#if ENABLE(CSS_COMPOSITING)
-    case CSSPropertyMixBlendMode:
-        validPrimitive = true;
-        break;
-    case CSSPropertyIsolation:
-        validPrimitive = true;
-        break;
-#endif
</del><span class="cx">     case CSSPropertyFlex: {
</span><span class="cx">         ShorthandScope scope(this, propId);
</span><span class="cx">         if (id == CSSValueNone) {
</span><span class="lines">@@ -2852,14 +2872,6 @@
</span><span class="cx">         else
</span><span class="cx">             validPrimitive = validateUnit(valueWithCalculation, FLength | FNonNeg);
</span><span class="cx">         break;
</span><del>-    case CSSPropertyWebkitColumnAxis:
-        if (id == CSSValueHorizontal || id == CSSValueVertical || id == CSSValueAuto)
-            validPrimitive = true;
-        break;
-    case CSSPropertyColumnProgression:
-        if (id == CSSValueNormal || id == CSSValueReverse)
-            validPrimitive = true;
-        break;
</del><span class="cx">     case CSSPropertyColumnSpan: // none | all | 1 (will be dropped in the unprefixed property)
</span><span class="cx">         if (id == CSSValueAll || id == CSSValueNone)
</span><span class="cx">             validPrimitive = true;
</span><span class="lines">@@ -2954,12 +2966,6 @@
</span><span class="cx">         break;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#if PLATFORM(IOS)
-    case CSSPropertyWebkitTouchCallout:
-        if (id == CSSValueDefault || id == CSSValueNone)
-            validPrimitive = true;
-        break;
-#endif
</del><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><span class="cx">     case CSSPropertyWebkitTapHighlightColor:
</span><span class="cx">         if (isValidSystemColorValue(id) || id == CSSValueMenu
</span><span class="lines">@@ -3063,7 +3069,6 @@
</span><span class="cx">         return false;
</span><span class="cx">     case CSSPropertyPage:
</span><span class="cx">         return parsePage(propId, important);
</span><del>-    case CSSPropertyFontStretch:
</del><span class="cx">     case CSSPropertyTextLineThrough:
</span><span class="cx">     case CSSPropertyTextOverline:
</span><span class="cx">     case CSSPropertyTextUnderline:
</span><span class="lines">@@ -3078,11 +3083,6 @@
</span><span class="cx">     case CSSPropertyWebkitTextEmphasisPosition:
</span><span class="cx">         return parseTextEmphasisPosition(important);
</span><span class="cx"> 
</span><del>-    case CSSPropertyWebkitTextOrientation:
-        if (id == CSSValueSideways || id == CSSValueSidewaysRight || id == CSSValueVerticalRight || id == CSSValueMixed || id == CSSValueUpright)
-            validPrimitive = true;
-        break;
-
</del><span class="cx">     case CSSPropertyHangingPunctuation:
</span><span class="cx">         return parseHangingPunctuation(important);
</span><span class="cx">     case CSSPropertyWebkitLineBoxContain:
</span></span></pre>
</div>
</div>

</body>
</html>