<!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>[207757] trunk</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/207757">207757</a></dd>
<dt>Author</dt> <dd>hyatt@apple.com</dd>
<dt>Date</dt> <dd>2016-10-24 07:39:40 -0700 (Mon, 24 Oct 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>[CSS Parser] Unprefix -webkit-writing-mode
https://bugs.webkit.org/show_bug.cgi?id=163870

Reviewed by Zalan Bujtas.

Source/WebCore:

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
Change -webkit-writing mode to writing-mode.

* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::operator WritingMode):
(WebCore::CSSPrimitiveValue::operator SVGWritingMode): Deleted.
Eliminate the SVGWritingMode converters. Add support for the unique SVG-specific
values to the WritingMode converters.

* css/CSSPropertyNames.in:
Alias -webkit-writing-mode to writing-mode. Move writing-mode up to be
high priority like -webkit-writing mode was. Alias -epub-writing-mode to writing-mode
instead of to -webkit-writing-mode.

* css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::svgPropertyValue):
Remove writing-mode from SVG computed style, since the base CSSComputedStyleDeclaration handles it.

* css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::applyValueWritingMode):
(WebCore::StyleBuilderCustom::applyValueWebkitWritingMode): Deleted.
Renamed applyValueWebkitWritingMode to applyValueWritingMode. Removed the SVG code, since
the underlying converter for WritingMode now handles those values.

* css/StyleResolver.cpp:
(WebCore::extractDirectionAndWritingMode):
Rename -webkit-writing-mode to writing-mode.

* css/parser/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
Eliminate -webkit-writing-mode and make sure writing-mode handles both the SVG values
and the normal values.

* css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):
Same deal here.

* html/track/TextTrackCueGeneric.cpp:
(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
* html/track/VTTCue.cpp:
(WebCore::VTTCueBox::applyCSSProperties):
Cue stuff was setting -webkit-writing-mode, so make it set writing-mode instead now.

* rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::collectSelectionRects):
* rendering/RenderText.cpp:
(WebCore::RenderText::collectSelectionRects):
Switch the SVG-specific code here over to accessing the RenderStyle writing-mode and not
the SVG-specific one.

* rendering/style/RenderStyle.h:
(WebCore::RenderStyle::isVerticalWritingMode):
Add a helper function for asking if something is vertical writing mode.

* rendering/style/SVGRenderStyle.cpp:
* rendering/style/SVGRenderStyle.h:
* rendering/style/SVGRenderStyleDefs.h:
(WebCore::SVGRenderStyle::diff):
Remove the SVG writing mode code.

* rendering/svg/RenderSVGInlineText.cpp:
(WebCore::RenderSVGInlineText::computeNewScaledFontForStyle):
Make sure to force SVG font descriptions to be horizontal, since SVG controls
its own glyph orientation.

* rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGInlineTextBox):
* rendering/svg/SVGTextChunk.cpp:
(WebCore::SVGTextChunk::SVGTextChunk):
* rendering/svg/SVGTextLayoutEngine.cpp:
(WebCore::SVGTextLayoutEngine::layoutInlineTextBox):
* rendering/svg/SVGTextQuery.cpp:
(WebCore::SVGTextQuery::executeQuery):
Changed to access the RenderStyle writing mode instead of the SVG-specific one.

LayoutTests:

