<!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 <hyatt@apple.com>
+
+ [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 <youenn@apple.com>
</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: "t"
</span><span class="cx"> chunk 1 (vertical) text run 2 at (-10.40,33.52) startOffset 1 endOffset 2 height 33.52: "e"
</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: "7"
</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: "t"
</span><span class="cx"> chunk 1 (vertical) text run 2 at (69.60,33.52) startOffset 1 endOffset 2 height 33.52: "e"
</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: "-"
</span><span class="cx"> chunk 1 (vertical) text run 2 at (48.60,100.55) startOffset 1 endOffset 2 height 33.52: "7"
</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: "t"
</span><span class="cx"> chunk 1 (vertical) text run 2 at (169.60,33.52) startOffset 1 endOffset 2 height 33.52: "e"
</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: "s"
</span><span class="cx"> chunk 1 (vertical) text run 2 at (152.84,100.55) startOffset 1 endOffset 2 height 33.52: "u"
</span><span class="cx"> chunk 1 (vertical) text run 3 at (152.84,134.06) startOffset 2 endOffset 3 height 33.52: "b"
</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: "x"
</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: "t"
</span><span class="cx"> chunk 1 (vertical) text run 2 at (249.60,33.52) startOffset 1 endOffset 2 height 33.52: "e"
</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: "s"
</span><span class="cx"> chunk 1 (vertical) text run 2 at (266.36,100.55) startOffset 1 endOffset 2 height 33.52: "u"
</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: "p"
</span><span class="cx"> chunk 1 (vertical) text run 4 at (266.36,167.58) startOffset 3 endOffset 4 height 33.52: "e"
</span><span class="cx"> chunk 1 (vertical) text run 5 at (266.36,201.09) startOffset 4 endOffset 5 height 33.52: "r"
</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: "x"
</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: "t"
</span><span class="cx"> chunk 1 (vertical) text run 2 at (-10.40,33.52) startOffset 1 endOffset 2 height 33.52: "e"
</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: "7"
</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: "t"
</span><span class="cx"> chunk 1 (vertical) text run 2 at (69.60,33.52) startOffset 1 endOffset 2 height 33.52: "e"
</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: "-"
</span><span class="cx"> chunk 1 (vertical) text run 2 at (48.60,100.55) startOffset 1 endOffset 2 height 33.52: "7"
</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: "t"
</span><span class="cx"> chunk 1 (vertical) text run 2 at (169.60,33.52) startOffset 1 endOffset 2 height 33.52: "e"
</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: "s"
</span><span class="cx"> chunk 1 (vertical) text run 2 at (152.84,100.55) startOffset 1 endOffset 2 height 33.52: "u"
</span><span class="cx"> chunk 1 (vertical) text run 3 at (152.84,134.06) startOffset 2 endOffset 3 height 33.52: "b"
</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: "x"
</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: "t"
</span><span class="cx"> chunk 1 (vertical) text run 2 at (249.60,33.52) startOffset 1 endOffset 2 height 33.52: "e"
</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: "s"
</span><span class="cx"> chunk 1 (vertical) text run 2 at (266.36,100.55) startOffset 1 endOffset 2 height 33.52: "u"
</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: "p"
</span><span class="cx"> chunk 1 (vertical) text run 4 at (266.36,167.58) startOffset 3 endOffset 4 height 33.52: "e"
</span><span class="cx"> chunk 1 (vertical) text run 5 at (266.36,201.09) startOffset 4 endOffset 5 height 33.52: "r"
</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: "x"
</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 <hyatt@apple.com>
+
+ [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 <antti@apple.com>
</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->lineSnap());
</span><span class="cx"> case CSSPropertyWebkitLineAlign:
</span><span class="cx"> return CSSPrimitiveValue::create(style->lineAlign());
</span><del>- case CSSPropertyWebkitWritingMode:
</del><ins>+ case CSSPropertyWritingMode:
</ins><span class="cx"> return cssValuePool.createValue(style->writingMode());
</span><span class="cx"> case CSSPropertyWebkitTextCombine:
</span><span class="cx"> return cssValuePool.createValue(style->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<> 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<> 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<> inline CSSPrimitiveValue::CSSPrimitiveValue(const Color& 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) && 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&, CSSValue&);
</span><span class="cx"> #endif
</span><span class="cx"> static void applyValueWebkitTextZoom(StyleResolver&, CSSValue&);
</span><del>- static void applyValueWebkitWritingMode(StyleResolver&, CSSValue&);
</del><ins>+ static void applyValueWritingMode(StyleResolver&, CSSValue&);
</ins><span class="cx"> static void applyValueAlt(StyleResolver&, CSSValue&);
</span><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><span class="cx"> static void applyInitialWebkitScrollSnapPointsX(StyleResolver&);
</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& styleResolver, CSSValue& value)
</del><ins>+inline void StyleBuilderCustom::applyValueWritingMode(StyleResolver& styleResolver, CSSValue& value)
</ins><span class="cx"> {
</span><span class="cx"> styleResolver.setWritingMode(downcast<CSSPrimitiveValue>(value));
</span><span class="cx"> styleResolver.style()->setHasExplicitlySetWritingMode(true);
</span><span class="cx"> }
</span><del>-
</del><ins>+
</ins><span class="cx"> inline void StyleBuilderCustom::applyValueWebkitTextOrientation(StyleResolver& styleResolver, CSSValue& value)
</span><span class="cx"> {
</span><span class="cx"> styleResolver.setTextOrientation(downcast<CSSPrimitiveValue>(value));
</span><span class="lines">@@ -1177,8 +1177,43 @@
</span><span class="cx"> inline void StyleBuilderCustom::applyValueFill(StyleResolver& styleResolver, CSSValue& value)
</span><span class="cx"> {
</span><span class="cx"> SVGRenderStyle& svgStyle = styleResolver.style()->accessSVGStyle();
</span><del>- SVGPaint& svgPaint = downcast<SVGPaint>(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& svgPaint = downcast<SVGPaint>(value);
+ svgStyle.setFillPaint(svgPaint.paintType(), StyleBuilderConverter::convertSVGColor(styleResolver, svgPaint), svgPaint.uri(), styleResolver.applyPropertyToRegularStyle(), styleResolver.applyPropertyToVisitedLinkStyle());
+ return;
+ }
+
+ const CSSPrimitiveValue* localValue = value.isPrimitiveValue() ? &downcast<CSSPrimitiveValue>(value) : nullptr;
+ String url;
+ if (value.isValueList()) {
+ const CSSValueList& list = downcast<CSSValueList>(value);
+ url = downcast<CSSPrimitiveValue>(list.item(0))->stringValue();
+ localValue = downcast<CSSPrimitiveValue>(list.item(1));
+ }
+
+ if (!localValue)
+ return;
+
+ Color color;
+ SVGPaint::SVGPaintType paintType = SVGPaint::SVG_PAINTTYPE_RGBCOLOR;
+ if (localValue->isURI()) {
+ paintType = SVGPaint::SVG_PAINTTYPE_URI;
+ url = downcast<CSSPrimitiveValue>(localValue)->stringValue();
+ } else if (localValue->isValueID() && localValue->valueID() == CSSValueNone)
+ paintType = url.isEmpty() ? SVGPaint::SVG_PAINTTYPE_NONE : SVGPaint::SVG_PAINTTYPE_URI_NONE;
+ else if (localValue->isValueID() && localValue->valueID() == CSSValueCurrentcolor) {
+ color = styleResolver.style()->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& styleResolver)
</span><span class="lines">@@ -1197,8 +1232,43 @@
</span><span class="cx"> inline void StyleBuilderCustom::applyValueStroke(StyleResolver& styleResolver, CSSValue& value)
</span><span class="cx"> {
</span><span class="cx"> SVGRenderStyle& svgStyle = styleResolver.style()->accessSVGStyle();
</span><del>- auto& svgPaint = downcast<SVGPaint>(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& svgPaint = downcast<SVGPaint>(value);
+ svgStyle.setStrokePaint(svgPaint.paintType(), StyleBuilderConverter::convertSVGColor(styleResolver, svgPaint), svgPaint.uri(), styleResolver.applyPropertyToRegularStyle(), styleResolver.applyPropertyToVisitedLinkStyle());
+ return;
+ }
+
+ const CSSPrimitiveValue* localValue = value.isPrimitiveValue() ? &downcast<CSSPrimitiveValue>(value) : nullptr;
+ String url;
+ if (value.isValueList()) {
+ const CSSValueList& list = downcast<CSSValueList>(value);
+ url = downcast<CSSPrimitiveValue>(list.item(0))->stringValue();
+ localValue = downcast<CSSPrimitiveValue>(list.item(1));
+ }
+
+ if (!localValue)
+ return;
+
+ Color color;
+ SVGPaint::SVGPaintType paintType = SVGPaint::SVG_PAINTTYPE_RGBCOLOR;
+ if (localValue->isURI()) {
+ paintType = SVGPaint::SVG_PAINTTYPE_URI;
+ url = downcast<CSSPrimitiveValue>(localValue)->stringValue();
+ } else if (localValue->isValueID() && localValue->valueID() == CSSValueNone)
+ paintType = url.isEmpty() ? SVGPaint::SVG_PAINTTYPE_NONE : SVGPaint::SVG_PAINTTYPE_URI_NONE;
+ else if (localValue->isValueID() && localValue->valueID() == CSSValueCurrentcolor) {
+ color = styleResolver.style()->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& 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& matchedProperties : matchResult.matchedProperties()) {
</span><span class="lines">@@ -1301,10 +1301,10 @@
</span><span class="cx"> if (!property.value()->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<CSSPrimitiveValue>(*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 >= CSSValueHorizontalTb && valueID <= 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 >= CSSValueHorizontalTb && valueID <= 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 >= CSSValueHorizontalTb && valueID <= 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 >= CSSValueHorizontalTb && valueID <= 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->backgroundColor().isValid())
</span><span class="cx"> setInlineStyleProperty(CSSPropertyBackgroundColor, cue->backgroundColor().serialized());
</span><del>- setInlineStyleProperty(CSSPropertyWebkitWritingMode, cue->getCSSWritingMode(), false);
</del><ins>+ setInlineStyleProperty(CSSPropertyWritingMode, cue->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<float, float> 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, &isFixed).enclosingBoundingBox();
</span><del>- bool boxIsHorizontal = !box->isSVGInlineTextBox() ? box->isHorizontal() : !style().svgStyle().isVerticalWritingMode();
</del><ins>+ bool boxIsHorizontal = !box->isSVGInlineTextBox() ? box->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, &isFixed).enclosingBoundingBox();
</span><del>- bool boxIsHorizontal = !box->isSVGInlineTextBox() ? box->isHorizontal() : !style().svgStyle().isVerticalWritingMode();
</del><ins>+ bool boxIsHorizontal = !box->isSVGInlineTextBox() ? box->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<WritingMode>(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->svg_inherited_flags._textAnchor
</span><del>- || svg_inherited_flags._writingMode != other->svg_inherited_flags._writingMode
</del><span class="cx"> || svg_inherited_flags._glyphOrientationHorizontal != other->svg_inherited_flags._glyphOrientationHorizontal
</span><span class="cx"> || svg_inherited_flags._glyphOrientationVertical != other->svg_inherited_flags._glyphOrientationVertical
</span><span class="cx"> || svg_noninherited_flags.f._alignmentBaseline != other->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->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() && !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"> && (_textAnchor == other._textAnchor)
</span><span class="cx"> && (_colorInterpolation == other._colorInterpolation)
</span><span class="cx"> && (_colorInterpolationFilters == other._colorInterpolationFilters)
</span><del>- && (_writingMode == other._writingMode)
</del><span class="cx"> && (_glyphOrientationHorizontal == other._glyphOrientationHorizontal)
</span><span class="cx"> && (_glyphOrientationVertical == other._glyphOrientationVertical)
</span><span class="cx"> && (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(&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 << "chunk 1 ";
</span><span class="cx"> ETextAnchor anchor = svgStyle.textAnchor();
</span><del>- bool isVerticalText = svgStyle.isVerticalWritingMode();
</del><ins>+ bool isVerticalText = textBox->renderer().style().isVerticalWritingMode();
</ins><span class="cx"> if (anchor == TA_MIDDLE) {
</span><span class="cx"> ts << "(middle anchor";
</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& 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->textBox = m_textBoxes.at(textBoxPosition);
</span><span class="cx"> queryData->textRenderer = &queryData->textBox->renderer();
</span><span class="cx">
</span><del>- queryData->isVerticalText = queryData->textRenderer->style().svgStyle().isVerticalWritingMode();
</del><ins>+ queryData->isVerticalText = queryData->textRenderer->style().isVerticalWritingMode();
</ins><span class="cx"> const Vector<SVGTextFragment>& fragments = queryData->textBox->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>