* fast/css/getComputedStyle/computed-style-expected.txt:
* fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* platform/mac/svg/W3C-SVG-1.1/text-align-06-b-expected.txt:
* platform/mac/svg/text/text-align-06-b-expected.txt:
* svg/css/getComputedStyle-basic-expected.txt:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastcssgetComputedStylecomputedstyleexpectedtxt">trunk/LayoutTests/fast/css/getComputedStyle/computed-style-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcssgetComputedStylecomputedstylewithoutrendererexpectedtxt">trunk/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacsvgW3CSVG11textalign06bexpectedtxt">trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/text-align-06-b-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacsvgtexttextalign06bexpectedtxt">trunk/LayoutTests/platform/mac/svg/text/text-align-06-b-expected.txt</a></li>
<li><a href="#trunkLayoutTestssvgcssgetComputedStylebasicexpectedtxt">trunk/LayoutTests/svg/css/getComputedStyle-basic-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorecssCSSComputedStyleDeclarationcpp">trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSPrimitiveValueMappingsh">trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSPropertyNamesin">trunk/Source/WebCore/css/CSSPropertyNames.in</a></li>
<li><a href="#trunkSourceWebCorecssSVGCSSComputedStyleDeclarationcpp">trunk/Source/WebCore/css/SVGCSSComputedStyleDeclaration.cpp</a></li>
<li><a href="#trunkSourceWebCorecssStyleBuilderCustomh">trunk/Source/WebCore/css/StyleBuilderCustom.h</a></li>
<li><a href="#trunkSourceWebCorecssStyleResolvercpp">trunk/Source/WebCore/css/StyleResolver.cpp</a></li>
<li><a href="#trunkSourceWebCorecssparserCSSParsercpp">trunk/Source/WebCore/css/parser/CSSParser.cpp</a></li>
<li><a href="#trunkSourceWebCorecssparserCSSParserFastPathscpp">trunk/Source/WebCore/css/parser/CSSParserFastPaths.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmltrackTextTrackCueGenericcpp">trunk/Source/WebCore/html/track/TextTrackCueGeneric.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmltrackVTTCuecpp">trunk/Source/WebCore/html/track/VTTCue.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLineBreakcpp">trunk/Source/WebCore/rendering/RenderLineBreak.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTextcpp">trunk/Source/WebCore/rendering/RenderText.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleRenderStyleh">trunk/Source/WebCore/rendering/style/RenderStyle.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleSVGRenderStylecpp">trunk/Source/WebCore/rendering/style/SVGRenderStyle.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleSVGRenderStyleh">trunk/Source/WebCore/rendering/style/SVGRenderStyle.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleSVGRenderStyleDefsh">trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.h</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgRenderSVGInlineTextcpp">trunk/Source/WebCore/rendering/svg/RenderSVGInlineText.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGRenderTreeAsTextcpp">trunk/Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGTextChunkcpp">trunk/Source/WebCore/rendering/svg/SVGTextChunk.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGTextLayoutEnginecpp">trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingsvgSVGTextQuerycpp">trunk/Source/WebCore/rendering/svg/SVGTextQuery.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/LayoutTests/ChangeLog        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2016-10-24  Dave Hyatt  &lt;hyatt@apple.com&gt;
+
+        [CSS Parser] Unprefix -webkit-writing-mode
+        https://bugs.webkit.org/show_bug.cgi?id=163870
+
+        Reviewed by Zalan Bujtas.
+
+        * fast/css/getComputedStyle/computed-style-expected.txt:
+        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
+        * platform/mac/svg/W3C-SVG-1.1/text-align-06-b-expected.txt:
+        * platform/mac/svg/text/text-align-06-b-expected.txt:
+        * svg/css/getComputedStyle-basic-expected.txt:
+
</ins><span class="cx"> 2016-10-24  Youenn Fablet  &lt;youenn@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         svg/as-image/svg-image-with-data-uri-use-data-uri.svg is flaky after r207754
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgetComputedStylecomputedstyleexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/getComputedStyle/computed-style-expected.txt (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/getComputedStyle/computed-style-expected.txt        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/LayoutTests/fast/css/getComputedStyle/computed-style-expected.txt        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -217,7 +217,6 @@
</span><span class="cx"> -webkit-user-drag: auto;
</span><span class="cx"> -webkit-user-modify: read-only;
</span><span class="cx"> -webkit-user-select: text;
</span><del>--webkit-writing-mode: horizontal-tb;
</del><span class="cx"> clip-path: none;
</span><span class="cx"> clip-rule: nonzero;
</span><span class="cx"> mask: none;
</span><span class="lines">@@ -250,7 +249,7 @@
</span><span class="cx"> dominant-baseline: auto;
</span><span class="cx"> kerning: 0;
</span><span class="cx"> text-anchor: start;
</span><del>-writing-mode: lr-tb;
</del><ins>+writing-mode: horizontal-tb;
</ins><span class="cx"> glyph-orientation-horizontal: 0deg;
</span><span class="cx"> glyph-orientation-vertical: auto;
</span><span class="cx"> -webkit-svg-shadow: none;
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssgetComputedStylecomputedstylewithoutrendererexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -216,7 +216,6 @@
</span><span class="cx"> -webkit-user-drag: auto
</span><span class="cx"> -webkit-user-modify: read-only
</span><span class="cx"> -webkit-user-select: text
</span><del>--webkit-writing-mode: horizontal-tb
</del><span class="cx"> clip-path: none
</span><span class="cx"> clip-rule: nonzero
</span><span class="cx"> mask: none
</span><span class="lines">@@ -249,7 +248,7 @@
</span><span class="cx"> dominant-baseline: auto
</span><span class="cx"> kerning: 0
</span><span class="cx"> text-anchor: start
</span><del>-writing-mode: lr-tb
</del><ins>+writing-mode: horizontal-tb
</ins><span class="cx"> glyph-orientation-horizontal: 0deg
</span><span class="cx"> glyph-orientation-vertical: auto
</span><span class="cx"> -webkit-svg-shadow: none
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacsvgW3CSVG11textalign06bexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/text-align-06-b-expected.txt (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/text-align-06-b-expected.txt        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/text-align-06-b-expected.txt        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -12,7 +12,7 @@
</span><span class="cx">             RenderSVGInlineText {#text} at (0,0) size 17x68
</span><span class="cx">               chunk 1 (vertical) text run 1 at (-10.40,0.00) startOffset 0 endOffset 1 height 33.52: &quot;t&quot;
</span><span class="cx">               chunk 1 (vertical) text run 2 at (-10.40,33.52) startOffset 1 endOffset 2 height 33.52: &quot;e&quot;
</span><del>-            RenderSVGTSpan {tspan} at (0,0) size 17x34
</del><ins>+            RenderSVGTSpan {tspan} at (0,0) size 34x17
</ins><span class="cx">               RenderSVGInlineText {#text} at (7,67) size 17x34
</span><span class="cx">                 chunk 1 (vertical) text run 1 at (-3.40,67.03) startOffset 0 endOffset 1 height 33.52: &quot;7&quot;
</span><span class="cx">             RenderSVGInlineText {#text} at (0,100) size 15x68
</span><span class="lines">@@ -22,7 +22,7 @@
</span><span class="cx">             RenderSVGInlineText {#text} at (25,0) size 17x68
</span><span class="cx">               chunk 1 (vertical) text run 1 at (69.60,0.00) startOffset 0 endOffset 1 height 33.52: &quot;t&quot;
</span><span class="cx">               chunk 1 (vertical) text run 2 at (69.60,33.52) startOffset 1 endOffset 2 height 33.52: &quot;e&quot;
</span><del>-            RenderSVGTSpan {tspan} at (0,0) size 27x135
</del><ins>+            RenderSVGTSpan {tspan} at (0,0) size 135x27
</ins><span class="cx">               RenderSVGInlineText {#text} at (0,67) size 27x135
</span><span class="cx">                 chunk 1 (vertical) text run 1 at (48.60,67.03) startOffset 0 endOffset 1 height 33.52: &quot;-&quot;
</span><span class="cx">                 chunk 1 (vertical) text run 2 at (48.60,100.55) startOffset 1 endOffset 2 height 33.52: &quot;7&quot;
</span><span class="lines">@@ -35,12 +35,12 @@
</span><span class="cx">             RenderSVGInlineText {#text} at (16,0) size 17x68
</span><span class="cx">               chunk 1 (vertical) text run 1 at (169.60,0.00) startOffset 0 endOffset 1 height 33.52: &quot;t&quot;
</span><span class="cx">               chunk 1 (vertical) text run 2 at (169.60,33.52) startOffset 1 endOffset 2 height 33.52: &quot;e&quot;
</span><del>-            RenderSVGTSpan {tspan} at (0,0) size 17x101
</del><ins>+            RenderSVGTSpan {tspan} at (0,0) size 101x17
</ins><span class="cx">               RenderSVGInlineText {#text} at (0,67) size 17x101
</span><span class="cx">                 chunk 1 (vertical) text run 1 at (152.84,67.03) startOffset 0 endOffset 1 height 33.52: &quot;s&quot;
</span><span class="cx">                 chunk 1 (vertical) text run 2 at (152.84,100.55) startOffset 1 endOffset 2 height 33.52: &quot;u&quot;
</span><span class="cx">                 chunk 1 (vertical) text run 3 at (152.84,134.06) startOffset 2 endOffset 3 height 33.52: &quot;b&quot;
</span><del>-            RenderSVGTSpan {tspan} at (0,0) size 16x35
</del><ins>+            RenderSVGTSpan {tspan} at (0,0) size 35x16
</ins><span class="cx">               RenderSVGInlineText {#text} at (17,167) size 15x34
</span><span class="cx">                 chunk 1 (vertical) text run 1 at (169.60,167.58) startOffset 0 endOffset 1 height 33.52: &quot;x&quot;
</span><span class="cx">             RenderSVGInlineText {#text} at (20,201) size 9x34
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx">             RenderSVGInlineText {#text} at (0,0) size 17x68
</span><span class="cx">               chunk 1 (vertical) text run 1 at (249.60,0.00) startOffset 0 endOffset 1 height 33.52: &quot;t&quot;
</span><span class="cx">               chunk 1 (vertical) text run 2 at (249.60,33.52) startOffset 1 endOffset 2 height 33.52: &quot;e&quot;
</span><del>-            RenderSVGTSpan {tspan} at (0,0) size 18x168
</del><ins>+            RenderSVGTSpan {tspan} at (0,0) size 169x17
</ins><span class="cx">               RenderSVGInlineText {#text} at (16,67) size 17x168
</span><span class="cx">                 chunk 1 (vertical) text run 1 at (266.36,67.03) startOffset 0 endOffset 1 height 33.52: &quot;s&quot;
</span><span class="cx">                 chunk 1 (vertical) text run 2 at (266.36,100.55) startOffset 1 endOffset 2 height 33.52: &quot;u&quot;
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx">                 chunk 1 (vertical) text run 3 at (266.36,134.06) startOffset 2 endOffset 3 height 33.52: &quot;p&quot;
</span><span class="cx">                 chunk 1 (vertical) text run 4 at (266.36,167.58) startOffset 3 endOffset 4 height 33.52: &quot;e&quot;
</span><span class="cx">                 chunk 1 (vertical) text run 5 at (266.36,201.09) startOffset 4 endOffset 5 height 33.52: &quot;r&quot;
</span><del>-            RenderSVGTSpan {tspan} at (0,0) size 16x35
</del><ins>+            RenderSVGTSpan {tspan} at (0,0) size 35x16
</ins><span class="cx">               RenderSVGInlineText {#text} at (0,234) size 15x34
</span><span class="cx">                 chunk 1 (vertical) text run 1 at (249.60,234.61) startOffset 0 endOffset 1 height 33.52: &quot;x&quot;
</span><span class="cx">             RenderSVGInlineText {#text} at (4,268) size 9x34
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacsvgtexttextalign06bexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/svg/text/text-align-06-b-expected.txt (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/svg/text/text-align-06-b-expected.txt        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/LayoutTests/platform/mac/svg/text/text-align-06-b-expected.txt        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -12,7 +12,7 @@
</span><span class="cx">             RenderSVGInlineText {#text} at (0,0) size 17x68
</span><span class="cx">               chunk 1 (vertical) text run 1 at (-10.40,0.00) startOffset 0 endOffset 1 height 33.52: &quot;t&quot;
</span><span class="cx">               chunk 1 (vertical) text run 2 at (-10.40,33.52) startOffset 1 endOffset 2 height 33.52: &quot;e&quot;
</span><del>-            RenderSVGTSpan {tspan} at (0,0) size 17x34
</del><ins>+            RenderSVGTSpan {tspan} at (0,0) size 34x17
</ins><span class="cx">               RenderSVGInlineText {#text} at (7,67) size 17x34
</span><span class="cx">                 chunk 1 (vertical) text run 1 at (-3.40,67.03) startOffset 0 endOffset 1 height 33.52: &quot;7&quot;
</span><span class="cx">             RenderSVGInlineText {#text} at (0,100) size 15x68
</span><span class="lines">@@ -22,7 +22,7 @@
</span><span class="cx">             RenderSVGInlineText {#text} at (25,0) size 17x68
</span><span class="cx">               chunk 1 (vertical) text run 1 at (69.60,0.00) startOffset 0 endOffset 1 height 33.52: &quot;t&quot;
</span><span class="cx">               chunk 1 (vertical) text run 2 at (69.60,33.52) startOffset 1 endOffset 2 height 33.52: &quot;e&quot;
</span><del>-            RenderSVGTSpan {tspan} at (0,0) size 27x135
</del><ins>+            RenderSVGTSpan {tspan} at (0,0) size 135x27
</ins><span class="cx">               RenderSVGInlineText {#text} at (0,67) size 27x135
</span><span class="cx">                 chunk 1 (vertical) text run 1 at (48.60,67.03) startOffset 0 endOffset 1 height 33.52: &quot;-&quot;
</span><span class="cx">                 chunk 1 (vertical) text run 2 at (48.60,100.55) startOffset 1 endOffset 2 height 33.52: &quot;7&quot;
</span><span class="lines">@@ -35,12 +35,12 @@
</span><span class="cx">             RenderSVGInlineText {#text} at (16,0) size 17x68
</span><span class="cx">               chunk 1 (vertical) text run 1 at (169.60,0.00) startOffset 0 endOffset 1 height 33.52: &quot;t&quot;
</span><span class="cx">               chunk 1 (vertical) text run 2 at (169.60,33.52) startOffset 1 endOffset 2 height 33.52: &quot;e&quot;
</span><del>-            RenderSVGTSpan {tspan} at (0,0) size 17x101
</del><ins>+            RenderSVGTSpan {tspan} at (0,0) size 101x17
</ins><span class="cx">               RenderSVGInlineText {#text} at (0,67) size 17x101
</span><span class="cx">                 chunk 1 (vertical) text run 1 at (152.84,67.03) startOffset 0 endOffset 1 height 33.52: &quot;s&quot;
</span><span class="cx">                 chunk 1 (vertical) text run 2 at (152.84,100.55) startOffset 1 endOffset 2 height 33.52: &quot;u&quot;
</span><span class="cx">                 chunk 1 (vertical) text run 3 at (152.84,134.06) startOffset 2 endOffset 3 height 33.52: &quot;b&quot;
</span><del>-            RenderSVGTSpan {tspan} at (0,0) size 16x35
</del><ins>+            RenderSVGTSpan {tspan} at (0,0) size 35x16
</ins><span class="cx">               RenderSVGInlineText {#text} at (17,167) size 15x34
</span><span class="cx">                 chunk 1 (vertical) text run 1 at (169.60,167.58) startOffset 0 endOffset 1 height 33.52: &quot;x&quot;
</span><span class="cx">             RenderSVGInlineText {#text} at (20,201) size 9x34
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx">             RenderSVGInlineText {#text} at (0,0) size 17x68
</span><span class="cx">               chunk 1 (vertical) text run 1 at (249.60,0.00) startOffset 0 endOffset 1 height 33.52: &quot;t&quot;
</span><span class="cx">               chunk 1 (vertical) text run 2 at (249.60,33.52) startOffset 1 endOffset 2 height 33.52: &quot;e&quot;
</span><del>-            RenderSVGTSpan {tspan} at (0,0) size 18x168
</del><ins>+            RenderSVGTSpan {tspan} at (0,0) size 169x17
</ins><span class="cx">               RenderSVGInlineText {#text} at (16,67) size 17x168
</span><span class="cx">                 chunk 1 (vertical) text run 1 at (266.36,67.03) startOffset 0 endOffset 1 height 33.52: &quot;s&quot;
</span><span class="cx">                 chunk 1 (vertical) text run 2 at (266.36,100.55) startOffset 1 endOffset 2 height 33.52: &quot;u&quot;
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx">                 chunk 1 (vertical) text run 3 at (266.36,134.06) startOffset 2 endOffset 3 height 33.52: &quot;p&quot;
</span><span class="cx">                 chunk 1 (vertical) text run 4 at (266.36,167.58) startOffset 3 endOffset 4 height 33.52: &quot;e&quot;
</span><span class="cx">                 chunk 1 (vertical) text run 5 at (266.36,201.09) startOffset 4 endOffset 5 height 33.52: &quot;r&quot;
</span><del>-            RenderSVGTSpan {tspan} at (0,0) size 16x35
</del><ins>+            RenderSVGTSpan {tspan} at (0,0) size 35x16
</ins><span class="cx">               RenderSVGInlineText {#text} at (0,234) size 15x34
</span><span class="cx">                 chunk 1 (vertical) text run 1 at (249.60,234.61) startOffset 0 endOffset 1 height 33.52: &quot;x&quot;
</span><span class="cx">             RenderSVGInlineText {#text} at (4,268) size 9x34
</span></span></pre></div>
<a id="trunkLayoutTestssvgcssgetComputedStylebasicexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/svg/css/getComputedStyle-basic-expected.txt (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/css/getComputedStyle-basic-expected.txt        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/LayoutTests/svg/css/getComputedStyle-basic-expected.txt        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -432,8 +432,6 @@
</span><span class="cx"> rect: style.getPropertyCSSValue(-webkit-user-modify) : [object CSSPrimitiveValue]
</span><span class="cx"> rect: style.getPropertyValue(-webkit-user-select) : text
</span><span class="cx"> rect: style.getPropertyCSSValue(-webkit-user-select) : [object CSSPrimitiveValue]
</span><del>-rect: style.getPropertyValue(-webkit-writing-mode) : horizontal-tb
-rect: style.getPropertyCSSValue(-webkit-writing-mode) : [object CSSPrimitiveValue]
</del><span class="cx"> rect: style.getPropertyValue(clip-path) : none
</span><span class="cx"> rect: style.getPropertyCSSValue(clip-path) : [object CSSPrimitiveValue]
</span><span class="cx"> rect: style.getPropertyValue(clip-rule) : nonzero
</span><span class="lines">@@ -498,7 +496,7 @@
</span><span class="cx"> rect: style.getPropertyCSSValue(kerning) : [object CSSPrimitiveValue]
</span><span class="cx"> rect: style.getPropertyValue(text-anchor) : start
</span><span class="cx"> rect: style.getPropertyCSSValue(text-anchor) : [object CSSPrimitiveValue]
</span><del>-rect: style.getPropertyValue(writing-mode) : lr-tb
</del><ins>+rect: style.getPropertyValue(writing-mode) : horizontal-tb
</ins><span class="cx"> rect: style.getPropertyCSSValue(writing-mode) : [object CSSPrimitiveValue]
</span><span class="cx"> rect: style.getPropertyValue(glyph-orientation-horizontal) : 0deg
</span><span class="cx"> rect: style.getPropertyCSSValue(glyph-orientation-horizontal) : [object CSSPrimitiveValue]
</span><span class="lines">@@ -942,8 +940,6 @@
</span><span class="cx"> g: style.getPropertyCSSValue(-webkit-user-modify) : [object CSSPrimitiveValue]
</span><span class="cx"> g: style.getPropertyValue(-webkit-user-select) : text
</span><span class="cx"> g: style.getPropertyCSSValue(-webkit-user-select) : [object CSSPrimitiveValue]
</span><del>-g: style.getPropertyValue(-webkit-writing-mode) : horizontal-tb
-g: style.getPropertyCSSValue(-webkit-writing-mode) : [object CSSPrimitiveValue]
</del><span class="cx"> g: style.getPropertyValue(clip-path) : none
</span><span class="cx"> g: style.getPropertyCSSValue(clip-path) : [object CSSPrimitiveValue]
</span><span class="cx"> g: style.getPropertyValue(clip-rule) : nonzero
</span><span class="lines">@@ -1008,7 +1004,7 @@
</span><span class="cx"> g: style.getPropertyCSSValue(kerning) : [object CSSPrimitiveValue]
</span><span class="cx"> g: style.getPropertyValue(text-anchor) : start
</span><span class="cx"> g: style.getPropertyCSSValue(text-anchor) : [object CSSPrimitiveValue]
</span><del>-g: style.getPropertyValue(writing-mode) : lr-tb
</del><ins>+g: style.getPropertyValue(writing-mode) : horizontal-tb
</ins><span class="cx"> g: style.getPropertyCSSValue(writing-mode) : [object CSSPrimitiveValue]
</span><span class="cx"> g: style.getPropertyValue(glyph-orientation-horizontal) : 0deg
</span><span class="cx"> g: style.getPropertyCSSValue(glyph-orientation-horizontal) : [object CSSPrimitiveValue]
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/ChangeLog        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -1,3 +1,87 @@
</span><ins>+2016-10-24  Dave Hyatt  &lt;hyatt@apple.com&gt;
+
+        [CSS Parser] Unprefix -webkit-writing-mode
+        https://bugs.webkit.org/show_bug.cgi?id=163870
+
+        Reviewed by Zalan Bujtas.
+
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::ComputedStyleExtractor::propertyValue):
+        Change -webkit-writing mode to writing-mode.
+
+        * css/CSSPrimitiveValueMappings.h:
+        (WebCore::CSSPrimitiveValue::operator WritingMode):
+        (WebCore::CSSPrimitiveValue::operator SVGWritingMode): Deleted.
+        Eliminate the SVGWritingMode converters. Add support for the unique SVG-specific
+        values to the WritingMode converters.
+
+        * css/CSSPropertyNames.in:
+        Alias -webkit-writing-mode to writing-mode. Move writing-mode up to be
+        high priority like -webkit-writing mode was. Alias -epub-writing-mode to writing-mode
+        instead of to -webkit-writing-mode.
+
+        * css/SVGCSSComputedStyleDeclaration.cpp:
+        (WebCore::ComputedStyleExtractor::svgPropertyValue):
+        Remove writing-mode from SVG computed style, since the base CSSComputedStyleDeclaration handles it.
+
+        * css/StyleBuilderCustom.h:
+        (WebCore::StyleBuilderCustom::applyValueWritingMode):
+        (WebCore::StyleBuilderCustom::applyValueWebkitWritingMode): Deleted.
+        Renamed applyValueWebkitWritingMode to applyValueWritingMode. Removed the SVG code, since
+        the underlying converter for WritingMode now handles those values.
+
+        * css/StyleResolver.cpp:
+        (WebCore::extractDirectionAndWritingMode):
+        Rename -webkit-writing-mode to writing-mode.
+
+        * css/parser/CSSParser.cpp:
+        (WebCore::isValidKeywordPropertyAndValue):
+        Eliminate -webkit-writing-mode and make sure writing-mode handles both the SVG values
+        and the normal values.
+
+        * css/parser/CSSParserFastPaths.cpp:
+        (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
+        (WebCore::CSSParserFastPaths::isKeywordPropertyID):
+        Same deal here.
+
+        * html/track/TextTrackCueGeneric.cpp:
+        (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
+        * html/track/VTTCue.cpp:
+        (WebCore::VTTCueBox::applyCSSProperties):
+        Cue stuff was setting -webkit-writing-mode, so make it set writing-mode instead now.
+
+        * rendering/RenderLineBreak.cpp:
+        (WebCore::RenderLineBreak::collectSelectionRects):
+        * rendering/RenderText.cpp:
+        (WebCore::RenderText::collectSelectionRects):
+        Switch the SVG-specific code here over to accessing the RenderStyle writing-mode and not
+        the SVG-specific one.
+
+        * rendering/style/RenderStyle.h:
+        (WebCore::RenderStyle::isVerticalWritingMode):
+        Add a helper function for asking if something is vertical writing mode.
+
+        * rendering/style/SVGRenderStyle.cpp:
+        * rendering/style/SVGRenderStyle.h:
+        * rendering/style/SVGRenderStyleDefs.h:
+        (WebCore::SVGRenderStyle::diff):
+        Remove the SVG writing mode code.
+
+        * rendering/svg/RenderSVGInlineText.cpp:
+        (WebCore::RenderSVGInlineText::computeNewScaledFontForStyle):
+        Make sure to force SVG font descriptions to be horizontal, since SVG controls
+        its own glyph orientation.
+
+        * rendering/svg/SVGRenderTreeAsText.cpp:
+        (WebCore::writeSVGInlineTextBox):
+        * rendering/svg/SVGTextChunk.cpp:
+        (WebCore::SVGTextChunk::SVGTextChunk):
+        * rendering/svg/SVGTextLayoutEngine.cpp:
+        (WebCore::SVGTextLayoutEngine::layoutInlineTextBox):
+        * rendering/svg/SVGTextQuery.cpp:
+        (WebCore::SVGTextQuery::executeQuery):
+        Changed to access the RenderStyle writing mode instead of the SVG-specific one.
+
</ins><span class="cx"> 2016-10-23  Antti Koivisto  &lt;antti@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Avoid unnecessary full style resolution in getComputedStyle for non-inherited properties
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSComputedStyleDeclarationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -407,7 +407,6 @@
</span><span class="cx">     CSSPropertyWebkitUserDrag,
</span><span class="cx">     CSSPropertyWebkitUserModify,
</span><span class="cx">     CSSPropertyWebkitUserSelect,
</span><del>-    CSSPropertyWebkitWritingMode,
</del><span class="cx"> #if ENABLE(CSS_REGIONS)
</span><span class="cx">     CSSPropertyWebkitFlowInto,
</span><span class="cx">     CSSPropertyWebkitFlowFrom,
</span><span class="lines">@@ -3684,7 +3683,7 @@
</span><span class="cx">             return CSSPrimitiveValue::create(style-&gt;lineSnap());
</span><span class="cx">         case CSSPropertyWebkitLineAlign:
</span><span class="cx">             return CSSPrimitiveValue::create(style-&gt;lineAlign());
</span><del>-        case CSSPropertyWebkitWritingMode:
</del><ins>+        case CSSPropertyWritingMode:
</ins><span class="cx">             return cssValuePool.createValue(style-&gt;writingMode());
</span><span class="cx">         case CSSPropertyWebkitTextCombine:
</span><span class="cx">             return cssValuePool.createValue(style-&gt;textCombine());
</span><span class="lines">@@ -3985,7 +3984,6 @@
</span><span class="cx">         case CSSPropertyKerning:
</span><span class="cx">         case CSSPropertyTextAnchor:
</span><span class="cx">         case CSSPropertyVectorEffect:
</span><del>-        case CSSPropertyWritingMode:
</del><span class="cx">         case CSSPropertyWebkitSvgShadow:
</span><span class="cx">             return svgPropertyValue(propertyID, DoNotUpdateLayout);
</span><span class="cx">         case CSSPropertyCustom:
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPrimitiveValueMappingsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -3242,8 +3242,13 @@
</span><span class="cx"> 
</span><span class="cx">     switch (m_value.valueID) {
</span><span class="cx">     case CSSValueHorizontalTb:
</span><ins>+    case CSSValueLrTb:
+    case CSSValueRl:
+    case CSSValueRlTb:
</ins><span class="cx">         return TopToBottomWritingMode;
</span><span class="cx">     case CSSValueVerticalRl:
</span><ins>+    case CSSValueTb:
+    case CSSValueTbRl:
</ins><span class="cx">         return RightToLeftWritingMode;
</span><span class="cx">     case CSSValueVerticalLr:
</span><span class="cx">         return LeftToRightWritingMode;
</span><span class="lines">@@ -4887,57 +4892,6 @@
</span><span class="cx">     return TA_START;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-template&lt;&gt; inline CSSPrimitiveValue::CSSPrimitiveValue(SVGWritingMode e)
-    : CSSValue(PrimitiveClass)
-{
-    m_primitiveUnitType = CSS_VALUE_ID;
-    switch (e) {
-    case WM_LRTB:
-        m_value.valueID = CSSValueLrTb;
-        break;
-    case WM_LR:
-        m_value.valueID = CSSValueLr;
-        break;
-    case WM_RLTB:
-        m_value.valueID = CSSValueRlTb;
-        break;
-    case WM_RL:
-        m_value.valueID = CSSValueRl;
-        break;
-    case WM_TBRL:
-        m_value.valueID = CSSValueTbRl;
-        break;
-    case WM_TB:
-        m_value.valueID = CSSValueTb;
-        break;
-    }
-}
-
-template&lt;&gt; inline CSSPrimitiveValue::operator SVGWritingMode() const
-{
-    ASSERT(isValueID());
-
-    switch (m_value.valueID) {
-    case CSSValueLrTb:
-        return WM_LRTB;
-    case CSSValueLr:
-        return WM_LR;
-    case CSSValueRlTb:
-        return WM_RLTB;
-    case CSSValueRl:
-        return WM_RL;
-    case CSSValueTbRl:
-        return WM_TBRL;
-    case CSSValueTb:
-        return WM_TB;
-    default:
-        break;
-    }
-
-    ASSERT_NOT_REACHED();
-    return WM_LRTB;
-}
-
</del><span class="cx"> template&lt;&gt; inline CSSPrimitiveValue::CSSPrimitiveValue(const Color&amp; color)
</span><span class="cx">     : CSSValue(PrimitiveClass)
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPropertyNamesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSPropertyNames.in (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSPropertyNames.in        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/css/CSSPropertyNames.in        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -123,8 +123,9 @@
</span><span class="cx"> #if defined(ENABLE_TEXT_AUTOSIZING) &amp;&amp; ENABLE_TEXT_AUTOSIZING
</span><span class="cx"> -webkit-text-size-adjust [Inherited, Custom=Value]
</span><span class="cx"> #endif
</span><del>--webkit-writing-mode [Inherited, Custom=Value]
--epub-writing-mode = -webkit-writing-mode
</del><ins>+writing-mode [Inherited, Custom=Value]
+-webkit-writing-mode = writing-mode
+-epub-writing-mode = writing-mode
</ins><span class="cx"> -webkit-text-zoom [Inherited, Custom=Value]
</span><span class="cx"> zoom [Custom=All]
</span><span class="cx"> font-synthesis [Inherited, FontProperty, Converter=FontSynthesis]
</span><span class="lines">@@ -368,7 +369,6 @@
</span><span class="cx"> -epub-word-break = word-break
</span><span class="cx"> word-spacing [Inherited, ConditionalConverter=WordSpacing]
</span><span class="cx"> word-wrap [Inherited=EOverflowWrap, NameForMethods=OverflowWrap]
</span><del>-writing-mode [Inherited, SVG]
</del><span class="cx"> x [Initial=initialZeroLength, Converter=Length]
</span><span class="cx"> y [Initial=initialZeroLength, Converter=Length]
</span><span class="cx"> z-index [AutoFunctions]
</span></span></pre></div>
<a id="trunkSourceWebCorecssSVGCSSComputedStyleDeclarationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/SVGCSSComputedStyleDeclaration.cpp (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/SVGCSSComputedStyleDeclaration.cpp        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/css/SVGCSSComputedStyleDeclaration.cpp        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -149,8 +149,6 @@
</span><span class="cx">             return CSSPrimitiveValue::create(svgStyle.dominantBaseline());
</span><span class="cx">         case CSSPropertyTextAnchor:
</span><span class="cx">             return CSSPrimitiveValue::create(svgStyle.textAnchor());
</span><del>-        case CSSPropertyWritingMode:
-            return CSSPrimitiveValue::create(svgStyle.writingMode());
</del><span class="cx">         case CSSPropertyClipPath:
</span><span class="cx">             if (!svgStyle.clipperResource().isEmpty())
</span><span class="cx">                 return CSSPrimitiveValue::create(svgStyle.clipperResource(), CSSPrimitiveValue::CSS_URI);
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleBuilderCustomh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleBuilderCustom.h (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleBuilderCustom.h        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/css/StyleBuilderCustom.h        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -133,7 +133,7 @@
</span><span class="cx">     static void applyValueWebkitTextSizeAdjust(StyleResolver&amp;, CSSValue&amp;);
</span><span class="cx"> #endif
</span><span class="cx">     static void applyValueWebkitTextZoom(StyleResolver&amp;, CSSValue&amp;);
</span><del>-    static void applyValueWebkitWritingMode(StyleResolver&amp;, CSSValue&amp;);
</del><ins>+    static void applyValueWritingMode(StyleResolver&amp;, CSSValue&amp;);
</ins><span class="cx">     static void applyValueAlt(StyleResolver&amp;, CSSValue&amp;);
</span><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><span class="cx">     static void applyInitialWebkitScrollSnapPointsX(StyleResolver&amp;);
</span><span class="lines">@@ -705,12 +705,12 @@
</span><span class="cx">     styleResolver.setFontDescription(fontDescription);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline void StyleBuilderCustom::applyValueWebkitWritingMode(StyleResolver&amp; styleResolver, CSSValue&amp; value)
</del><ins>+inline void StyleBuilderCustom::applyValueWritingMode(StyleResolver&amp; styleResolver, CSSValue&amp; value)
</ins><span class="cx"> {
</span><span class="cx">     styleResolver.setWritingMode(downcast&lt;CSSPrimitiveValue&gt;(value));
</span><span class="cx">     styleResolver.style()-&gt;setHasExplicitlySetWritingMode(true);
</span><span class="cx"> }
</span><del>-
</del><ins>+    
</ins><span class="cx"> inline void StyleBuilderCustom::applyValueWebkitTextOrientation(StyleResolver&amp; styleResolver, CSSValue&amp; value)
</span><span class="cx"> {
</span><span class="cx">     styleResolver.setTextOrientation(downcast&lt;CSSPrimitiveValue&gt;(value));
</span><span class="lines">@@ -1177,8 +1177,43 @@
</span><span class="cx"> inline void StyleBuilderCustom::applyValueFill(StyleResolver&amp; styleResolver, CSSValue&amp; value)
</span><span class="cx"> {
</span><span class="cx">     SVGRenderStyle&amp; svgStyle = styleResolver.style()-&gt;accessSVGStyle();
</span><del>-    SVGPaint&amp; svgPaint = downcast&lt;SVGPaint&gt;(value);
-    svgStyle.setFillPaint(svgPaint.paintType(), StyleBuilderConverter::convertSVGColor(styleResolver, svgPaint), svgPaint.uri(), styleResolver.applyPropertyToRegularStyle(), styleResolver.applyPropertyToVisitedLinkStyle());
</del><ins>+    
+    // FIXME-NEWPARSER: SVGPaint as a back-end CSSValue is bad, since it's bypassing
+    // the style resolver's colorFromPrimitiveValue code. It's also not necessary, since it's
+    // not even how we store things in the front end.
+    // Remove this block of code when the new parser is turned on.
+    if (value.isSVGPaint()) {
+        auto&amp; svgPaint = downcast&lt;SVGPaint&gt;(value);
+        svgStyle.setFillPaint(svgPaint.paintType(), StyleBuilderConverter::convertSVGColor(styleResolver, svgPaint), svgPaint.uri(), styleResolver.applyPropertyToRegularStyle(), styleResolver.applyPropertyToVisitedLinkStyle());
+        return;
+    }
+    
+    const CSSPrimitiveValue* localValue = value.isPrimitiveValue() ? &amp;downcast&lt;CSSPrimitiveValue&gt;(value) : nullptr;
+    String url;
+    if (value.isValueList()) {
+        const CSSValueList&amp; list = downcast&lt;CSSValueList&gt;(value);
+        url = downcast&lt;CSSPrimitiveValue&gt;(list.item(0))-&gt;stringValue();
+        localValue = downcast&lt;CSSPrimitiveValue&gt;(list.item(1));
+    }
+    
+    if (!localValue)
+        return;
+    
+    Color color;
+    SVGPaint::SVGPaintType paintType = SVGPaint::SVG_PAINTTYPE_RGBCOLOR;
+    if (localValue-&gt;isURI()) {
+        paintType = SVGPaint::SVG_PAINTTYPE_URI;
+        url = downcast&lt;CSSPrimitiveValue&gt;(localValue)-&gt;stringValue();
+    } else if (localValue-&gt;isValueID() &amp;&amp; localValue-&gt;valueID() == CSSValueNone)
+        paintType = url.isEmpty() ? SVGPaint::SVG_PAINTTYPE_NONE : SVGPaint::SVG_PAINTTYPE_URI_NONE;
+    else if (localValue-&gt;isValueID() &amp;&amp; localValue-&gt;valueID() == CSSValueCurrentcolor) {
+        color = styleResolver.style()-&gt;color();
+        paintType = url.isEmpty() ? SVGPaint::SVG_PAINTTYPE_CURRENTCOLOR :SVGPaint:: SVG_PAINTTYPE_URI_CURRENTCOLOR;
+    } else {
+        color = styleResolver.colorFromPrimitiveValue(*localValue);
+        paintType = url.isEmpty() ? SVGPaint::SVG_PAINTTYPE_RGBCOLOR : SVGPaint::SVG_PAINTTYPE_URI_RGBCOLOR;
+    }
+    svgStyle.setFillPaint(paintType, color, url, styleResolver.applyPropertyToRegularStyle(), styleResolver.applyPropertyToVisitedLinkStyle());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline void StyleBuilderCustom::applyInitialStroke(StyleResolver&amp; styleResolver)
</span><span class="lines">@@ -1197,8 +1232,43 @@
</span><span class="cx"> inline void StyleBuilderCustom::applyValueStroke(StyleResolver&amp; styleResolver, CSSValue&amp; value)
</span><span class="cx"> {
</span><span class="cx">     SVGRenderStyle&amp; svgStyle = styleResolver.style()-&gt;accessSVGStyle();
</span><del>-    auto&amp; svgPaint = downcast&lt;SVGPaint&gt;(value);
-    svgStyle.setStrokePaint(svgPaint.paintType(), StyleBuilderConverter::convertSVGColor(styleResolver, svgPaint), svgPaint.uri(), styleResolver.applyPropertyToRegularStyle(), styleResolver.applyPropertyToVisitedLinkStyle());
</del><ins>+    
+    // FIXME-NEWPARSER: SVGPaint as a back-end CSSValue is bad, since it's bypassing
+    // the style resolver's colorFromPrimitiveValue code. It's also not necessary, since it's
+    // not even how we store things in the front end.
+    // Remove this block of code when the new parser is turned on.
+    if (value.isSVGPaint()) {
+        auto&amp; svgPaint = downcast&lt;SVGPaint&gt;(value);
+        svgStyle.setStrokePaint(svgPaint.paintType(), StyleBuilderConverter::convertSVGColor(styleResolver, svgPaint), svgPaint.uri(), styleResolver.applyPropertyToRegularStyle(), styleResolver.applyPropertyToVisitedLinkStyle());
+        return;
+    }
+    
+    const CSSPrimitiveValue* localValue = value.isPrimitiveValue() ? &amp;downcast&lt;CSSPrimitiveValue&gt;(value) : nullptr;
+    String url;
+    if (value.isValueList()) {
+        const CSSValueList&amp; list = downcast&lt;CSSValueList&gt;(value);
+        url = downcast&lt;CSSPrimitiveValue&gt;(list.item(0))-&gt;stringValue();
+        localValue = downcast&lt;CSSPrimitiveValue&gt;(list.item(1));
+    }
+    
+    if (!localValue)
+        return;
+    
+    Color color;
+    SVGPaint::SVGPaintType paintType = SVGPaint::SVG_PAINTTYPE_RGBCOLOR;
+    if (localValue-&gt;isURI()) {
+        paintType = SVGPaint::SVG_PAINTTYPE_URI;
+        url = downcast&lt;CSSPrimitiveValue&gt;(localValue)-&gt;stringValue();
+    } else if (localValue-&gt;isValueID() &amp;&amp; localValue-&gt;valueID() == CSSValueNone)
+        paintType = url.isEmpty() ? SVGPaint::SVG_PAINTTYPE_NONE : SVGPaint::SVG_PAINTTYPE_URI_NONE;
+    else if (localValue-&gt;isValueID() &amp;&amp; localValue-&gt;valueID() == CSSValueCurrentcolor) {
+        color = styleResolver.style()-&gt;color();
+        paintType = url.isEmpty() ? SVGPaint::SVG_PAINTTYPE_CURRENTCOLOR :SVGPaint:: SVG_PAINTTYPE_URI_CURRENTCOLOR;
+    } else {
+        color = styleResolver.colorFromPrimitiveValue(*localValue);
+        paintType = url.isEmpty() ? SVGPaint::SVG_PAINTTYPE_RGBCOLOR : SVGPaint::SVG_PAINTTYPE_URI_RGBCOLOR;
+    }
+    svgStyle.setStrokePaint(paintType, color, url, styleResolver.applyPropertyToRegularStyle(), styleResolver.applyPropertyToVisitedLinkStyle());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline void StyleBuilderCustom::applyInitialWebkitSvgShadow(StyleResolver&amp; styleResolver)
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleResolvercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleResolver.cpp (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleResolver.cpp        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/css/StyleResolver.cpp        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -1292,7 +1292,7 @@
</span><span class="cx">     direction = style.direction();
</span><span class="cx">     writingMode = style.writingMode();
</span><span class="cx"> 
</span><del>-    bool hadImportantWebkitWritingMode = false;
</del><ins>+    bool hadImportantWritingMode = false;
</ins><span class="cx">     bool hadImportantDirection = false;
</span><span class="cx"> 
</span><span class="cx">     for (const auto&amp; matchedProperties : matchResult.matchedProperties()) {
</span><span class="lines">@@ -1301,10 +1301,10 @@
</span><span class="cx">             if (!property.value()-&gt;isPrimitiveValue())
</span><span class="cx">                 continue;
</span><span class="cx">             switch (property.id()) {
</span><del>-            case CSSPropertyWebkitWritingMode:
-                if (!hadImportantWebkitWritingMode || property.isImportant()) {
</del><ins>+            case CSSPropertyWritingMode:
+                if (!hadImportantWritingMode || property.isImportant()) {
</ins><span class="cx">                     writingMode = downcast&lt;CSSPrimitiveValue&gt;(*property.value());
</span><del>-                    hadImportantWebkitWritingMode = property.isImportant();
</del><ins>+                    hadImportantWritingMode = property.isImportant();
</ins><span class="cx">                 }
</span><span class="cx">                 break;
</span><span class="cx">             case CSSPropertyDirection:
</span></span></pre></div>
<a id="trunkSourceWebCorecssparserCSSParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/CSSParser.cpp (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/CSSParser.cpp        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/css/parser/CSSParser.cpp        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -1013,10 +1013,6 @@
</span><span class="cx">             return true;
</span><span class="cx">         }
</span><span class="cx">         break;
</span><del>-    case CSSPropertyWebkitWritingMode:
-        if (valueID &gt;= CSSValueHorizontalTb &amp;&amp; valueID &lt;= CSSValueHorizontalBt)
-            return true;
-        break;
</del><span class="cx">     case CSSPropertyWhiteSpace: // normal | pre | nowrap | inherit
</span><span class="cx">         if (valueID == CSSValueNormal || valueID == CSSValuePre || valueID == CSSValuePreWrap || valueID == CSSValuePreLine || valueID == CSSValueNowrap)
</span><span class="cx">             return true;
</span><span class="lines">@@ -1127,7 +1123,9 @@
</span><span class="cx">             return true;
</span><span class="cx">         break;
</span><span class="cx">     case CSSPropertyWritingMode:
</span><del>-        if (valueID == CSSValueLrTb || valueID == CSSValueRlTb || valueID == CSSValueTbRl || valueID == CSSValueLr || valueID == CSSValueRl || valueID == CSSValueTb)
</del><ins>+        if ((valueID &gt;= CSSValueHorizontalTb &amp;&amp; valueID &lt;= CSSValueHorizontalBt)
+            || valueID == CSSValueLrTb || valueID == CSSValueRlTb || valueID == CSSValueTbRl
+            || valueID == CSSValueLr || valueID == CSSValueRl || valueID == CSSValueTb)
</ins><span class="cx">             return true;
</span><span class="cx">         break;
</span><span class="cx">     default:
</span></span></pre></div>
<a id="trunkSourceWebCorecssparserCSSParserFastPathscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/CSSParserFastPaths.cpp (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/CSSParserFastPaths.cpp        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/css/parser/CSSParserFastPaths.cpp        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -741,11 +741,10 @@
</span><span class="cx">         return valueID == CSSValueReadOnly || valueID == CSSValueReadWrite || valueID == CSSValueReadWritePlaintextOnly;
</span><span class="cx">     case CSSPropertyWebkitUserSelect: // auto | none | text | all
</span><span class="cx">         return valueID == CSSValueAuto || valueID == CSSValueNone || valueID == CSSValueText || valueID == CSSValueAll;
</span><del>-    case CSSPropertyWebkitWritingMode:
-        return valueID &gt;= CSSValueHorizontalTb &amp;&amp; valueID &lt;= CSSValueHorizontalBt;
</del><span class="cx">     case CSSPropertyWritingMode:
</span><del>-        return valueID == CSSValueHorizontalTb
-            || valueID == CSSValueVerticalRl || valueID == CSSValueVerticalLr
</del><ins>+        // Note that horizontal-bt is not supported by the unprefixed version of
+        // the property, only by the -webkit- version.
+        return (valueID &gt;= CSSValueHorizontalTb &amp;&amp; valueID &lt;= CSSValueHorizontalBt)
</ins><span class="cx">             || valueID == CSSValueLrTb || valueID == CSSValueRlTb || valueID == CSSValueTbRl
</span><span class="cx">             || valueID == CSSValueLr || valueID == CSSValueRl || valueID == CSSValueTb;
</span><span class="cx">     case CSSPropertyWhiteSpace: // normal | pre | nowrap
</span><span class="lines">@@ -877,7 +876,6 @@
</span><span class="cx">     case CSSPropertyWebkitUserDrag:
</span><span class="cx">     case CSSPropertyWebkitUserModify:
</span><span class="cx">     case CSSPropertyWebkitUserSelect:
</span><del>-    case CSSPropertyWebkitWritingMode:
</del><span class="cx">     case CSSPropertyWhiteSpace:
</span><span class="cx">     case CSSPropertyWordBreak:
</span><span class="cx">     case CSSPropertyWordWrap:
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackTextTrackCueGenericcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/TextTrackCueGeneric.cpp (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/TextTrackCueGeneric.cpp        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/html/track/TextTrackCueGeneric.cpp        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -140,7 +140,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (cue-&gt;backgroundColor().isValid())
</span><span class="cx">         setInlineStyleProperty(CSSPropertyBackgroundColor, cue-&gt;backgroundColor().serialized());
</span><del>-    setInlineStyleProperty(CSSPropertyWebkitWritingMode, cue-&gt;getCSSWritingMode(), false);
</del><ins>+    setInlineStyleProperty(CSSPropertyWritingMode, cue-&gt;getCSSWritingMode(), false);
</ins><span class="cx">     setInlineStyleProperty(CSSPropertyWhiteSpace, CSSValuePreWrap);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackVTTCuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/VTTCue.cpp (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/VTTCue.cpp        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/html/track/VTTCue.cpp        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -158,7 +158,7 @@
</span><span class="cx">     setInlineStyleProperty(CSSPropertyDirection, m_cue.getCSSWritingDirection());
</span><span class="cx"> 
</span><span class="cx">     // the 'writing-mode' property must be set to writing-mode
</span><del>-    setInlineStyleProperty(CSSPropertyWebkitWritingMode, m_cue.getCSSWritingMode(), false);
</del><ins>+    setInlineStyleProperty(CSSPropertyWritingMode, m_cue.getCSSWritingMode(), false);
</ins><span class="cx"> 
</span><span class="cx">     std::pair&lt;float, float&gt; position = m_cue.getCSSPosition();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLineBreakcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLineBreak.cpp (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLineBreak.cpp        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/rendering/RenderLineBreak.cpp        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -264,7 +264,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool isFixed = false;
</span><span class="cx">     IntRect absRect = localToAbsoluteQuad(FloatRect(rect), UseTransforms, &amp;isFixed).enclosingBoundingBox();
</span><del>-    bool boxIsHorizontal = !box-&gt;isSVGInlineTextBox() ? box-&gt;isHorizontal() : !style().svgStyle().isVerticalWritingMode();
</del><ins>+    bool boxIsHorizontal = !box-&gt;isSVGInlineTextBox() ? box-&gt;isHorizontal() : !style().isVerticalWritingMode();
</ins><span class="cx">     // If the containing block is an inline element, we want to check the inlineBoxWrapper orientation
</span><span class="cx">     // to determine the orientation of the block. In this case we also use the inlineBoxWrapper to
</span><span class="cx">     // determine if the element is the last on the line.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderText.cpp (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderText.cpp        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/rendering/RenderText.cpp        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -384,7 +384,7 @@
</span><span class="cx"> 
</span><span class="cx">         bool isFixed = false;
</span><span class="cx">         IntRect absRect = localToAbsoluteQuad(FloatRect(rect), UseTransforms, &amp;isFixed).enclosingBoundingBox();
</span><del>-        bool boxIsHorizontal = !box-&gt;isSVGInlineTextBox() ? box-&gt;isHorizontal() : !style().svgStyle().isVerticalWritingMode();
</del><ins>+        bool boxIsHorizontal = !box-&gt;isSVGInlineTextBox() ? box-&gt;isHorizontal() : !style().isVerticalWritingMode();
</ins><span class="cx">         // If the containing block is an inline element, we want to check the inlineBoxWrapper orientation
</span><span class="cx">         // to determine the orientation of the block. In this case we also use the inlineBoxWrapper to
</span><span class="cx">         // determine if the element is the last on the line.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleRenderStyleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyle.h (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyle.h        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -1161,6 +1161,7 @@
</span><span class="cx"> 
</span><span class="cx">     WritingMode writingMode() const { return static_cast&lt;WritingMode&gt;(inherited_flags.m_writingMode); }
</span><span class="cx">     bool isHorizontalWritingMode() const { return WebCore::isHorizontalWritingMode(writingMode()); }
</span><ins>+    bool isVerticalWritingMode() const { return WebCore::isVerticalWritingMode(writingMode()); }
</ins><span class="cx">     bool isFlippedLinesWritingMode() const { return WebCore::isFlippedLinesWritingMode(writingMode()); }
</span><span class="cx">     bool isFlippedBlocksWritingMode() const { return WebCore::isFlippedWritingMode(writingMode()); }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleSVGRenderStylecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/SVGRenderStyle.cpp (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/SVGRenderStyle.cpp        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/rendering/style/SVGRenderStyle.cpp        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -206,7 +206,6 @@
</span><span class="cx"> 
</span><span class="cx">     // All text related properties influence layout.
</span><span class="cx">     if (svg_inherited_flags._textAnchor != other-&gt;svg_inherited_flags._textAnchor
</span><del>-        || svg_inherited_flags._writingMode != other-&gt;svg_inherited_flags._writingMode
</del><span class="cx">         || svg_inherited_flags._glyphOrientationHorizontal != other-&gt;svg_inherited_flags._glyphOrientationHorizontal
</span><span class="cx">         || svg_inherited_flags._glyphOrientationVertical != other-&gt;svg_inherited_flags._glyphOrientationVertical
</span><span class="cx">         || svg_noninherited_flags.f._alignmentBaseline != other-&gt;svg_noninherited_flags.f._alignmentBaseline
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleSVGRenderStyleh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/SVGRenderStyle.h (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/SVGRenderStyle.h        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/rendering/style/SVGRenderStyle.h        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -70,7 +70,6 @@
</span><span class="cx">     static LineJoin initialJoinStyle() { return MiterJoin; }
</span><span class="cx">     static EShapeRendering initialShapeRendering() { return SR_AUTO; }
</span><span class="cx">     static ETextAnchor initialTextAnchor() { return TA_START; }
</span><del>-    static SVGWritingMode initialWritingMode() { return WM_LRTB; }
</del><span class="cx">     static EGlyphOrientation initialGlyphOrientationHorizontal() { return GO_0DEG; }
</span><span class="cx">     static EGlyphOrientation initialGlyphOrientationVertical() { return GO_AUTO; }
</span><span class="cx">     static float initialFillOpacity() { return 1; }
</span><span class="lines">@@ -126,7 +125,6 @@
</span><span class="cx">     void setJoinStyle(LineJoin val) { svg_inherited_flags._joinStyle = val; }
</span><span class="cx">     void setShapeRendering(EShapeRendering val) { svg_inherited_flags._shapeRendering = val; }
</span><span class="cx">     void setTextAnchor(ETextAnchor val) { svg_inherited_flags._textAnchor = val; }
</span><del>-    void setWritingMode(SVGWritingMode val) { svg_inherited_flags._writingMode = val; }
</del><span class="cx">     void setGlyphOrientationHorizontal(EGlyphOrientation val) { svg_inherited_flags._glyphOrientationHorizontal = val; }
</span><span class="cx">     void setGlyphOrientationVertical(EGlyphOrientation val) { svg_inherited_flags._glyphOrientationVertical = val; }
</span><span class="cx">     void setMaskType(EMaskType val) { svg_noninherited_flags.f.maskType = val; }
</span><span class="lines">@@ -334,7 +332,6 @@
</span><span class="cx">     LineJoin joinStyle() const { return (LineJoin) svg_inherited_flags._joinStyle; }
</span><span class="cx">     EShapeRendering shapeRendering() const { return (EShapeRendering) svg_inherited_flags._shapeRendering; }
</span><span class="cx">     ETextAnchor textAnchor() const { return (ETextAnchor) svg_inherited_flags._textAnchor; }
</span><del>-    SVGWritingMode writingMode() const { return (SVGWritingMode) svg_inherited_flags._writingMode; }
</del><span class="cx">     EGlyphOrientation glyphOrientationHorizontal() const { return (EGlyphOrientation) svg_inherited_flags._glyphOrientationHorizontal; }
</span><span class="cx">     EGlyphOrientation glyphOrientationVertical() const { return (EGlyphOrientation) svg_inherited_flags._glyphOrientationVertical; }
</span><span class="cx">     float fillOpacity() const { return fill-&gt;opacity; }
</span><span class="lines">@@ -387,7 +384,6 @@
</span><span class="cx">     bool hasStroke() const { return strokePaintType() != SVGPaint::SVG_PAINTTYPE_NONE; }
</span><span class="cx">     bool hasVisibleStroke() const { return hasStroke() &amp;&amp; !strokeWidth().isZero(); }
</span><span class="cx">     bool hasFill() const { return fillPaintType() != SVGPaint::SVG_PAINTTYPE_NONE; }
</span><del>-    bool isVerticalWritingMode() const { return writingMode() == WM_TBRL || writingMode() == WM_TB; }
</del><span class="cx">     bool isolatesBlending() const { return hasMasker() || shadow(); }
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="lines">@@ -404,7 +400,6 @@
</span><span class="cx">                 &amp;&amp; (_textAnchor == other._textAnchor)
</span><span class="cx">                 &amp;&amp; (_colorInterpolation == other._colorInterpolation)
</span><span class="cx">                 &amp;&amp; (_colorInterpolationFilters == other._colorInterpolationFilters)
</span><del>-                &amp;&amp; (_writingMode == other._writingMode)
</del><span class="cx">                 &amp;&amp; (_glyphOrientationHorizontal == other._glyphOrientationHorizontal)
</span><span class="cx">                 &amp;&amp; (_glyphOrientationVertical == other._glyphOrientationVertical)
</span><span class="cx">                 &amp;&amp; (paintOrder == other.paintOrder);
</span><span class="lines">@@ -424,7 +419,6 @@
</span><span class="cx">         unsigned _textAnchor : 2; // ETextAnchor
</span><span class="cx">         unsigned _colorInterpolation : 2; // EColorInterpolation
</span><span class="cx">         unsigned _colorInterpolationFilters : 2; // EColorInterpolation
</span><del>-        unsigned _writingMode : 3; // SVGWritingMode
</del><span class="cx">         unsigned _glyphOrientationHorizontal : 3; // EGlyphOrientation
</span><span class="cx">         unsigned _glyphOrientationVertical : 3; // EGlyphOrientation
</span><span class="cx">         unsigned paintOrder : 3; // PaintOrder
</span><span class="lines">@@ -481,7 +475,6 @@
</span><span class="cx">         svg_inherited_flags._joinStyle = initialJoinStyle();
</span><span class="cx">         svg_inherited_flags._colorInterpolation = initialColorInterpolation();
</span><span class="cx">         svg_inherited_flags._colorInterpolationFilters = initialColorInterpolationFilters();
</span><del>-        svg_inherited_flags._writingMode = initialWritingMode();
</del><span class="cx">         svg_inherited_flags._glyphOrientationHorizontal = initialGlyphOrientationHorizontal();
</span><span class="cx">         svg_inherited_flags._glyphOrientationVertical = initialGlyphOrientationVertical();
</span><span class="cx">         svg_inherited_flags.paintOrder = initialPaintOrder();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleSVGRenderStyleDefsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.h (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.h        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.h        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -57,10 +57,6 @@
</span><span class="cx">         SR_AUTO, SR_OPTIMIZESPEED, SR_CRISPEDGES, SR_GEOMETRICPRECISION
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    enum SVGWritingMode {
-        WM_LRTB, WM_LR, WM_RLTB, WM_RL, WM_TBRL, WM_TB
-    };
-
</del><span class="cx">     enum EGlyphOrientation {
</span><span class="cx">         GO_0DEG, GO_90DEG, GO_180DEG, GO_270DEG, GO_AUTO
</span><span class="cx">     };
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgRenderSVGInlineTextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/RenderSVGInlineText.cpp (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/RenderSVGInlineText.cpp        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGInlineText.cpp        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -240,6 +240,11 @@
</span><span class="cx">     // FIXME: We need to better handle the case when we compute very small fonts below (below 1pt).
</span><span class="cx">     fontDescription.setComputedSize(Style::computedFontSizeFromSpecifiedSizeForSVGInlineText(fontDescription.computedSize(), fontDescription.isAbsoluteSize(), scalingFactor, renderer.document()));
</span><span class="cx"> 
</span><ins>+    // SVG controls its own glyph orientation, so don't allow writing-mode
+    // to affect it.
+    if (fontDescription.orientation() != FontOrientation::Horizontal)
+        fontDescription.setOrientation(FontOrientation::Horizontal);
+
</ins><span class="cx">     scaledFont = FontCascade(fontDescription, 0, 0);
</span><span class="cx">     scaledFont.update(&amp;renderer.document().fontSelector());
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGRenderTreeAsTextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -323,7 +323,7 @@
</span><span class="cx">         // FIXME: Remove this hack, once the new text layout engine is completly landed. We want to preserve the old layout test results for now.
</span><span class="cx">         ts &lt;&lt; &quot;chunk 1 &quot;;
</span><span class="cx">         ETextAnchor anchor = svgStyle.textAnchor();
</span><del>-        bool isVerticalText = svgStyle.isVerticalWritingMode();
</del><ins>+        bool isVerticalText = textBox-&gt;renderer().style().isVerticalWritingMode();
</ins><span class="cx">         if (anchor == TA_MIDDLE) {
</span><span class="cx">             ts &lt;&lt; &quot;(middle anchor&quot;;
</span><span class="cx">             if (isVerticalText)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGTextChunkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGTextChunk.cpp (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGTextChunk.cpp        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/rendering/svg/SVGTextChunk.cpp        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx">     if (!style.isLeftToRightDirection())
</span><span class="cx">         m_chunkStyle |= SVGTextChunk::RightToLeftText;
</span><span class="cx"> 
</span><del>-    if (svgStyle.isVerticalWritingMode())
</del><ins>+    if (style.isVerticalWritingMode())
</ins><span class="cx">         m_chunkStyle |= SVGTextChunk::VerticalText;
</span><span class="cx">     
</span><span class="cx">     switch (svgStyle.textAnchor()) {
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGTextLayoutEnginecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -220,7 +220,7 @@
</span><span class="cx">     const RenderStyle&amp; style = text.style();
</span><span class="cx"> 
</span><span class="cx">     textBox.clearTextFragments();
</span><del>-    m_isVerticalText = style.svgStyle().isVerticalWritingMode();
</del><ins>+    m_isVerticalText = style.isVerticalWritingMode();
</ins><span class="cx">     layoutTextOnLineOrPath(textBox, text, style);
</span><span class="cx"> 
</span><span class="cx">     if (m_inPathLayout) {
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingsvgSVGTextQuerycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/svg/SVGTextQuery.cpp (207756 => 207757)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/svg/SVGTextQuery.cpp        2016-10-24 11:50:29 UTC (rev 207756)
+++ trunk/Source/WebCore/rendering/svg/SVGTextQuery.cpp        2016-10-24 14:39:40 UTC (rev 207757)
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx">         queryData-&gt;textBox = m_textBoxes.at(textBoxPosition);
</span><span class="cx">         queryData-&gt;textRenderer = &amp;queryData-&gt;textBox-&gt;renderer();
</span><span class="cx"> 
</span><del>-        queryData-&gt;isVerticalText = queryData-&gt;textRenderer-&gt;style().svgStyle().isVerticalWritingMode();
</del><ins>+        queryData-&gt;isVerticalText = queryData-&gt;textRenderer-&gt;style().isVerticalWritingMode();
</ins><span class="cx">         const Vector&lt;SVGTextFragment&gt;&amp; fragments = queryData-&gt;textBox-&gt;textFragments();
</span><span class="cx">     
</span><span class="cx">         // Loop over all text fragments in this text box, firing a callback for each.
</span></span></pre>
</div>
</div>

</body>
</html>