<!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>[238262] 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/238262">238262</a></dd>
<dt>Author</dt> <dd>tsavell@apple.com</dd>
<dt>Date</dt> <dd>2018-11-15 17:07:42 -0800 (Thu, 15 Nov 2018)</dd>
</dl>

<h3>Log Message</h3>
<pre>Unreviewed, rolling out <a href="http://trac.webkit.org/projects/webkit/changeset/238244">r238244</a>.

Caused High Sierra test runs to fail early with 50 crashes and
casued 25 API failures.

Reverted changeset:

"[css-logical] Implement flow-relative margin, padding and
border shorthands"
https://bugs.webkit.org/show_bug.cgi?id=188697
https://trac.webkit.org/changeset/238244</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxbordercolorexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-color-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxbordercolorhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-color.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxbordershorthandsexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-shorthands-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxbordershorthandshtml">trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-shorthands.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxborderstyleexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-style-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxborderstylehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-style.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxborderwidthexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-width-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxborderwidthhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-width.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxinsetexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-inset-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxinsethtml">trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-inset.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxmarginexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-margin-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxmarginhtml">trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-margin.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxpaddingexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-padding-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxpaddinghtml">trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-padding.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxsizehtml">trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-size.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicalresourcestestboxpropertiesjs">trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/resources/test-box-properties.js</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicalresourcesw3cimportlog">trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/resources/w3c-import.log</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="#trunkSourceWebCorecssCSSComputedStyleDeclarationh">trunk/Source/WebCore/css/CSSComputedStyleDeclaration.h</a></li>
<li><a href="#trunkSourceWebCorecssCSSPropertiesjson">trunk/Source/WebCore/css/CSSProperties.json</a></li>
<li><a href="#trunkSourceWebCorecssCSSStyleDeclarationcpp">trunk/Source/WebCore/css/CSSStyleDeclaration.cpp</a></li>
<li><a href="#trunkSourceWebCorecssStylePropertiescpp">trunk/Source/WebCore/css/StyleProperties.cpp</a></li>
<li><a href="#trunkSourceWebCorecssStylePropertiesh">trunk/Source/WebCore/css/StyleProperties.h</a></li>
<li><a href="#trunkSourceWebCorecssmakeproppl">trunk/Source/WebCore/css/makeprop.pl</a></li>
<li><a href="#trunkSourceWebCorecssparserCSSPropertyParsercpp">trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp</a></li>
<li><a href="#trunkSourceWebCorecssparserCSSPropertyParserh">trunk/Source/WebCore/css/parser/CSSPropertyParser.h</a></li>
<li><a href="#trunkSourceWebCoreinspectoragentsInspectorCSSAgentcpp">trunk/Source/WebCore/inspector/agents/InspectorCSSAgent.cpp</a></li>
<li><a href="#trunkSourceWebCorepageRuntimeEnabledFeaturesh">trunk/Source/WebCore/page/RuntimeEnabledFeatures.h</a></li>
<li><a href="#trunkSourceWebKitChangeLog">trunk/Source/WebKit/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitSharedWebPreferencesyaml">trunk/Source/WebKit/Shared/WebPreferences.yaml</a></li>
<li><a href="#trunkSourceWebKitLegacymacChangeLog">trunk/Source/WebKitLegacy/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitLegacymacWebViewWebPreferenceKeysPrivateh">trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h</a></li>
<li><a href="#trunkSourceWebKitLegacymacWebViewWebPreferencesmm">trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm</a></li>
<li><a href="#trunkSourceWebKitLegacymacWebViewWebPreferencesPrivateh">trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h</a></li>
<li><a href="#trunkSourceWebKitLegacymacWebViewWebViewmm">trunk/Source/WebKitLegacy/mac/WebView/WebView.mm</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsDumpRenderTreeTestOptionscpp">trunk/Tools/DumpRenderTree/TestOptions.cpp</a></li>
<li><a href="#trunkToolsDumpRenderTreeTestOptionsh">trunk/Tools/DumpRenderTree/TestOptions.h</a></li>
<li><a href="#trunkToolsDumpRenderTreemacDumpRenderTreemm">trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm</a></li>
<li><a href="#trunkToolsScriptswebkitpystylecheckersjsoncheckerpy">trunk/Tools/Scripts/webkitpy/style/checkers/jsonchecker.py</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicalresourcestestsharedjs">trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/resources/test-shared.js</a></li>
<li>trunk/LayoutTests/platform/ios/webexposed/</li>
<li>trunk/LayoutTests/platform/mac/webexposed/</li>
<li>trunk/LayoutTests/platform/win/webexposed/</li>
<li>trunk/LayoutTests/webexposed/</li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog      2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/ChangeLog 2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2018-11-15  Truitt Savell  <tsavell@apple.com>
+
+        Unreviewed, rolling out r238244.
+
+        Caused High Sierra test runs to fail early with 50 crashes and
+        casued 25 API failures.
+
+        Reverted changeset:
+
+        "[css-logical] Implement flow-relative margin, padding and
+        border shorthands"
+        https://bugs.webkit.org/show_bug.cgi?id=188697
+        https://trac.webkit.org/changeset/238244
+
</ins><span class="cx"> 2018-11-15  Ryan Haddad  <ryanhaddad@apple.com>
</span><span class="cx"> 
</span><span class="cx">         imported/w3c/web-platform-tests/encoding tests take > 30 minutes to run on debug bots
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog 2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/imported/w3c/ChangeLog    2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2018-11-15  Truitt Savell  <tsavell@apple.com>
+
+        Unreviewed, rolling out r238244.
+
+        Caused High Sierra test runs to fail early with 50 crashes and
+        casued 25 API failures.
+
+        Reverted changeset:
+
+        "[css-logical] Implement flow-relative margin, padding and
+        border shorthands"
+        https://bugs.webkit.org/show_bug.cgi?id=188697
+        https://trac.webkit.org/changeset/238244
+
</ins><span class="cx"> 2018-11-15  Oriol Brufau  <obrufau@igalia.com>
</span><span class="cx"> 
</span><span class="cx">         [css-logical] Implement flow-relative margin, padding and border shorthands
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxbordercolorexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-color-expected.txt (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-color-expected.txt  2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-color-expected.txt     2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,46 +1,43 @@
</span><span class="cx"> 
</span><span class="cx"> PASS Test that logical border-*-color properties are supported. 
</span><del>-PASS Test that border-inline-color shorthand sets longhands and serializes correctly. 
-PASS Test that border-block-color shorthand sets longhands and serializes correctly. 
-PASS Test that border-color shorthand sets longhands and serializes correctly. 
</del><span class="cx"> PASS Test that logical border-*-color properties share computed values with their physical associates, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</span><del>-PASS Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</del><ins>+FAIL Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: horizontal-tb; direction: ltr; ', border-inline-start-color expected "rgb(1, 1, 1)" but got "rgb(0, 0, 0)"
</ins><span class="cx"> PASS Test that border-*-color properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</span><span class="cx"> PASS Test that border-*-color properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</span><span class="cx"> PASS Test that logical border-*-color properties share computed values with their physical associates, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</span><del>-PASS Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</del><ins>+FAIL Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: horizontal-tb; direction: rtl; ', border-inline-start-color expected "rgb(1, 1, 1)" but got "rgb(0, 0, 0)"
</ins><span class="cx"> PASS Test that border-*-color properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</span><span class="cx"> PASS Test that border-*-color properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</span><span class="cx"> PASS Test that logical border-*-color properties share computed values with their physical associates, with 'writing-mode: vertical-rl; direction: rtl; '. 
</span><del>-PASS Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: rtl; '. 
</del><ins>+FAIL Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-rl; direction: rtl; ', border-inline-start-color expected "rgb(1, 1, 1)" but got "rgb(0, 0, 0)"
</ins><span class="cx"> PASS Test that border-*-color properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: rtl; '. 
</span><span class="cx"> PASS Test that border-*-color properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: rtl; '. 
</span><span class="cx"> FAIL Test that logical border-*-color properties share computed values with their physical associates, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: rtl; ', border-bottom-color expected "rgb(1, 1, 1)" but got "rgb(4, 4, 4)"
</span><del>-FAIL Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: rtl; ', border-bottom-color expected "rgb(1, 1, 1)" but got "rgb(0, 0, 0)"
</del><ins>+FAIL Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: rtl; ', border-inline-start-color expected "rgb(1, 1, 1)" but got "rgb(0, 0, 0)"
</ins><span class="cx"> FAIL Test that border-*-color properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: 'border-inline-start-color' last on single declaration, 'writing-mode: sideways-rl; direction: rtl; ', border-block-end-color expected "rgb(1, 1, 1)" but got "rgb(4, 4, 4)"
</span><span class="cx"> FAIL Test that border-*-color properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: 'border-inline-start-color', two declarations, 'writing-mode: sideways-rl; direction: rtl; ', border-block-end-color expected "rgb(1, 1, 1)" but got "rgb(4, 4, 4)"
</span><span class="cx"> PASS Test that logical border-*-color properties share computed values with their physical associates, with 'writing-mode: vertical-rl; direction: ltr; '. 
</span><del>-PASS Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: ltr; '. 
</del><ins>+FAIL Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-rl; direction: ltr; ', border-inline-start-color expected "rgb(1, 1, 1)" but got "rgb(0, 0, 0)"
</ins><span class="cx"> PASS Test that border-*-color properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: ltr; '. 
</span><span class="cx"> PASS Test that border-*-color properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: ltr; '. 
</span><span class="cx"> FAIL Test that logical border-*-color properties share computed values with their physical associates, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: ltr; ', border-top-color expected "rgb(1, 1, 1)" but got "rgb(3, 3, 3)"
</span><del>-FAIL Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: ltr; ', border-top-color expected "rgb(1, 1, 1)" but got "rgb(0, 0, 0)"
</del><ins>+FAIL Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: ltr; ', border-inline-start-color expected "rgb(1, 1, 1)" but got "rgb(0, 0, 0)"
</ins><span class="cx"> FAIL Test that border-*-color properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: 'border-inline-start-color' last on single declaration, 'writing-mode: sideways-rl; direction: ltr; ', border-left-color expected "rgb(1, 1, 1)" but got "rgb(5, 5, 5)"
</span><span class="cx"> FAIL Test that border-*-color properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: 'border-inline-start-color', two declarations, 'writing-mode: sideways-rl; direction: ltr; ', border-left-color expected "rgb(1, 1, 1)" but got "rgb(5, 5, 5)"
</span><span class="cx"> PASS Test that logical border-*-color properties share computed values with their physical associates, with 'writing-mode: vertical-lr; direction: rtl; '. 
</span><del>-PASS Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: rtl; '. 
</del><ins>+FAIL Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-lr; direction: rtl; ', border-inline-start-color expected "rgb(1, 1, 1)" but got "rgb(0, 0, 0)"
</ins><span class="cx"> PASS Test that border-*-color properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: rtl; '. 
</span><span class="cx"> PASS Test that border-*-color properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: rtl; '. 
</span><span class="cx"> FAIL Test that logical border-*-color properties share computed values with their physical associates, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: ltr; ', border-bottom-color expected "rgb(1, 1, 1)" but got "rgb(4, 4, 4)"
</span><del>-FAIL Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: ltr; ', border-bottom-color expected "rgb(1, 1, 1)" but got "rgb(0, 0, 0)"
</del><ins>+FAIL Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: ltr; ', border-inline-start-color expected "rgb(1, 1, 1)" but got "rgb(0, 0, 0)"
</ins><span class="cx"> FAIL Test that border-*-color properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: 'border-inline-start-color' last on single declaration, 'writing-mode: sideways-lr; direction: ltr; ', border-left-color expected "rgb(1, 1, 1)" but got "rgb(5, 5, 5)"
</span><span class="cx"> FAIL Test that border-*-color properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: 'border-inline-start-color', two declarations, 'writing-mode: sideways-lr; direction: ltr; ', border-left-color expected "rgb(1, 1, 1)" but got "rgb(5, 5, 5)"
</span><span class="cx"> PASS Test that logical border-*-color properties share computed values with their physical associates, with 'writing-mode: vertical-lr; direction: ltr; '. 
</span><del>-PASS Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: ltr; '. 
</del><ins>+FAIL Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-lr; direction: ltr; ', border-inline-start-color expected "rgb(1, 1, 1)" but got "rgb(0, 0, 0)"
</ins><span class="cx"> PASS Test that border-*-color properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: ltr; '. 
</span><span class="cx"> PASS Test that border-*-color properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: ltr; '. 
</span><span class="cx"> FAIL Test that logical border-*-color properties share computed values with their physical associates, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: rtl; ', border-top-color expected "rgb(1, 1, 1)" but got "rgb(3, 3, 3)"
</span><del>-FAIL Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: rtl; ', border-top-color expected "rgb(1, 1, 1)" but got "rgb(0, 0, 0)"
</del><ins>+FAIL Test that border-*-color shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: rtl; ', border-inline-start-color expected "rgb(1, 1, 1)" but got "rgb(0, 0, 0)"
</ins><span class="cx"> FAIL Test that border-*-color properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: 'border-inline-start-color' last on single declaration, 'writing-mode: sideways-lr; direction: rtl; ', border-block-start-color expected "rgb(1, 1, 1)" but got "rgb(3, 3, 3)"
</span><span class="cx"> FAIL Test that border-*-color properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: 'border-inline-start-color', two declarations, 'writing-mode: sideways-lr; direction: rtl; ', border-block-start-color expected "rgb(1, 1, 1)" but got "rgb(3, 3, 3)"
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxbordercolorhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-color.html (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-color.html  2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-color.html     2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-<!DOCTYPE html> <!-- webkit-test-runner [ internal:CSSLogicalEnabled=true ] -->
</del><ins>+<!DOCTYPE html>
</ins><span class="cx"> <meta charset="utf-8" />
</span><span class="cx"> <title>CSS Logical Properties: Flow-Relative Border Colors</title>
</span><span class="cx"> <link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com" />
</span><span class="lines">@@ -9,7 +9,7 @@
</span><span class="cx"> 
</span><span class="cx"> <div id="log"></div>
</span><span class="cx"> 
</span><del>-<script type="module">
-import {runTests, createBoxPropertyGroup} from "./resources/test-box-properties.js";
</del><ins>+<script src="./resources/test-box-properties.js"></script>
+<script>
</ins><span class="cx"> runTests(createBoxPropertyGroup("border-*-color", {type: "color"}));
</span><span class="cx"> </script>
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxbordershorthandsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-shorthands-expected.txt (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-shorthands-expected.txt     2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-shorthands-expected.txt        2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,46 +1,43 @@
</span><span class="cx"> 
</span><span class="cx"> PASS Test that logical border-* properties are supported. 
</span><del>-PASS Test that border-inline shorthand sets longhands and serializes correctly. 
-PASS Test that border-block shorthand sets longhands and serializes correctly. 
-PASS Test that border shorthand sets longhands and serializes correctly. 
</del><span class="cx"> PASS Test that logical border-* properties share computed values with their physical associates, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</span><del>-PASS Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</del><ins>+FAIL Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: horizontal-tb; direction: ltr; ', border-inline-start expected "1px solid rgb(1, 1, 1)" but got "0px none rgb(0, 0, 0)"
</ins><span class="cx"> PASS Test that border-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</span><span class="cx"> PASS Test that border-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</span><span class="cx"> PASS Test that logical border-* properties share computed values with their physical associates, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</span><del>-PASS Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</del><ins>+FAIL Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: horizontal-tb; direction: rtl; ', border-inline-start expected "1px solid rgb(1, 1, 1)" but got "0px none rgb(0, 0, 0)"
</ins><span class="cx"> PASS Test that border-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</span><span class="cx"> PASS Test that border-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</span><span class="cx"> PASS Test that logical border-* properties share computed values with their physical associates, with 'writing-mode: vertical-rl; direction: rtl; '. 
</span><del>-PASS Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: rtl; '. 
</del><ins>+FAIL Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-rl; direction: rtl; ', border-inline-start expected "1px solid rgb(1, 1, 1)" but got "0px none rgb(0, 0, 0)"
</ins><span class="cx"> PASS Test that border-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: rtl; '. 
</span><span class="cx"> PASS Test that border-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: rtl; '. 
</span><span class="cx"> FAIL Test that logical border-* properties share computed values with their physical associates, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: rtl; ', border-bottom expected "1px solid rgb(1, 1, 1)" but got "4px double rgb(4, 4, 4)"
</span><del>-FAIL Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: rtl; ', border-bottom expected "1px solid rgb(1, 1, 1)" but got "0px none rgb(0, 0, 0)"
</del><ins>+FAIL Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: rtl; ', border-inline-start expected "1px solid rgb(1, 1, 1)" but got "0px none rgb(0, 0, 0)"
</ins><span class="cx"> FAIL Test that border-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: 'border-inline-start' last on single declaration, 'writing-mode: sideways-rl; direction: rtl; ', border-block-end expected "1px solid rgb(1, 1, 1)" but got "4px double rgb(4, 4, 4)"
</span><span class="cx"> FAIL Test that border-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: 'border-inline-start', two declarations, 'writing-mode: sideways-rl; direction: rtl; ', border-block-end expected "1px solid rgb(1, 1, 1)" but got "4px double rgb(4, 4, 4)"
</span><span class="cx"> PASS Test that logical border-* properties share computed values with their physical associates, with 'writing-mode: vertical-rl; direction: ltr; '. 
</span><del>-PASS Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: ltr; '. 
</del><ins>+FAIL Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-rl; direction: ltr; ', border-inline-start expected "1px solid rgb(1, 1, 1)" but got "0px none rgb(0, 0, 0)"
</ins><span class="cx"> PASS Test that border-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: ltr; '. 
</span><span class="cx"> PASS Test that border-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: ltr; '. 
</span><span class="cx"> FAIL Test that logical border-* properties share computed values with their physical associates, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: ltr; ', border-top expected "1px solid rgb(1, 1, 1)" but got "3px dotted rgb(3, 3, 3)"
</span><del>-FAIL Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: ltr; ', border-top expected "1px solid rgb(1, 1, 1)" but got "0px none rgb(0, 0, 0)"
</del><ins>+FAIL Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: ltr; ', border-inline-start expected "1px solid rgb(1, 1, 1)" but got "0px none rgb(0, 0, 0)"
</ins><span class="cx"> FAIL Test that border-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: 'border-inline-start' last on single declaration, 'writing-mode: sideways-rl; direction: ltr; ', border-left expected "1px solid rgb(1, 1, 1)" but got "5px groove rgb(5, 5, 5)"
</span><span class="cx"> FAIL Test that border-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: 'border-inline-start', two declarations, 'writing-mode: sideways-rl; direction: ltr; ', border-left expected "1px solid rgb(1, 1, 1)" but got "5px groove rgb(5, 5, 5)"
</span><span class="cx"> PASS Test that logical border-* properties share computed values with their physical associates, with 'writing-mode: vertical-lr; direction: rtl; '. 
</span><del>-PASS Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: rtl; '. 
</del><ins>+FAIL Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-lr; direction: rtl; ', border-inline-start expected "1px solid rgb(1, 1, 1)" but got "0px none rgb(0, 0, 0)"
</ins><span class="cx"> PASS Test that border-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: rtl; '. 
</span><span class="cx"> PASS Test that border-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: rtl; '. 
</span><span class="cx"> FAIL Test that logical border-* properties share computed values with their physical associates, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: ltr; ', border-bottom expected "1px solid rgb(1, 1, 1)" but got "4px double rgb(4, 4, 4)"
</span><del>-FAIL Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: ltr; ', border-bottom expected "1px solid rgb(1, 1, 1)" but got "0px none rgb(0, 0, 0)"
</del><ins>+FAIL Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: ltr; ', border-inline-start expected "1px solid rgb(1, 1, 1)" but got "0px none rgb(0, 0, 0)"
</ins><span class="cx"> FAIL Test that border-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: 'border-inline-start' last on single declaration, 'writing-mode: sideways-lr; direction: ltr; ', border-left expected "1px solid rgb(1, 1, 1)" but got "5px groove rgb(5, 5, 5)"
</span><span class="cx"> FAIL Test that border-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: 'border-inline-start', two declarations, 'writing-mode: sideways-lr; direction: ltr; ', border-left expected "1px solid rgb(1, 1, 1)" but got "5px groove rgb(5, 5, 5)"
</span><span class="cx"> PASS Test that logical border-* properties share computed values with their physical associates, with 'writing-mode: vertical-lr; direction: ltr; '. 
</span><del>-PASS Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: ltr; '. 
</del><ins>+FAIL Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-lr; direction: ltr; ', border-inline-start expected "1px solid rgb(1, 1, 1)" but got "0px none rgb(0, 0, 0)"
</ins><span class="cx"> PASS Test that border-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: ltr; '. 
</span><span class="cx"> PASS Test that border-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: ltr; '. 
</span><span class="cx"> FAIL Test that logical border-* properties share computed values with their physical associates, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: rtl; ', border-top expected "1px solid rgb(1, 1, 1)" but got "3px dotted rgb(3, 3, 3)"
</span><del>-FAIL Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: rtl; ', border-top expected "1px solid rgb(1, 1, 1)" but got "0px none rgb(0, 0, 0)"
</del><ins>+FAIL Test that border-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: rtl; ', border-inline-start expected "1px solid rgb(1, 1, 1)" but got "0px none rgb(0, 0, 0)"
</ins><span class="cx"> FAIL Test that border-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: 'border-inline-start' last on single declaration, 'writing-mode: sideways-lr; direction: rtl; ', border-block-start expected "1px solid rgb(1, 1, 1)" but got "3px dotted rgb(3, 3, 3)"
</span><span class="cx"> FAIL Test that border-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: 'border-inline-start', two declarations, 'writing-mode: sideways-lr; direction: rtl; ', border-block-start expected "1px solid rgb(1, 1, 1)" but got "3px dotted rgb(3, 3, 3)"
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxbordershorthandshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-shorthands.html (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-shorthands.html     2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-shorthands.html        2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-<!DOCTYPE html> <!-- webkit-test-runner [ internal:CSSLogicalEnabled=true ] -->
</del><ins>+<!DOCTYPE html>
</ins><span class="cx"> <meta charset="utf-8" />
</span><span class="cx"> <title>CSS Logical Properties: Flow-Relative Border Shorthands</title>
</span><span class="cx"> <link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com" />
</span><span class="lines">@@ -9,7 +9,7 @@
</span><span class="cx"> 
</span><span class="cx"> <div id="log"></div>
</span><span class="cx"> 
</span><del>-<script type="module">
-import {runTests, createBoxPropertyGroup} from "./resources/test-box-properties.js";
</del><ins>+<script src="./resources/test-box-properties.js"></script>
+<script>
</ins><span class="cx"> runTests(createBoxPropertyGroup("border-*", {type: ["length", "border-style", "color"]}));
</span><span class="cx"> </script>
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxborderstyleexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-style-expected.txt (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-style-expected.txt  2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-style-expected.txt     2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,46 +1,43 @@
</span><span class="cx"> 
</span><span class="cx"> PASS Test that logical border-*-style properties are supported. 
</span><del>-PASS Test that border-inline-style shorthand sets longhands and serializes correctly. 
-PASS Test that border-block-style shorthand sets longhands and serializes correctly. 
-PASS Test that border-style shorthand sets longhands and serializes correctly. 
</del><span class="cx"> PASS Test that logical border-*-style properties share computed values with their physical associates, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</span><del>-PASS Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</del><ins>+FAIL Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: horizontal-tb; direction: ltr; ', border-inline-start-style expected "solid" but got "none"
</ins><span class="cx"> PASS Test that border-*-style properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</span><span class="cx"> PASS Test that border-*-style properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</span><span class="cx"> PASS Test that logical border-*-style properties share computed values with their physical associates, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</span><del>-PASS Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</del><ins>+FAIL Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: horizontal-tb; direction: rtl; ', border-inline-start-style expected "solid" but got "none"
</ins><span class="cx"> PASS Test that border-*-style properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</span><span class="cx"> PASS Test that border-*-style properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</span><span class="cx"> PASS Test that logical border-*-style properties share computed values with their physical associates, with 'writing-mode: vertical-rl; direction: rtl; '. 
</span><del>-PASS Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: rtl; '. 
</del><ins>+FAIL Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-rl; direction: rtl; ', border-inline-start-style expected "solid" but got "none"
</ins><span class="cx"> PASS Test that border-*-style properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: rtl; '. 
</span><span class="cx"> PASS Test that border-*-style properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: rtl; '. 
</span><span class="cx"> FAIL Test that logical border-*-style properties share computed values with their physical associates, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: rtl; ', border-bottom-style expected "solid" but got "double"
</span><del>-FAIL Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: rtl; ', border-bottom-style expected "solid" but got "none"
</del><ins>+FAIL Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: rtl; ', border-inline-start-style expected "solid" but got "none"
</ins><span class="cx"> FAIL Test that border-*-style properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: 'border-inline-start-style' last on single declaration, 'writing-mode: sideways-rl; direction: rtl; ', border-block-end-style expected "solid" but got "double"
</span><span class="cx"> FAIL Test that border-*-style properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: 'border-inline-start-style', two declarations, 'writing-mode: sideways-rl; direction: rtl; ', border-block-end-style expected "solid" but got "double"
</span><span class="cx"> PASS Test that logical border-*-style properties share computed values with their physical associates, with 'writing-mode: vertical-rl; direction: ltr; '. 
</span><del>-PASS Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: ltr; '. 
</del><ins>+FAIL Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-rl; direction: ltr; ', border-inline-start-style expected "solid" but got "none"
</ins><span class="cx"> PASS Test that border-*-style properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: ltr; '. 
</span><span class="cx"> PASS Test that border-*-style properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: ltr; '. 
</span><span class="cx"> FAIL Test that logical border-*-style properties share computed values with their physical associates, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: ltr; ', border-top-style expected "solid" but got "dotted"
</span><del>-FAIL Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: ltr; ', border-top-style expected "solid" but got "none"
</del><ins>+FAIL Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: ltr; ', border-inline-start-style expected "solid" but got "none"
</ins><span class="cx"> FAIL Test that border-*-style properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: 'border-inline-start-style' last on single declaration, 'writing-mode: sideways-rl; direction: ltr; ', border-left-style expected "solid" but got "groove"
</span><span class="cx"> FAIL Test that border-*-style properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: 'border-inline-start-style', two declarations, 'writing-mode: sideways-rl; direction: ltr; ', border-left-style expected "solid" but got "groove"
</span><span class="cx"> PASS Test that logical border-*-style properties share computed values with their physical associates, with 'writing-mode: vertical-lr; direction: rtl; '. 
</span><del>-PASS Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: rtl; '. 
</del><ins>+FAIL Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-lr; direction: rtl; ', border-inline-start-style expected "solid" but got "none"
</ins><span class="cx"> PASS Test that border-*-style properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: rtl; '. 
</span><span class="cx"> PASS Test that border-*-style properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: rtl; '. 
</span><span class="cx"> FAIL Test that logical border-*-style properties share computed values with their physical associates, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: ltr; ', border-bottom-style expected "solid" but got "double"
</span><del>-FAIL Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: ltr; ', border-bottom-style expected "solid" but got "none"
</del><ins>+FAIL Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: ltr; ', border-inline-start-style expected "solid" but got "none"
</ins><span class="cx"> FAIL Test that border-*-style properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: 'border-inline-start-style' last on single declaration, 'writing-mode: sideways-lr; direction: ltr; ', border-left-style expected "solid" but got "groove"
</span><span class="cx"> FAIL Test that border-*-style properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: 'border-inline-start-style', two declarations, 'writing-mode: sideways-lr; direction: ltr; ', border-left-style expected "solid" but got "groove"
</span><span class="cx"> PASS Test that logical border-*-style properties share computed values with their physical associates, with 'writing-mode: vertical-lr; direction: ltr; '. 
</span><del>-PASS Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: ltr; '. 
</del><ins>+FAIL Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-lr; direction: ltr; ', border-inline-start-style expected "solid" but got "none"
</ins><span class="cx"> PASS Test that border-*-style properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: ltr; '. 
</span><span class="cx"> PASS Test that border-*-style properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: ltr; '. 
</span><span class="cx"> FAIL Test that logical border-*-style properties share computed values with their physical associates, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: rtl; ', border-top-style expected "solid" but got "dotted"
</span><del>-FAIL Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: rtl; ', border-top-style expected "solid" but got "none"
</del><ins>+FAIL Test that border-*-style shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: rtl; ', border-inline-start-style expected "solid" but got "none"
</ins><span class="cx"> FAIL Test that border-*-style properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: 'border-inline-start-style' last on single declaration, 'writing-mode: sideways-lr; direction: rtl; ', border-block-start-style expected "solid" but got "dotted"
</span><span class="cx"> FAIL Test that border-*-style properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: 'border-inline-start-style', two declarations, 'writing-mode: sideways-lr; direction: rtl; ', border-block-start-style expected "solid" but got "dotted"
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxborderstylehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-style.html (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-style.html  2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-style.html     2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-<!DOCTYPE html> <!-- webkit-test-runner [ internal:CSSLogicalEnabled=true ] -->
</del><ins>+<!DOCTYPE html>
</ins><span class="cx"> <meta charset="utf-8" />
</span><span class="cx"> <title>CSS Logical Properties: Flow-Relative Border Styles</title>
</span><span class="cx"> <link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com" />
</span><span class="lines">@@ -9,7 +9,7 @@
</span><span class="cx"> 
</span><span class="cx"> <div id="log"></div>
</span><span class="cx"> 
</span><del>-<script type="module">
-import {runTests, createBoxPropertyGroup} from "./resources/test-box-properties.js";
</del><ins>+<script src="./resources/test-box-properties.js"></script>
+<script>
</ins><span class="cx"> runTests(createBoxPropertyGroup("border-*-style", {type: "border-style"}));
</span><span class="cx"> </script>
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxborderwidthexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-width-expected.txt (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-width-expected.txt  2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-width-expected.txt     2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,46 +1,43 @@
</span><span class="cx"> 
</span><span class="cx"> PASS Test that logical border-*-width properties are supported. 
</span><del>-PASS Test that border-inline-width shorthand sets longhands and serializes correctly. 
-PASS Test that border-block-width shorthand sets longhands and serializes correctly. 
-PASS Test that border-width shorthand sets longhands and serializes correctly. 
</del><span class="cx"> PASS Test that logical border-*-width properties share computed values with their physical associates, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</span><del>-PASS Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</del><ins>+FAIL Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: horizontal-tb; direction: ltr; ', border-inline-start-width expected "1px" but got "3px"
</ins><span class="cx"> PASS Test that border-*-width properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</span><span class="cx"> PASS Test that border-*-width properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</span><span class="cx"> PASS Test that logical border-*-width properties share computed values with their physical associates, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</span><del>-PASS Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</del><ins>+FAIL Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: horizontal-tb; direction: rtl; ', border-inline-start-width expected "1px" but got "3px"
</ins><span class="cx"> PASS Test that border-*-width properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</span><span class="cx"> PASS Test that border-*-width properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</span><span class="cx"> PASS Test that logical border-*-width properties share computed values with their physical associates, with 'writing-mode: vertical-rl; direction: rtl; '. 
</span><del>-PASS Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: rtl; '. 
</del><ins>+FAIL Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-rl; direction: rtl; ', border-inline-start-width expected "1px" but got "3px"
</ins><span class="cx"> PASS Test that border-*-width properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: rtl; '. 
</span><span class="cx"> PASS Test that border-*-width properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: rtl; '. 
</span><span class="cx"> FAIL Test that logical border-*-width properties share computed values with their physical associates, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: rtl; ', border-bottom-width expected "1px" but got "4px"
</span><del>-FAIL Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: rtl; ', border-bottom-width expected "1px" but got "3px"
</del><ins>+FAIL Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: rtl; ', border-inline-start-width expected "1px" but got "3px"
</ins><span class="cx"> FAIL Test that border-*-width properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: 'border-inline-start-width' last on single declaration, 'writing-mode: sideways-rl; direction: rtl; ', border-block-end-width expected "1px" but got "4px"
</span><span class="cx"> FAIL Test that border-*-width properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: 'border-inline-start-width', two declarations, 'writing-mode: sideways-rl; direction: rtl; ', border-block-end-width expected "1px" but got "4px"
</span><span class="cx"> PASS Test that logical border-*-width properties share computed values with their physical associates, with 'writing-mode: vertical-rl; direction: ltr; '. 
</span><del>-PASS Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: ltr; '. 
</del><ins>+FAIL Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-rl; direction: ltr; ', border-inline-start-width expected "1px" but got "3px"
</ins><span class="cx"> PASS Test that border-*-width properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: ltr; '. 
</span><span class="cx"> PASS Test that border-*-width properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: ltr; '. 
</span><span class="cx"> FAIL Test that logical border-*-width properties share computed values with their physical associates, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: ltr; ', border-top-width expected "1px" but got "3px"
</span><del>-FAIL Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: ltr; ', border-top-width expected "1px" but got "3px"
</del><ins>+FAIL Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: ltr; ', border-inline-start-width expected "1px" but got "3px"
</ins><span class="cx"> FAIL Test that border-*-width properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: 'border-inline-start-width' last on single declaration, 'writing-mode: sideways-rl; direction: ltr; ', border-left-width expected "1px" but got "5px"
</span><span class="cx"> FAIL Test that border-*-width properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: 'border-inline-start-width', two declarations, 'writing-mode: sideways-rl; direction: ltr; ', border-left-width expected "1px" but got "5px"
</span><span class="cx"> PASS Test that logical border-*-width properties share computed values with their physical associates, with 'writing-mode: vertical-lr; direction: rtl; '. 
</span><del>-PASS Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: rtl; '. 
</del><ins>+FAIL Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-lr; direction: rtl; ', border-inline-start-width expected "1px" but got "3px"
</ins><span class="cx"> PASS Test that border-*-width properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: rtl; '. 
</span><span class="cx"> PASS Test that border-*-width properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: rtl; '. 
</span><span class="cx"> FAIL Test that logical border-*-width properties share computed values with their physical associates, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: ltr; ', border-bottom-width expected "1px" but got "4px"
</span><del>-FAIL Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: ltr; ', border-bottom-width expected "1px" but got "3px"
</del><ins>+FAIL Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: ltr; ', border-inline-start-width expected "1px" but got "3px"
</ins><span class="cx"> FAIL Test that border-*-width properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: 'border-inline-start-width' last on single declaration, 'writing-mode: sideways-lr; direction: ltr; ', border-left-width expected "1px" but got "5px"
</span><span class="cx"> FAIL Test that border-*-width properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: 'border-inline-start-width', two declarations, 'writing-mode: sideways-lr; direction: ltr; ', border-left-width expected "1px" but got "5px"
</span><span class="cx"> PASS Test that logical border-*-width properties share computed values with their physical associates, with 'writing-mode: vertical-lr; direction: ltr; '. 
</span><del>-PASS Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: ltr; '. 
</del><ins>+FAIL Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-lr; direction: ltr; ', border-inline-start-width expected "1px" but got "3px"
</ins><span class="cx"> PASS Test that border-*-width properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: ltr; '. 
</span><span class="cx"> PASS Test that border-*-width properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: ltr; '. 
</span><span class="cx"> FAIL Test that logical border-*-width properties share computed values with their physical associates, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: rtl; ', border-top-width expected "1px" but got "3px"
</span><del>-FAIL Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: rtl; ', border-top-width expected "1px" but got "3px"
</del><ins>+FAIL Test that border-*-width shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: rtl; ', border-inline-start-width expected "1px" but got "3px"
</ins><span class="cx"> FAIL Test that border-*-width properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: 'border-inline-start-width' last on single declaration, 'writing-mode: sideways-lr; direction: rtl; ', border-block-start-width expected "1px" but got "3px"
</span><span class="cx"> FAIL Test that border-*-width properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: 'border-inline-start-width', two declarations, 'writing-mode: sideways-lr; direction: rtl; ', border-block-start-width expected "1px" but got "3px"
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxborderwidthhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-width.html (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-width.html  2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-border-width.html     2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-<!DOCTYPE html> <!-- webkit-test-runner [ internal:CSSLogicalEnabled=true ] -->
</del><ins>+<!DOCTYPE html>
</ins><span class="cx"> <meta charset="utf-8" />
</span><span class="cx"> <title>CSS Logical Properties: Flow-Relative Border Widths</title>
</span><span class="cx"> <link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com" />
</span><span class="lines">@@ -9,8 +9,8 @@
</span><span class="cx"> 
</span><span class="cx"> <div id="log"></div>
</span><span class="cx"> 
</span><del>-<script type="module">
-import {runTests, createBoxPropertyGroup} from "./resources/test-box-properties.js";
</del><ins>+<script src="./resources/test-box-properties.js"></script>
+<script>
</ins><span class="cx"> runTests(createBoxPropertyGroup("border-*-width", {
</span><span class="cx">   type: "length",
</span><span class="cx">   prerequisites: {"border-*-style": "solid"},
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxinsetexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-inset-expected.txt (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-inset-expected.txt 2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-inset-expected.txt    2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,8 +1,5 @@
</span><span class="cx"> 
</span><span class="cx"> FAIL Test that logical inset-* properties are supported. assert_equals: logical properties in inline style, inset-inline-start expected "1px" but got ""
</span><del>-FAIL Test that inset-inline shorthand sets longhands and serializes correctly. assert_equals: shorthand in inline style, inset-inline expected "1px 2px" but got ""
-FAIL Test that inset-block shorthand sets longhands and serializes correctly. assert_equals: shorthand in inline style, inset-block expected "1px 2px" but got ""
-FAIL Test that inset shorthand sets longhands and serializes correctly. assert_equals: shorthand in inline style, inset expected "1px 2px 3px 4px" but got ""
</del><span class="cx"> FAIL Test that logical inset-* properties share computed values with their physical associates, with 'writing-mode: horizontal-tb; direction: ltr; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: horizontal-tb; direction: ltr; ', inset-inline-start expected "1px" but got ""
</span><span class="cx"> FAIL Test that inset-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: horizontal-tb; direction: ltr; ', inset-inline-start expected "1px" but got ""
</span><span class="cx"> FAIL Test that inset-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: ltr; '. assert_equals: 'inset-inline-start' last on single declaration, 'writing-mode: horizontal-tb; direction: ltr; ', left expected "5px" but got "1px"
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxinsethtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-inset.html (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-inset.html 2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-inset.html    2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -9,8 +9,8 @@
</span><span class="cx"> 
</span><span class="cx"> <div id="log"></div>
</span><span class="cx"> 
</span><del>-<script type="module">
-import {runTests, createBoxPropertyGroup} from "./resources/test-box-properties.js";
</del><ins>+<script src="./resources/test-box-properties.js"></script>
+<script>
</ins><span class="cx"> runTests(createBoxPropertyGroup("inset-*", {
</span><span class="cx">   type: "length",
</span><span class="cx">   prerequisites: {"position": "relative"},
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxmarginexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-margin-expected.txt (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-margin-expected.txt        2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-margin-expected.txt   2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,46 +1,43 @@
</span><span class="cx"> 
</span><span class="cx"> PASS Test that logical margin-* properties are supported. 
</span><del>-PASS Test that margin-inline shorthand sets longhands and serializes correctly. 
-PASS Test that margin-block shorthand sets longhands and serializes correctly. 
-PASS Test that margin shorthand sets longhands and serializes correctly. 
</del><span class="cx"> PASS Test that logical margin-* properties share computed values with their physical associates, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</span><del>-PASS Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</del><ins>+FAIL Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: horizontal-tb; direction: ltr; ', margin-inline-start expected "1px" but got "0px"
</ins><span class="cx"> PASS Test that margin-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</span><span class="cx"> PASS Test that margin-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</span><span class="cx"> PASS Test that logical margin-* properties share computed values with their physical associates, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</span><del>-PASS Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</del><ins>+FAIL Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: horizontal-tb; direction: rtl; ', margin-inline-start expected "1px" but got "0px"
</ins><span class="cx"> PASS Test that margin-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</span><span class="cx"> PASS Test that margin-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</span><span class="cx"> PASS Test that logical margin-* properties share computed values with their physical associates, with 'writing-mode: vertical-rl; direction: rtl; '. 
</span><del>-PASS Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: rtl; '. 
</del><ins>+FAIL Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-rl; direction: rtl; ', margin-inline-start expected "1px" but got "0px"
</ins><span class="cx"> PASS Test that margin-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: rtl; '. 
</span><span class="cx"> PASS Test that margin-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: rtl; '. 
</span><span class="cx"> FAIL Test that logical margin-* properties share computed values with their physical associates, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: rtl; ', margin-bottom expected "1px" but got "4px"
</span><del>-FAIL Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: rtl; ', margin-bottom expected "1px" but got "0px"
</del><ins>+FAIL Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: rtl; ', margin-inline-start expected "1px" but got "0px"
</ins><span class="cx"> FAIL Test that margin-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: 'margin-inline-start' last on single declaration, 'writing-mode: sideways-rl; direction: rtl; ', margin-block-end expected "1px" but got "4px"
</span><span class="cx"> FAIL Test that margin-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: 'margin-inline-start', two declarations, 'writing-mode: sideways-rl; direction: rtl; ', margin-block-end expected "1px" but got "4px"
</span><span class="cx"> PASS Test that logical margin-* properties share computed values with their physical associates, with 'writing-mode: vertical-rl; direction: ltr; '. 
</span><del>-PASS Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: ltr; '. 
</del><ins>+FAIL Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-rl; direction: ltr; ', margin-inline-start expected "1px" but got "0px"
</ins><span class="cx"> PASS Test that margin-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: ltr; '. 
</span><span class="cx"> PASS Test that margin-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: ltr; '. 
</span><span class="cx"> FAIL Test that logical margin-* properties share computed values with their physical associates, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: ltr; ', margin-top expected "1px" but got "3px"
</span><del>-FAIL Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: ltr; ', margin-top expected "1px" but got "0px"
</del><ins>+FAIL Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: ltr; ', margin-inline-start expected "1px" but got "0px"
</ins><span class="cx"> FAIL Test that margin-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: 'margin-inline-start' last on single declaration, 'writing-mode: sideways-rl; direction: ltr; ', margin-left expected "1px" but got "5px"
</span><span class="cx"> FAIL Test that margin-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: 'margin-inline-start', two declarations, 'writing-mode: sideways-rl; direction: ltr; ', margin-left expected "1px" but got "5px"
</span><span class="cx"> PASS Test that logical margin-* properties share computed values with their physical associates, with 'writing-mode: vertical-lr; direction: rtl; '. 
</span><del>-PASS Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: rtl; '. 
</del><ins>+FAIL Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-lr; direction: rtl; ', margin-inline-start expected "1px" but got "0px"
</ins><span class="cx"> PASS Test that margin-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: rtl; '. 
</span><span class="cx"> PASS Test that margin-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: rtl; '. 
</span><span class="cx"> FAIL Test that logical margin-* properties share computed values with their physical associates, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: ltr; ', margin-bottom expected "1px" but got "4px"
</span><del>-FAIL Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: ltr; ', margin-bottom expected "1px" but got "0px"
</del><ins>+FAIL Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: ltr; ', margin-inline-start expected "1px" but got "0px"
</ins><span class="cx"> FAIL Test that margin-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: 'margin-inline-start' last on single declaration, 'writing-mode: sideways-lr; direction: ltr; ', margin-left expected "1px" but got "5px"
</span><span class="cx"> FAIL Test that margin-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: 'margin-inline-start', two declarations, 'writing-mode: sideways-lr; direction: ltr; ', margin-left expected "1px" but got "5px"
</span><span class="cx"> PASS Test that logical margin-* properties share computed values with their physical associates, with 'writing-mode: vertical-lr; direction: ltr; '. 
</span><del>-PASS Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: ltr; '. 
</del><ins>+FAIL Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-lr; direction: ltr; ', margin-inline-start expected "1px" but got "0px"
</ins><span class="cx"> PASS Test that margin-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: ltr; '. 
</span><span class="cx"> PASS Test that margin-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: ltr; '. 
</span><span class="cx"> FAIL Test that logical margin-* properties share computed values with their physical associates, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: rtl; ', margin-top expected "1px" but got "3px"
</span><del>-FAIL Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: rtl; ', margin-top expected "1px" but got "0px"
</del><ins>+FAIL Test that margin-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: rtl; ', margin-inline-start expected "1px" but got "0px"
</ins><span class="cx"> FAIL Test that margin-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: 'margin-inline-start' last on single declaration, 'writing-mode: sideways-lr; direction: rtl; ', margin-block-start expected "1px" but got "3px"
</span><span class="cx"> FAIL Test that margin-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: 'margin-inline-start', two declarations, 'writing-mode: sideways-lr; direction: rtl; ', margin-block-start expected "1px" but got "3px"
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxmarginhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-margin.html (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-margin.html        2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-margin.html   2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-<!DOCTYPE html> <!-- webkit-test-runner [ internal:CSSLogicalEnabled=true ] -->
</del><ins>+<!DOCTYPE html>
</ins><span class="cx"> <meta charset="utf-8" />
</span><span class="cx"> <title>CSS Logical Properties: Flow-Relative Margins</title>
</span><span class="cx"> <link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com" />
</span><span class="lines">@@ -9,7 +9,7 @@
</span><span class="cx"> 
</span><span class="cx"> <div id="log"></div>
</span><span class="cx"> 
</span><del>-<script type="module">
-import {runTests, createBoxPropertyGroup} from "./resources/test-box-properties.js";
</del><ins>+<script src="./resources/test-box-properties.js"></script>
+<script>
</ins><span class="cx"> runTests(createBoxPropertyGroup("margin-*", {type: "length"}));
</span><span class="cx"> </script>
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxpaddingexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-padding-expected.txt (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-padding-expected.txt       2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-padding-expected.txt  2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,46 +1,43 @@
</span><span class="cx"> 
</span><span class="cx"> PASS Test that logical padding-* properties are supported. 
</span><del>-PASS Test that padding-inline shorthand sets longhands and serializes correctly. 
-PASS Test that padding-block shorthand sets longhands and serializes correctly. 
-PASS Test that padding shorthand sets longhands and serializes correctly. 
</del><span class="cx"> PASS Test that logical padding-* properties share computed values with their physical associates, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</span><del>-PASS Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</del><ins>+FAIL Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: horizontal-tb; direction: ltr; ', padding-inline-start expected "1px" but got "0px"
</ins><span class="cx"> PASS Test that padding-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</span><span class="cx"> PASS Test that padding-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: ltr; '. 
</span><span class="cx"> PASS Test that logical padding-* properties share computed values with their physical associates, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</span><del>-PASS Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</del><ins>+FAIL Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: horizontal-tb; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: horizontal-tb; direction: rtl; ', padding-inline-start expected "1px" but got "0px"
</ins><span class="cx"> PASS Test that padding-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</span><span class="cx"> PASS Test that padding-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: horizontal-tb; direction: rtl; '. 
</span><span class="cx"> PASS Test that logical padding-* properties share computed values with their physical associates, with 'writing-mode: vertical-rl; direction: rtl; '. 
</span><del>-PASS Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: rtl; '. 
</del><ins>+FAIL Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-rl; direction: rtl; ', padding-inline-start expected "1px" but got "0px"
</ins><span class="cx"> PASS Test that padding-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: rtl; '. 
</span><span class="cx"> PASS Test that padding-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: rtl; '. 
</span><span class="cx"> FAIL Test that logical padding-* properties share computed values with their physical associates, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: rtl; ', padding-bottom expected "1px" but got "4px"
</span><del>-FAIL Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: rtl; ', padding-bottom expected "1px" but got "0px"
</del><ins>+FAIL Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: rtl; ', padding-inline-start expected "1px" but got "0px"
</ins><span class="cx"> FAIL Test that padding-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: 'padding-inline-start' last on single declaration, 'writing-mode: sideways-rl; direction: rtl; ', padding-block-end expected "1px" but got "4px"
</span><span class="cx"> FAIL Test that padding-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: rtl; '. assert_equals: 'padding-inline-start', two declarations, 'writing-mode: sideways-rl; direction: rtl; ', padding-block-end expected "1px" but got "4px"
</span><span class="cx"> PASS Test that logical padding-* properties share computed values with their physical associates, with 'writing-mode: vertical-rl; direction: ltr; '. 
</span><del>-PASS Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: ltr; '. 
</del><ins>+FAIL Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-rl; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-rl; direction: ltr; ', padding-inline-start expected "1px" but got "0px"
</ins><span class="cx"> PASS Test that padding-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: ltr; '. 
</span><span class="cx"> PASS Test that padding-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-rl; direction: ltr; '. 
</span><span class="cx"> FAIL Test that logical padding-* properties share computed values with their physical associates, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: ltr; ', padding-top expected "1px" but got "3px"
</span><del>-FAIL Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: ltr; ', padding-top expected "1px" but got "0px"
</del><ins>+FAIL Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-rl; direction: ltr; ', padding-inline-start expected "1px" but got "0px"
</ins><span class="cx"> FAIL Test that padding-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: 'padding-inline-start' last on single declaration, 'writing-mode: sideways-rl; direction: ltr; ', padding-left expected "1px" but got "5px"
</span><span class="cx"> FAIL Test that padding-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-rl; direction: ltr; '. assert_equals: 'padding-inline-start', two declarations, 'writing-mode: sideways-rl; direction: ltr; ', padding-left expected "1px" but got "5px"
</span><span class="cx"> PASS Test that logical padding-* properties share computed values with their physical associates, with 'writing-mode: vertical-lr; direction: rtl; '. 
</span><del>-PASS Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: rtl; '. 
</del><ins>+FAIL Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-lr; direction: rtl; ', padding-inline-start expected "1px" but got "0px"
</ins><span class="cx"> PASS Test that padding-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: rtl; '. 
</span><span class="cx"> PASS Test that padding-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: rtl; '. 
</span><span class="cx"> FAIL Test that logical padding-* properties share computed values with their physical associates, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: ltr; ', padding-bottom expected "1px" but got "4px"
</span><del>-FAIL Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: ltr; ', padding-bottom expected "1px" but got "0px"
</del><ins>+FAIL Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: ltr; ', padding-inline-start expected "1px" but got "0px"
</ins><span class="cx"> FAIL Test that padding-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: 'padding-inline-start' last on single declaration, 'writing-mode: sideways-lr; direction: ltr; ', padding-left expected "1px" but got "5px"
</span><span class="cx"> FAIL Test that padding-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: ltr; '. assert_equals: 'padding-inline-start', two declarations, 'writing-mode: sideways-lr; direction: ltr; ', padding-left expected "1px" but got "5px"
</span><span class="cx"> PASS Test that logical padding-* properties share computed values with their physical associates, with 'writing-mode: vertical-lr; direction: ltr; '. 
</span><del>-PASS Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: ltr; '. 
</del><ins>+FAIL Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: vertical-lr; direction: ltr; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: vertical-lr; direction: ltr; ', padding-inline-start expected "1px" but got "0px"
</ins><span class="cx"> PASS Test that padding-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: ltr; '. 
</span><span class="cx"> PASS Test that padding-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: vertical-lr; direction: ltr; '. 
</span><span class="cx"> FAIL Test that logical padding-* properties share computed values with their physical associates, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: logical properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: rtl; ', padding-top expected "1px" but got "3px"
</span><del>-FAIL Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: rtl; ', padding-top expected "1px" but got "0px"
</del><ins>+FAIL Test that padding-* shorthands set the computed value of both logical and physical longhands, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: shorthand properties on one declaration, writing mode properties on another, 'writing-mode: sideways-lr; direction: rtl; ', padding-inline-start expected "1px" but got "0px"
</ins><span class="cx"> FAIL Test that padding-* properties honor order of appearance when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: 'padding-inline-start' last on single declaration, 'writing-mode: sideways-lr; direction: rtl; ', padding-block-start expected "1px" but got "3px"
</span><span class="cx"> FAIL Test that padding-* properties honor selector specificty when both logical and physical associates are declared, with 'writing-mode: sideways-lr; direction: rtl; '. assert_equals: 'padding-inline-start', two declarations, 'writing-mode: sideways-lr; direction: rtl; ', padding-block-start expected "1px" but got "3px"
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxpaddinghtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-padding.html (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-padding.html       2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-padding.html  2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-<!DOCTYPE html> <!-- webkit-test-runner [ internal:CSSLogicalEnabled=true ] -->
</del><ins>+<!DOCTYPE html>
</ins><span class="cx"> <meta charset="utf-8" />
</span><span class="cx"> <title>CSS Logical Properties: Flow-Relative Padding</title>
</span><span class="cx"> <link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com" />
</span><span class="lines">@@ -9,7 +9,7 @@
</span><span class="cx"> 
</span><span class="cx"> <div id="log"></div>
</span><span class="cx"> 
</span><del>-<script type="module">
-import {runTests, createBoxPropertyGroup} from "./resources/test-box-properties.js";
</del><ins>+<script src="./resources/test-box-properties.js"></script>
+<script>
</ins><span class="cx"> runTests(createBoxPropertyGroup("padding-*", {type: "length"}));
</span><span class="cx"> </script>
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicallogicalboxsizehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-size.html (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-size.html  2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/logical-box-size.html     2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -9,8 +9,8 @@
</span><span class="cx"> 
</span><span class="cx"> <div id="log"></div>
</span><span class="cx"> 
</span><del>-<script type="module">
-import {runTests, createSizingPropertyGroup} from "./resources/test-box-properties.js";
</del><ins>+<script src="./resources/test-box-properties.js"></script>
+<script>
</ins><span class="cx"> runTests(createSizingPropertyGroup(""));
</span><span class="cx"> runTests(createSizingPropertyGroup("max-"));
</span><span class="cx"> runTests(createSizingPropertyGroup("min-"));
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicalresourcestestboxpropertiesjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/resources/test-box-properties.js (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/resources/test-box-properties.js       2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/resources/test-box-properties.js  2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,246 +1,295 @@
</span><del>-import {
-  testElement,
-  writingModes,
-  testCSSValues,
-  testComputedValues,
-  makeDeclaration
-} from "./test-shared.js";
</del><ins>+"use strict";
+(function(exports) {
+  const sheet = document.head.appendChild(document.createElement("style"));
</ins><span class="cx"> 
</span><del>-// Values to use while testing
-const testValues = {
-  "length": ["1px", "2px", "3px", "4px", "5px"],
-  "color": ["rgb(1, 1, 1)", "rgb(2, 2, 2)", "rgb(3, 3, 3)", "rgb(4, 4, 4)", "rgb(5, 5, 5)"],
-  "border-style": ["solid", "dashed", "dotted", "double", "groove"],
-};
</del><ins>+  // Specify size for outer <div> to avoid unconstrained-size warnings
+  // when writing-mode of the inner test <div> is vertical-*
+  const wrapper = document.body.appendChild(document.createElement("div"));
+  wrapper.style.cssText = "width:100px; height: 100px;";
+  const testElement = wrapper.appendChild(document.createElement("div"));
+  testElement.id = testElement.className = "test";
</ins><span class="cx"> 
</span><del>-/**
- * Creates a group of physical and logical box properties, such as
- *
- * { physical: {
- *     left: "margin-left", right: "margin-right",
- *     top: "margin-top", bottom: "margin-bottom",
- *   }, logical: {
- *     inlineStart: "margin-inline-start", inlineEnd: "margin-inline-end",
- *     blockStart: "margin-block-start", blockEnd: "margin-block-end",
- *   }, shorthands: {
- *     "margin": ["margin-top", "margin-right", "margin-bottom", "margin-left"],
- *     "margin-inline": ["margin-inline-start", "margin-inline-end"],
- *     "margin-block": ["margin-block-start", "margin-block-end"],
- *   }, type: ["length"], prerequisites: "...", property: "margin-*" }
- *
- * @param {string} property
- *        A string representing the property names, like "margin-*".
- * @param {Object} descriptor
- * @param {string|string[]} descriptor.type
- *        Describes the kind of values accepted by the property, like "length".
- *        Must be a key or a collection of keys from the `testValues` object.
- * @param {Object={}} descriptor.prerequisites
- *        Represents property declarations that are needed by `property` to work.
- *        For example, border-width properties require a border style.
- */
-export function createBoxPropertyGroup(property, descriptor) {
-  const logical = {};
-  const physical = {};
-  const shorthands = {};
-  for (const axis of ["inline", "block"]) {
-    const shorthand = property.replace("*", axis);
-    const longhands = [];
-    shorthands[shorthand] = longhands;
-    for (const side of ["start", "end"]) {
-      const logicalSide = axis + "-" + side;
-      const camelCase = logicalSide.replace(/-(.)/g, (match, $1) => $1.toUpperCase());
-      const longhand = property.replace("*", logicalSide);
-      logical[camelCase] = longhand;
-      longhands.push(longhand);
</del><ins>+  // Values to use while testing
+  const testValues = {
+    "length": ["1px", "2px", "3px", "4px", "5px"],
+    "color": ["rgb(1, 1, 1)", "rgb(2, 2, 2)", "rgb(3, 3, 3)", "rgb(4, 4, 4)", "rgb(5, 5, 5)"],
+    "border-style": ["solid", "dashed", "dotted", "double", "groove"],
+  };
+
+  // Six unique overall writing modes for property-mapping purposes.
+  const writingModes = [
+    {
+      styles: [
+        {"writing-mode": "horizontal-tb", "direction": "ltr"},
+      ],
+      blockStart: "top", blockEnd: "bottom", inlineStart: "left", inlineEnd: "right",
+      block: "vertical", inline: "horizontal" },
+    {
+      styles: [
+        {"writing-mode": "horizontal-tb", "direction": "rtl"},
+      ],
+      blockStart: "top", blockEnd: "bottom", inlineStart: "right", inlineEnd: "left",
+      block: "vertical", inline: "horizontal" },
+    {
+      styles: [
+        {"writing-mode": "vertical-rl", "direction": "rtl"},
+        {"writing-mode": "sideways-rl", "direction": "rtl"},
+      ],
+      blockStart: "right", blockEnd: "left", inlineStart: "bottom", inlineEnd: "top",
+      block: "horizontal", inline: "vertical" },
+    {
+      styles: [
+        {"writing-mode": "vertical-rl", "direction": "ltr"},
+        {"writing-mode": "sideways-rl", "direction": "ltr"},
+      ],
+      blockStart: "right", blockEnd: "left", inlineStart: "top", inlineEnd: "bottom",
+      block: "horizontal", inline: "vertical" },
+    {
+      styles: [
+        {"writing-mode": "vertical-lr", "direction": "rtl"},
+        {"writing-mode": "sideways-lr", "direction": "ltr"},
+      ],
+      blockStart: "left", blockEnd: "right", inlineStart: "bottom", inlineEnd: "top",
+      block: "horizontal", inline: "vertical" },
+    {
+      styles: [
+        {"writing-mode": "vertical-lr", "direction": "ltr"},
+        {"writing-mode": "sideways-lr", "direction": "rtl"},
+      ],
+      blockStart: "left", blockEnd: "right", inlineStart: "top", inlineEnd: "bottom",
+      block: "horizontal", inline: "vertical" },
+  ];
+
+  function testCSSValues(testName, style, expectedValues) {
+    for (const [property, value] of expectedValues) {
+      assert_equals(style.getPropertyValue(property), value, `${testName}, ${property}`);
</ins><span class="cx">     }
</span><span class="cx">   }
</span><del>-  const isInset = property === "inset-*";
-  let prerequisites = "";
-  for (const physicalSide of ["left", "right", "top", "bottom"]) {
-    physical[physicalSide] = isInset ? physicalSide : property.replace("*", physicalSide);
-    prerequisites += makeDeclaration(descriptor.prerequisites, physicalSide);
</del><ins>+
+  function testComputedValues(testName, rules, expectedValues) {
+    sheet.textContent = rules;
+    const cs = getComputedStyle(testElement);
+    testCSSValues(testName, cs, expectedValues);
+    sheet.textContent = "";
</ins><span class="cx">   }
</span><del>-  shorthands[property.replace("-*", "")] =
-    ["top", "right", "bottom", "left"].map(physicalSide => physical[physicalSide]);
-  const type = [].concat(descriptor.type);
-  return {logical, physical, shorthands, type, prerequisites, property};
-}
</del><span class="cx"> 
</span><del>-/**
- * Creates a group of physical and logical sizing properties.
- *
- * @param {string} prefix
- *        One of "", "max-" or "min-".
- */
-export function createSizingPropertyGroup(prefix) {
-  return {
-    logical: {
-      inline: `${prefix}inline-size`,
-      block: `${prefix}block-size`,
-    },
-    physical: {
-      horizontal: `${prefix}width`,
-      vertical: `${prefix}height`,
-    },
-    type: ["length"],
-    prerequisites: makeDeclaration({display: "block"}),
-    property: (prefix ? prefix.slice(0, -1) + " " : "") + "sizing",
</del><ins>+  function makeDeclaration(object = {}, replacement = "*") {
+    let decl = "";
+    for (const [property, value] of Object.entries(object)) {
+      decl += `${property.replace("*", replacement)}: ${value}; `;
+    }
+    return decl;
+  }
+
+  /**
+   * Creates a group of physical and logical box properties, such as
+   *
+   * { physical: {
+   *     left: "margin-left", right: "margin-right",
+   *     top: "margin-top", bottom: "margin-bottom",
+   *   }, logical: {
+   *     inlineStart: "margin-inline-start", inlineEnd: "margin-inline-end",
+   *     blockStart: "margin-block-start", blockEnd: "margin-block-end",
+   *   }, shorthands: {
+   *     inline: ["margin-inline-start", "margin-inline-end"],
+   *     block: ["margin-block-start", "margin-block-end"],
+   *   }, type: ["length"], prerequisites: "...", property: "'margin-*'" }
+   *
+   * @param {string} property
+   *        A string representing the property names, like "margin-*".
+   * @param {Object} descriptor
+   * @param {string|string[]} descriptor.type
+   *        Describes the kind of values accepted by the property, like "length".
+   *        Must be a key or a collection of keys from the `testValues` object.
+   * @param {Object={}} descriptor.prerequisites
+   *        Represents property declarations that are needed by `property` to work.
+   *        For example, border-width properties require a border style.
+   */
+  exports.createBoxPropertyGroup = function(property, descriptor) {
+    const logical = {};
+    const physical = {};
+    const shorthands = {};
+    for (const axis of ["inline", "block"]) {
+      const shorthand = property.replace("*", axis);
+      const longhands = [];
+      shorthands[shorthand] = longhands;
+      for (const side of ["start", "end"]) {
+        const logicalSide = axis + "-" + side;
+        const camelCase = logicalSide.replace(/-(.)/g, (match, $1) => $1.toUpperCase());
+        const longhand = property.replace("*", logicalSide);
+        logical[camelCase] = longhand;
+        longhands.push(longhand);
+      }
+    }
+    const isInset = property === "inset-*";
+    let prerequisites = "";
+    for (const physicalSide of ["left", "right", "top", "bottom"]) {
+      physical[physicalSide] = isInset ? physicalSide : property.replace("*", physicalSide);
+      prerequisites += makeDeclaration(descriptor.prerequisites, physicalSide);
+    }
+    const type = [].concat(descriptor.type);
+    return {name, logical, physical, shorthands, type, prerequisites, property};
</ins><span class="cx">   };
</span><del>-}
</del><span class="cx"> 
</span><del>-/**
- * Tests a grup of logical and physical properties in different writing modes.
- *
- * @param {Object} group
- *        An object returned by createBoxPropertyGroup or createSizingPropertyGroup.
- */
-export function runTests(group) {
-  const values = testValues[group.type[0]].map(function(_, i) {
-    return group.type.map(type => testValues[type][i]).join(" ");
-  });
-  const logicals = Object.values(group.logical);
-  const physicals = Object.values(group.physical);
-  const shorthands = group.shorthands ? Object.entries(group.shorthands) : null;
</del><ins>+  /**
+   * Creates a group of physical and logical sizing properties.
+   *
+   * @param {string} prefix
+   *        One of "", "max-" or "min-".
+   */
+  exports.createSizingPropertyGroup = function(prefix) {
+    return {
+      logical: {
+        inline: `${prefix}inline-size`,
+        block: `${prefix}block-size`,
+      },
+      physical: {
+        horizontal: `${prefix}width`,
+        vertical: `${prefix}height`,
+      },
+      type: ["length"],
+      prerequisites: makeDeclaration({display: "block"}),
+      property: (prefix ? prefix.slice(0, -1) + " " : "") + "sizing",
+    };
+  };
</ins><span class="cx"> 
</span><del>-  test(function() {
-    const expected = [];
-    for (const [i, logicalProp] of logicals.entries()) {
-      testElement.style.setProperty(logicalProp, values[i]);
-      expected.push([logicalProp, values[i]]);
-    }
-    testCSSValues("logical properties in inline style", testElement.style, expected);
-  }, `Test that logical ${group.property} properties are supported.`);
-  testElement.style.cssText = "";
</del><ins>+  /**
+   * Tests a grup of logical and physical properties in different writing modes.
+   *
+   * @param {Object} group
+   *        An object returned by createBoxPropertyGroup or createSizingPropertyGroup.
+   */
+  exports.runTests = function(group) {
+    const values = testValues[group.type[0]].map(function(_, i) {
+      return group.type.map(type => testValues[type][i]).join(" ");
+    });
+    const logicals = Object.values(group.logical);
+    const physicals = Object.values(group.physical);
+    const shorthands = group.shorthands ? Object.entries(group.shorthands) : null;
</ins><span class="cx"> 
</span><del>-  const shorthandValues = {};
-  for (const [shorthand, longhands] of shorthands || []) {
-    let valueArray;
-    if (group.type.length > 1) {
-      valueArray = [values[0]];
-    } else {
-      valueArray = testValues[group.type].slice(0, longhands.length);
-    }
-    shorthandValues[shorthand] = valueArray;
-    const value = valueArray.join(" ");
-    const expected = [[shorthand, value]];
-    for (let [i, longhand] of longhands.entries()) {
-      expected.push([longhand, valueArray[group.type.length > 1 ? 0 : i]]);
-    }
</del><span class="cx">     test(function() {
</span><del>-      testElement.style.setProperty(shorthand, value);
-      testCSSValues("shorthand in inline style", testElement.style, expected);
-      const stylesheet = `.test { ${group.prerequisites} }`;
-      testComputedValues("shorthand in computed style", stylesheet, expected);
-    }, `Test that ${shorthand} shorthand sets longhands and serializes correctly.`);
</del><ins>+      const expected = [];
+      for (const [i, logicalProp] of logicals.entries()) {
+        testElement.style.setProperty(logicalProp, values[i]);
+        expected.push([logicalProp, values[i]]);
+      }
+      testCSSValues("logical properties in inline style", testElement.style, expected);
+    }, `Test that logical ${group.property} properties are supported.`);
</ins><span class="cx">     testElement.style.cssText = "";
</span><del>-  }
</del><span class="cx"> 
</span><del>-  for (const writingMode of writingModes) {
-    for (const style of writingMode.styles) {
-      const writingModeDecl = makeDeclaration(style);
</del><ins>+    for (const writingMode of writingModes) {
+      for (const style of writingMode.styles) {
+        const writingModeDecl = makeDeclaration(style);
</ins><span class="cx"> 
</span><del>-      const associated = {};
-      for (const [logicalSide, logicalProp] of Object.entries(group.logical)) {
-        const physicalProp = group.physical[writingMode[logicalSide]];
-        associated[logicalProp] = physicalProp;
-        associated[physicalProp] = logicalProp;
-      }
-
-      // Test that logical properties are converted to their physical
-      // equivalent correctly when all in the group are present on a single
-      // declaration, with no overwriting of previous properties and
-      // no physical properties present.  We put the writing mode properties
-      // on a separate declaration to test that the computed values of these
-      // properties are used, rather than those on the same declaration.
-      test(function() {
-        let decl = group.prerequisites;
-        const expected = [];
-        for (const [i, logicalProp] of logicals.entries()) {
-          decl += `${logicalProp}: ${values[i]}; `;
-          expected.push([logicalProp, values[i]]);
-          expected.push([associated[logicalProp], values[i]]);
</del><ins>+        const associated = {};
+        for (const [logicalSide, logicalProp] of Object.entries(group.logical)) {
+          const physicalProp = group.physical[writingMode[logicalSide]];
+          associated[logicalProp] = physicalProp;
+          associated[physicalProp] = logicalProp;
</ins><span class="cx">         }
</span><del>-        testComputedValues("logical properties on one declaration, writing " +
-                           `mode properties on another, '${writingModeDecl}'`,
-                           `.test { ${writingModeDecl} } .test { ${decl} }`,
-                           expected);
-      }, `Test that logical ${group.property} properties share computed values `
-       + `with their physical associates, with '${writingModeDecl}'.`);
</del><span class="cx"> 
</span><del>-      // Test logical shorthand properties.
-      if (shorthands) {
</del><ins>+        // Test that logical properties are converted to their physical
+        // equivalent correctly when all in the group are present on a single
+        // declaration, with no overwriting of previous properties and
+        // no physical properties present.  We put the writing mode properties
+        // on a separate declaration to test that the computed values of these
+        // properties are used, rather than those on the same declaration.
</ins><span class="cx">         test(function() {
</span><del>-          for (const [shorthand, longhands] of shorthands) {
-            let valueArray = shorthandValues[shorthand];
-            const decl = group.prerequisites + `${shorthand}: ${valueArray.join(" ")}; `;
-            const expected = [];
-            for (let [i, longhand] of longhands.entries()) {
-              const longhandValue = valueArray[group.type.length > 1 ? 0 : i];
-              expected.push([longhand, longhandValue]);
-              expected.push([associated[longhand], longhandValue]);
-            }
-            testComputedValues("shorthand properties on one declaration, writing " +
-                               `mode properties on another, '${writingModeDecl}'`,
-                               `.test { ${writingModeDecl} } .test { ${decl} }`,
-                               expected);
</del><ins>+          let decl = group.prerequisites;
+          const expected = [];
+          for (const [i, logicalProp] of logicals.entries()) {
+            decl += `${logicalProp}: ${values[i]}; `;
+            expected.push([logicalProp, values[i]]);
+            expected.push([associated[logicalProp], values[i]]);
</ins><span class="cx">           }
</span><del>-        }, `Test that ${group.property} shorthands set the computed value of both `
-         + `logical and physical longhands, with '${writingModeDecl}'.`);
-      }
</del><ins>+          testComputedValues("logical properties on one declaration, writing " +
+                             `mode properties on another, '${writingModeDecl}'`,
+                             `.test { ${writingModeDecl} } .test { ${decl} }`,
+                             expected);
+        }, `Test that logical ${group.property} properties share computed values `
+         + `with their physical associates, with '${writingModeDecl}'.`);
</ins><span class="cx"> 
</span><del>-      // Test that logical and physical properties are cascaded together,
-      // honoring their relative order on a single declaration
-      // (a) with a single logical property after the physical ones
-      // (b) with a single physical property after the logical ones
-      test(function() {
-        for (const lastIsLogical of [true, false]) {
-          const lasts = lastIsLogical ? logicals : physicals;
-          const others = lastIsLogical ? physicals : logicals;
-          for (const lastProp of lasts) {
-            let decl = writingModeDecl + group.prerequisites;
-            const expected = [];
-            for (const [i, prop] of others.entries()) {
-              decl += `${prop}: ${values[i]}; `;
-              const valueIdx = associated[prop] === lastProp ? others.length : i;
-              expected.push([prop, values[valueIdx]]);
-              expected.push([associated[prop], values[valueIdx]]);
</del><ins>+
+        // Test logical shorthand properties.
+        if (shorthands) {
+          test(function() {
+            for (const [shorthand, longhands] of shorthands) {
+              let shorthandValues;
+              if (group.type.length > 1) {
+                shorthandValues = [values[0]];
+              } else {
+                shorthandValues = testValues[group.type].slice(0, longhands.length);
+              }
+              const decl = group.prerequisites + `${shorthand}: ${shorthandValues.join(" ")}; `;
+              const expected = [];
+              for (let [i, longhand] of longhands.entries()) {
+                const longhandValue = shorthandValues[group.type.length > 1 ? 0 : i];
+                expected.push([longhand, longhandValue]);
+                expected.push([associated[longhand], longhandValue]);
+              }
+              testComputedValues("shorthand properties on one declaration, writing " +
+                                 `mode properties on another, '${writingModeDecl}'`,
+                                 `.test { ${writingModeDecl} } .test { ${decl} }`,
+                                 expected);
</ins><span class="cx">             }
</span><del>-            decl += `${lastProp}: ${values[others.length]}; `;
-            testComputedValues(`'${lastProp}' last on single declaration, '${writingModeDecl}'`,
-                               `.test { ${decl} }`,
-                               expected);
-          }
</del><ins>+          }, `Test that ${group.property} shorthands set the computed value of both `
+           + `logical and physical longhands, with '${writingModeDecl}'.`);
</ins><span class="cx">         }
</span><del>-      }, `Test that ${group.property} properties honor order of appearance when both `
-       + `logical and physical associates are declared, with '${writingModeDecl}'.`);
</del><span class="cx"> 
</span><del>-      // Test that logical and physical properties are cascaded properly when
-      // on different declarations
-      // (a) with a logical property in the high specificity rule
-      // (b) with a physical property in the high specificity rule
-      test(function() {
-        for (const highIsLogical of [true, false]) {
-          let lowDecl = writingModeDecl + group.prerequisites;
-          const high = highIsLogical ? logicals : physicals;
-          const others = highIsLogical ? physicals : logicals;
-          for (const [i, prop] of others.entries()) {
-            lowDecl += `${prop}: ${values[i]}; `;
</del><ins>+        // Test that logical and physical properties are cascaded together,
+        // honoring their relative order on a single declaration
+        // (a) with a single logical property after the physical ones
+        // (b) with a single physical property after the logical ones
+        test(function() {
+          for (const lastIsLogical of [true, false]) {
+            const lasts = lastIsLogical ? logicals : physicals;
+            const others = lastIsLogical ? physicals : logicals;
+            for (const lastProp of lasts) {
+              let decl = writingModeDecl + group.prerequisites;
+              const expected = [];
+              for (const [i, prop] of others.entries()) {
+                decl += `${prop}: ${values[i]}; `;
+                const valueIdx = associated[prop] === lastProp ? others.length : i;
+                expected.push([prop, values[valueIdx]]);
+                expected.push([associated[prop], values[valueIdx]]);
+              }
+              decl += `${lastProp}: ${values[others.length]}; `;
+              testComputedValues(`'${lastProp}' last on single declaration, '${writingModeDecl}'`,
+                                 `.test { ${decl} }`,
+                                 expected);
+            }
</ins><span class="cx">           }
</span><del>-          for (const highProp of high) {
-            const highDecl = `${highProp}: ${values[others.length]}; `;
-            const expected = [];
</del><ins>+        }, `Test that ${group.property} properties honor order of appearance when both `
+         + `logical and physical associates are declared, with '${writingModeDecl}'.`);
+
+        // Test that logical and physical properties are cascaded properly when
+        // on different declarations
+        // (a) with a logical property in the high specificity rule
+        // (b) with a physical property in the high specificity rule
+        test(function() {
+          for (const highIsLogical of [true, false]) {
+            let lowDecl = writingModeDecl + group.prerequisites;
+            const high = highIsLogical ? logicals : physicals;
+            const others = highIsLogical ? physicals : logicals;
</ins><span class="cx">             for (const [i, prop] of others.entries()) {
</span><del>-              const valueIdx = associated[prop] === highProp ? others.length : i;
-              expected.push([prop, values[valueIdx]]);
-              expected.push([associated[prop], values[valueIdx]]);
</del><ins>+              lowDecl += `${prop}: ${values[i]}; `;
</ins><span class="cx">             }
</span><del>-            testComputedValues(`'${highProp}', two declarations, '${writingModeDecl}'`,
-                               `#test { ${highDecl} } .test { ${lowDecl} }`,
-                               expected);
</del><ins>+            for (const highProp of high) {
+              const highDecl = `${highProp}: ${values[others.length]}; `;
+              const expected = [];
+              for (const [i, prop] of others.entries()) {
+                const valueIdx = associated[prop] === highProp ? others.length : i;
+                expected.push([prop, values[valueIdx]]);
+                expected.push([associated[prop], values[valueIdx]]);
+              }
+              testComputedValues(`'${highProp}', two declarations, '${writingModeDecl}'`,
+                                 `#test { ${highDecl} } .test { ${lowDecl} }`,
+                                 expected);
+            }
</ins><span class="cx">           }
</span><del>-        }
-      }, `Test that ${group.property} properties honor selector specificty when both `
-       + `logical and physical associates are declared, with '${writingModeDecl}'.`);
</del><ins>+        }, `Test that ${group.property} properties honor selector specificty when both `
+         + `logical and physical associates are declared, with '${writingModeDecl}'.`);
+      }
</ins><span class="cx">     }
</span><del>-  }
-}
</del><ins>+  };
+})(window);
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicalresourcestestsharedjs"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/resources/test-shared.js (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/resources/test-shared.js       2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/resources/test-shared.js  2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,91 +0,0 @@
</span><del>-const sheet = document.head.appendChild(document.createElement("style"));
-
-// Specify size for outer <div> to avoid unconstrained-size warnings
-// when writing-mode of the inner test <div> is vertical-*
-const wrapper = document.body.appendChild(document.createElement("div"));
-wrapper.style.cssText = "width:100px; height: 100px;";
-export const testElement = wrapper.appendChild(document.createElement("div"));
-testElement.id = testElement.className = "test";
-
-// Six unique overall writing modes for property-mapping purposes.
-export const writingModes = [
-  {
-    styles: [
-      {"writing-mode": "horizontal-tb", "direction": "ltr"},
-    ],
-    blockStart: "top", blockEnd: "bottom", inlineStart: "left", inlineEnd: "right",
-    over: "top", under: "bottom", lineLeft: "left", lineRight: "right",
-    block: "vertical", inline: "horizontal" },
-  {
-    styles: [
-      {"writing-mode": "horizontal-tb", "direction": "rtl"},
-    ],
-    blockStart: "top", blockEnd: "bottom", inlineStart: "right", inlineEnd: "left",
-    over: "top", under: "bottom", lineLeft: "left", lineRight: "right",
-    block: "vertical", inline: "horizontal" },
-  {
-    styles: [
-      {"writing-mode": "vertical-rl", "direction": "rtl"},
-      {"writing-mode": "sideways-rl", "direction": "rtl"},
-    ],
-    blockStart: "right", blockEnd: "left", inlineStart: "bottom", inlineEnd: "top",
-    over: "right", under: "left", lineLeft: "top", lineRight: "bottom",
-    block: "horizontal", inline: "vertical" },
-  {
-    styles: [
-      {"writing-mode": "vertical-rl", "direction": "ltr"},
-      {"writing-mode": "sideways-rl", "direction": "ltr"},
-    ],
-    blockStart: "right", blockEnd: "left", inlineStart: "top", inlineEnd: "bottom",
-    over: "right", under: "left", lineLeft: "top", lineRight: "bottom",
-    block: "horizontal", inline: "vertical" },
-  {
-    styles: [
-      {"writing-mode": "vertical-lr", "direction": "rtl"},
-    ],
-    blockStart: "left", blockEnd: "right", inlineStart: "bottom", inlineEnd: "top",
-    over: "right", under: "left", lineLeft: "top", lineRight: "bottom",
-    block: "horizontal", inline: "vertical" },
-  {
-    styles: [
-      {"writing-mode": "sideways-lr", "direction": "ltr"},
-    ],
-    blockStart: "left", blockEnd: "right", inlineStart: "bottom", inlineEnd: "top",
-    over: "left", under: "right", lineLeft: "bottom", lineRight: "top",
-    block: "horizontal", inline: "vertical" },
-  {
-    styles: [
-      {"writing-mode": "vertical-lr", "direction": "ltr"},
-    ],
-    blockStart: "left", blockEnd: "right", inlineStart: "top", inlineEnd: "bottom",
-    over: "right", under: "left", lineLeft: "top", lineRight: "bottom",
-    block: "horizontal", inline: "vertical" },
-  {
-    styles: [
-      {"writing-mode": "sideways-lr", "direction": "rtl"},
-    ],
-    blockStart: "left", blockEnd: "right", inlineStart: "top", inlineEnd: "bottom",
-    over: "left", under: "right", lineLeft: "bottom", lineRight: "top",
-    block: "horizontal", inline: "vertical" },
-];
-
-export function testCSSValues(testName, style, expectedValues) {
-  for (const [property, value] of expectedValues) {
-    assert_equals(style.getPropertyValue(property), value, `${testName}, ${property}`);
-  }
-}
-
-export function testComputedValues(testName, rules, expectedValues) {
-  sheet.textContent = rules;
-  const cs = getComputedStyle(testElement);
-  testCSSValues(testName, cs, expectedValues);
-  sheet.textContent = "";
-}
-
-export function makeDeclaration(object = {}, replacement = "*") {
-  let decl = "";
-  for (const [property, value] of Object.entries(object)) {
-    decl += `${property.replace("*", replacement)}: ${value}; `;
-  }
-  return decl;
-}
</del></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestscsscsslogicalresourcesw3cimportlog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/resources/w3c-import.log (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/resources/w3c-import.log       2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/resources/w3c-import.log  2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -15,4 +15,3 @@
</span><span class="cx"> ------------------------------------------------------------------------
</span><span class="cx"> List of files:
</span><span class="cx"> /LayoutTests/imported/w3c/web-platform-tests/css/css-logical/resources/test-box-properties.js
</span><del>-/LayoutTests/imported/w3c/web-platform-tests/css/css-logical/resources/test-shared.js
</del></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Source/WebCore/ChangeLog      2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2018-11-15  Truitt Savell  <tsavell@apple.com>
+
+        Unreviewed, rolling out r238244.
+
+        Caused High Sierra test runs to fail early with 50 crashes and
+        casued 25 API failures.
+
+        Reverted changeset:
+
+        "[css-logical] Implement flow-relative margin, padding and
+        border shorthands"
+        https://bugs.webkit.org/show_bug.cgi?id=188697
+        https://trac.webkit.org/changeset/238244
+
</ins><span class="cx"> 2018-11-15  Jer Noble  <jer.noble@apple.com>
</span><span class="cx"> 
</span><span class="cx">         AVKit will set videoGravity to a nil string when building against iosmac
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSComputedStyleDeclarationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp 2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp    2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -3901,48 +3901,24 @@
</span><span class="cx">             }
</span><span class="cx">             return value;
</span><span class="cx">         }
</span><del>-        case CSSPropertyBorderBlock: {
-            auto value = propertyValue(CSSPropertyBorderBlockStart, DoNotUpdateLayout);
-            if (!compareCSSValuePtr<CSSValue>(value, propertyValue(CSSPropertyBorderBlockEnd, DoNotUpdateLayout)))
-                return nullptr;
-            return value;
-        }
-        case CSSPropertyBorderBlockColor:
-            return getCSSPropertyValuesFor2SidesShorthand(borderBlockColorShorthand());
-        case CSSPropertyBorderBlockStyle:
-            return getCSSPropertyValuesFor2SidesShorthand(borderBlockStyleShorthand());
-        case CSSPropertyBorderBlockWidth:
-            return getCSSPropertyValuesFor2SidesShorthand(borderBlockWidthShorthand());
</del><span class="cx">         case CSSPropertyBorderBottom:
</span><span class="cx">             return getCSSPropertyValuesForShorthandProperties(borderBottomShorthand());
</span><span class="cx">         case CSSPropertyBorderColor:
</span><del>-            return getCSSPropertyValuesFor4SidesShorthand(borderColorShorthand());
</del><ins>+            return getCSSPropertyValuesForSidesShorthand(borderColorShorthand());
</ins><span class="cx">         case CSSPropertyBorderLeft:
</span><span class="cx">             return getCSSPropertyValuesForShorthandProperties(borderLeftShorthand());
</span><span class="cx">         case CSSPropertyBorderImage:
</span><span class="cx">             return valueForNinePieceImage(style.borderImage());
</span><del>-        case CSSPropertyBorderInline: {
-            auto value = propertyValue(CSSPropertyBorderInlineStart, DoNotUpdateLayout);
-            if (!compareCSSValuePtr<CSSValue>(value, propertyValue(CSSPropertyBorderInlineEnd, DoNotUpdateLayout)))
-                return nullptr;
-            return value;
-        }
-        case CSSPropertyBorderInlineColor:
-            return getCSSPropertyValuesFor2SidesShorthand(borderInlineColorShorthand());
-        case CSSPropertyBorderInlineStyle:
-            return getCSSPropertyValuesFor2SidesShorthand(borderInlineStyleShorthand());
-        case CSSPropertyBorderInlineWidth:
-            return getCSSPropertyValuesFor2SidesShorthand(borderInlineWidthShorthand());
</del><span class="cx">         case CSSPropertyBorderRadius:
</span><span class="cx">             return borderRadiusShorthandValue(style);
</span><span class="cx">         case CSSPropertyBorderRight:
</span><span class="cx">             return getCSSPropertyValuesForShorthandProperties(borderRightShorthand());
</span><span class="cx">         case CSSPropertyBorderStyle:
</span><del>-            return getCSSPropertyValuesFor4SidesShorthand(borderStyleShorthand());
</del><ins>+            return getCSSPropertyValuesForSidesShorthand(borderStyleShorthand());
</ins><span class="cx">         case CSSPropertyBorderTop:
</span><span class="cx">             return getCSSPropertyValuesForShorthandProperties(borderTopShorthand());
</span><span class="cx">         case CSSPropertyBorderWidth:
</span><del>-            return getCSSPropertyValuesFor4SidesShorthand(borderWidthShorthand());
</del><ins>+            return getCSSPropertyValuesForSidesShorthand(borderWidthShorthand());
</ins><span class="cx">         case CSSPropertyColumnRule:
</span><span class="cx">             return getCSSPropertyValuesForShorthandProperties(columnRuleShorthand());
</span><span class="cx">         case CSSPropertyColumns:
</span><span class="lines">@@ -3950,22 +3926,15 @@
</span><span class="cx">         case CSSPropertyListStyle:
</span><span class="cx">             return getCSSPropertyValuesForShorthandProperties(listStyleShorthand());
</span><span class="cx">         case CSSPropertyMargin:
</span><del>-            return getCSSPropertyValuesFor4SidesShorthand(marginShorthand());
-        case CSSPropertyMarginBlock:
-            return getCSSPropertyValuesFor2SidesShorthand(marginBlockShorthand());
-        case CSSPropertyMarginInline:
-            return getCSSPropertyValuesFor2SidesShorthand(marginInlineShorthand());
</del><ins>+            return getCSSPropertyValuesForSidesShorthand(marginShorthand());
</ins><span class="cx">         case CSSPropertyOutline:
</span><span class="cx">             return getCSSPropertyValuesForShorthandProperties(outlineShorthand());
</span><span class="cx">         case CSSPropertyPadding:
</span><del>-            return getCSSPropertyValuesFor4SidesShorthand(paddingShorthand());
-        case CSSPropertyPaddingBlock:
-            return getCSSPropertyValuesFor2SidesShorthand(paddingBlockShorthand());
-        case CSSPropertyPaddingInline:
-            return getCSSPropertyValuesFor2SidesShorthand(paddingInlineShorthand());
</del><ins>+            return getCSSPropertyValuesForSidesShorthand(paddingShorthand());
+
</ins><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><span class="cx">         case CSSPropertyScrollSnapMargin:
</span><del>-            return getCSSPropertyValuesFor4SidesShorthand(scrollSnapMarginShorthand());
</del><ins>+            return getCSSPropertyValuesForSidesShorthand(scrollSnapMarginShorthand());
</ins><span class="cx">         case CSSPropertyScrollSnapMarginBottom:
</span><span class="cx">             return zoomAdjustedPixelValueForLength(style.scrollSnapMarginBottom(), style);
</span><span class="cx">         case CSSPropertyScrollSnapMarginTop:
</span><span class="lines">@@ -3975,7 +3944,7 @@
</span><span class="cx">         case CSSPropertyScrollSnapMarginLeft:
</span><span class="cx">             return zoomAdjustedPixelValueForLength(style.scrollSnapMarginLeft(), style);
</span><span class="cx">         case CSSPropertyScrollPadding:
</span><del>-            return getCSSPropertyValuesFor4SidesShorthand(scrollPaddingShorthand());
</del><ins>+            return getCSSPropertyValuesForSidesShorthand(scrollPaddingShorthand());
</ins><span class="cx">         case CSSPropertyScrollPaddingBottom:
</span><span class="cx">             return zoomAdjustedPixelValueForLength(style.scrollPaddingBottom(), style);
</span><span class="cx">         case CSSPropertyScrollPaddingTop:
</span><span class="lines">@@ -4255,31 +4224,10 @@
</span><span class="cx">     return WTFMove(list);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr<CSSValueList> ComputedStyleExtractor::getCSSPropertyValuesFor2SidesShorthand(const StylePropertyShorthand& shorthand)
</del><ins>+RefPtr<CSSValueList> ComputedStyleExtractor::getCSSPropertyValuesForSidesShorthand(const StylePropertyShorthand& shorthand)
</ins><span class="cx"> {
</span><span class="cx">     auto list = CSSValueList::createSpaceSeparated();
</span><span class="cx"> 
</span><del>-    // Assume the properties are in the usual order start, end.
-    auto startValue = propertyValue(shorthand.properties()[0], DoNotUpdateLayout);
-    auto endValue = propertyValue(shorthand.properties()[1], DoNotUpdateLayout);
-
-    // All 2 properties must be specified.
-    if (!startValue || !endValue)
-        return nullptr;
-
-    bool showEnd = !compareCSSValuePtr(startValue, endValue);
-
-    list->append(startValue.releaseNonNull());
-    if (showEnd)
-        list->append(endValue.releaseNonNull());
-
-    return WTFMove(list);
-}
-
-RefPtr<CSSValueList> ComputedStyleExtractor::getCSSPropertyValuesFor4SidesShorthand(const StylePropertyShorthand& shorthand)
-{
-    auto list = CSSValueList::createSpaceSeparated();
-
</del><span class="cx">     // Assume the properties are in the usual order top, right, bottom, left.
</span><span class="cx">     auto topValue = propertyValue(shorthand.properties()[0], DoNotUpdateLayout);
</span><span class="cx">     auto rightValue = propertyValue(shorthand.properties()[1], DoNotUpdateLayout);
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSComputedStyleDeclarationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.h (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.h   2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.h      2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -92,8 +92,7 @@
</span><span class="cx">     RefPtr<CSSPrimitiveValue> currentColorOrValidColor(const RenderStyle*, const Color&) const;
</span><span class="cx"> 
</span><span class="cx">     RefPtr<CSSValueList> getCSSPropertyValuesForShorthandProperties(const StylePropertyShorthand&);
</span><del>-    RefPtr<CSSValueList> getCSSPropertyValuesFor2SidesShorthand(const StylePropertyShorthand&);
-    RefPtr<CSSValueList> getCSSPropertyValuesFor4SidesShorthand(const StylePropertyShorthand&);
</del><ins>+    RefPtr<CSSValueList> getCSSPropertyValuesForSidesShorthand(const StylePropertyShorthand&);
</ins><span class="cx">     Ref<CSSValueList> getBackgroundShorthandValue();
</span><span class="cx">     RefPtr<CSSValueList> getCSSPropertyValuesForGridShorthand(const StylePropertyShorthand&);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPropertiesjson"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSProperties.json (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSProperties.json      2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Source/WebCore/css/CSSProperties.json 2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -124,10 +124,6 @@
</span><span class="cx">         "specified macro define is enabled. Prefix the macro define with '!' to",
</span><span class="cx">         "generate code when the macro define is not enabled.",
</span><span class="cx">         "",
</span><del>-        "* runtime-flag:",
-        "The name of the flag on RuntimeEnabledFeatures (e.g. \"cssLogical\")",
-        "that conditionally enables the property.",
-        "",
</del><span class="cx">         "2. Lesser known capabilities of this file format",
</span><span class="cx">         "",
</span><span class="cx">         "Conditional CSS keyword value:",
</span><span class="lines">@@ -1196,36 +1192,6 @@
</span><span class="cx">                 "url": "https://www.w3.org/TR/css3-background/#the-border-shorthands"
</span><span class="cx">             }
</span><span class="cx">         },
</span><del>-        "border-block": {
-            "codegen-properties": {
-                "runtime-flag": "cssLogical",
-                "longhands": [
-                    "border-block-start-color",
-                    "border-block-start-style",
-                    "border-block-start-width",
-                    "border-block-end-color",
-                    "border-block-end-style",
-                    "border-block-end-width"
-                ]
-            },
-            "specification": {
-                "category": "css-logical-props",
-                "url": "https://www.w3.org/TR/css-logical/#border-shorthands"
-            }
-        },
-        "border-block-color": {
-            "codegen-properties": {
-                "runtime-flag": "cssLogical",
-                "longhands": [
-                    "border-block-start-color",
-                    "border-block-end-color"
-                ]
-            },
-            "specification": {
-                "category": "css-logical-props",
-                "url": "https://www.w3.org/TR/css-logical/#border-color"
-            }
-        },
</del><span class="cx">         "border-block-end": {
</span><span class="cx">             "codegen-properties": {
</span><span class="cx">                 "aliases": [
</span><span class="lines">@@ -1354,32 +1320,6 @@
</span><span class="cx">                 "url": "https://www.w3.org/TR/css-logical/#border-width"
</span><span class="cx">             }
</span><span class="cx">         },
</span><del>-        "border-block-style": {
-            "codegen-properties": {
-                "runtime-flag": "cssLogical",
-                "longhands": [
-                    "border-block-start-style",
-                    "border-block-end-style"
-                ]
-            },
-            "specification": {
-                "category": "css-logical-props",
-                "url": "https://www.w3.org/TR/css-logical/#border-style"
-            }
-        },
-        "border-block-width": {
-            "codegen-properties": {
-                "runtime-flag": "cssLogical",
-                "longhands": [
-                    "border-block-start-width",
-                    "border-block-end-width"
-                ]
-            },
-            "specification": {
-                "category": "css-logical-props",
-                "url": "https://www.w3.org/TR/css-logical/#border-width"
-            }
-        },
</del><span class="cx">         "border-bottom": {
</span><span class="cx">             "codegen-properties": {
</span><span class="cx">                 "longhands": [
</span><span class="lines">@@ -1549,36 +1489,6 @@
</span><span class="cx">                 "url": "https://www.w3.org/TR/css3-background/#the-border-image-width"
</span><span class="cx">             }
</span><span class="cx">         },
</span><del>-        "border-inline": {
-            "codegen-properties": {
-                "runtime-flag": "cssLogical",
-                "longhands": [
-                    "border-inline-start-color",
-                    "border-inline-start-style",
-                    "border-inline-start-width",
-                    "border-inline-end-color",
-                    "border-inline-end-style",
-                    "border-inline-end-width"
-                ]
-            },
-            "specification": {
-                "category": "css-logical-props",
-                "url": "https://www.w3.org/TR/css-logical/#border-shorthands"
-            }
-        },
-        "border-inline-color": {
-            "codegen-properties": {
-                "runtime-flag": "cssLogical",
-                "longhands": [
-                    "border-inline-start-color",
-                    "border-inline-end-color"
-                ]
-            },
-            "specification": {
-                "category": "css-logical-props",
-                "url": "https://www.w3.org/TR/css-logical/#border-color"
-            }
-        },
</del><span class="cx">         "border-inline-end": {
</span><span class="cx">             "codegen-properties": {
</span><span class="cx">                 "aliases": [
</span><span class="lines">@@ -1707,32 +1617,6 @@
</span><span class="cx">                 "url": "https://www.w3.org/TR/css-logical/#border-width"
</span><span class="cx">             }
</span><span class="cx">         },
</span><del>-        "border-inline-style": {
-            "codegen-properties": {
-                "runtime-flag": "cssLogical",
-                "longhands": [
-                    "border-inline-start-style",
-                    "border-inline-end-style"
-                ]
-            },
-            "specification": {
-                "category": "css-logical-props",
-                "url": "https://www.w3.org/TR/css-logical/#border-style"
-            }
-        },
-        "border-inline-width": {
-            "codegen-properties": {
-                "runtime-flag": "cssLogical",
-                "longhands": [
-                    "border-inline-start-width",
-                    "border-inline-end-width"
-                ]
-            },
-            "specification": {
-                "category": "css-logical-props",
-                "url": "https://www.w3.org/TR/css-logical/#border-width"
-            }
-        },
</del><span class="cx">         "border-left": {
</span><span class="cx">             "codegen-properties": {
</span><span class="cx">                 "longhands": [
</span><span class="lines">@@ -2763,19 +2647,6 @@
</span><span class="cx">                 "url": "https://www.w3.org/TR/CSS22/box.html#propdef-margin"
</span><span class="cx">             }
</span><span class="cx">         },
</span><del>-        "margin-block": {
-            "codegen-properties": {
-                "runtime-flag": "cssLogical",
-                "longhands": [
-                    "margin-block-start",
-                    "margin-block-end"
-                ]
-            },
-            "specification": {
-                "category": "css-logical-props",
-                "url": "https://www.w3.org/TR/css-logical/#margin-properties"
-            }
-        },
</del><span class="cx">         "margin-block-end": {
</span><span class="cx">             "codegen-properties": {
</span><span class="cx">                 "aliases": [
</span><span class="lines">@@ -2810,19 +2681,6 @@
</span><span class="cx">                 "url": "https://www.w3.org/TR/CSS22/box.html#propdef-margin-bottom"
</span><span class="cx">             }
</span><span class="cx">         },
</span><del>-        "margin-inline": {
-            "codegen-properties": {
-                "runtime-flag": "cssLogical",
-                "longhands": [
-                    "margin-inline-start",
-                    "margin-inline-end"
-                ]
-            },
-            "specification": {
-                "category": "css-logical-props",
-                "url": "https://www.w3.org/TR/css-logical/#margin-properties"
-            }
-        },
</del><span class="cx">         "margin-inline-end": {
</span><span class="cx">             "codegen-properties": {
</span><span class="cx">                 "aliases": [
</span><span class="lines">@@ -3209,19 +3067,6 @@
</span><span class="cx">                 "url": "https://www.w3.org/TR/CSS22/box.html#propdef-padding"
</span><span class="cx">             }
</span><span class="cx">         },
</span><del>-        "padding-block": {
-            "codegen-properties": {
-                "runtime-flag": "cssLogical",
-                "longhands": [
-                    "padding-block-start",
-                    "padding-block-end"
-                ]
-            },
-            "specification": {
-                "category": "css-logical-props",
-                "url": "https://www.w3.org/TR/css-logical/#padding-properties"
-            }
-        },
</del><span class="cx">         "padding-block-end": {
</span><span class="cx">             "codegen-properties": {
</span><span class="cx">                 "aliases": [
</span><span class="lines">@@ -3256,19 +3101,6 @@
</span><span class="cx">                 "url": "https://www.w3.org/TR/CSS22/box.html#propdef-padding-bottom"
</span><span class="cx">             }
</span><span class="cx">         },
</span><del>-        "padding-inline": {
-            "codegen-properties": {
-                "runtime-flag": "cssLogical",
-                "longhands": [
-                    "padding-inline-start",
-                    "padding-inline-end"
-                ]
-            },
-            "specification": {
-                "category": "css-logical-props",
-                "url": "https://www.w3.org/TR/css-logical/#padding-properties"
-            }
-        },
</del><span class="cx">         "padding-inline-end": {
</span><span class="cx">             "codegen-properties": {
</span><span class="cx">                 "aliases": [
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSStyleDeclarationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSStyleDeclaration.cpp (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSStyleDeclaration.cpp 2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Source/WebCore/css/CSSStyleDeclaration.cpp    2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -241,12 +241,9 @@
</span><span class="cx"> 
</span><span class="cx">     auto* hashTableEntry = findProperty(name, outputLength);
</span><span class="cx">     if (auto propertyID = hashTableEntry ? hashTableEntry->id : 0) {
</span><del>-        auto id = static_cast<CSSPropertyID>(propertyID);
-        if (isEnabledCSSProperty(id)) {
-            propertyInfo.hadPixelOrPosPrefix = hadPixelOrPosPrefix;
-            propertyInfo.propertyID = id;
-            propertyInfoCache.get().add(propertyNameString, propertyInfo);
-        }
</del><ins>+        propertyInfo.hadPixelOrPosPrefix = hadPixelOrPosPrefix;
+        propertyInfo.propertyID = static_cast<CSSPropertyID>(propertyID);
+        propertyInfoCache.get().add(propertyNameString, propertyInfo);
</ins><span class="cx">     }
</span><span class="cx">     return propertyInfo;
</span><span class="cx"> }
</span><span class="lines">@@ -311,25 +308,21 @@
</span><span class="cx"> 
</span><span class="cx"> Vector<AtomicString> CSSStyleDeclaration::supportedPropertyNames() const
</span><span class="cx"> {
</span><del>-    static unsigned numNames = 0;
</del><span class="cx">     static const AtomicString* const cssPropertyNames = [] {
</span><span class="cx">         String names[numCSSProperties];
</span><del>-        for (int i = 0; i < numCSSProperties; ++i) {
-            CSSPropertyID id = static_cast<CSSPropertyID>(firstCSSProperty + i);
-            if (isEnabledCSSProperty(id))
-                names[numNames++] = getJSPropertyName(id);
-        }
-        std::sort(&names[0], &names[numNames], WTF::codePointCompareLessThan);
-        auto* identifiers = new AtomicString[numNames];
-        for (unsigned i = 0; i < numNames; ++i)
</del><ins>+        for (int i = 0; i < numCSSProperties; ++i)
+            names[i] = getJSPropertyName(static_cast<CSSPropertyID>(firstCSSProperty + i));
+        std::sort(&names[0], &names[numCSSProperties], WTF::codePointCompareLessThan);
+        auto* identifiers = new AtomicString[numCSSProperties];
+        for (int i = 0; i < numCSSProperties; ++i)
</ins><span class="cx">             identifiers[i] = names[i];
</span><span class="cx">         return identifiers;
</span><span class="cx">     }();
</span><span class="cx"> 
</span><span class="cx">     Vector<AtomicString> result;
</span><del>-    result.reserveInitialCapacity(numNames);
</del><ins>+    result.reserveInitialCapacity(numCSSProperties);
</ins><span class="cx"> 
</span><del>-    for (unsigned i = 0; i < numNames; ++i)
</del><ins>+    for (unsigned i = 0; i < numCSSProperties; ++i)
</ins><span class="cx">         result.uncheckedAppend(cssPropertyNames[i]);
</span><span class="cx"> 
</span><span class="cx">     return result;
</span></span></pre></div>
<a id="trunkSourceWebCorecssStylePropertiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleProperties.cpp (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleProperties.cpp     2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Source/WebCore/css/StyleProperties.cpp        2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -150,7 +150,7 @@
</span><span class="cx">     case CSSPropertyBackground:
</span><span class="cx">         return getLayeredShorthandValue(backgroundShorthand());
</span><span class="cx">     case CSSPropertyBorder:
</span><del>-        return borderPropertyValue(borderWidthShorthand(), borderStyleShorthand(), borderColorShorthand());
</del><ins>+        return borderPropertyValue();
</ins><span class="cx">     case CSSPropertyBorderTop:
</span><span class="cx">         return getShorthandValue(borderTopShorthand());
</span><span class="cx">     case CSSPropertyBorderRight:
</span><span class="lines">@@ -159,26 +159,10 @@
</span><span class="cx">         return getShorthandValue(borderBottomShorthand());
</span><span class="cx">     case CSSPropertyBorderLeft:
</span><span class="cx">         return getShorthandValue(borderLeftShorthand());
</span><del>-    case CSSPropertyBorderBlock:
-        return borderPropertyValue(borderBlockWidthShorthand(), borderBlockStyleShorthand(), borderBlockColorShorthand());
-    case CSSPropertyBorderBlockColor:
-        return get2Values(borderBlockColorShorthand());
-    case CSSPropertyBorderBlockStyle:
-        return get2Values(borderBlockStyleShorthand());
-    case CSSPropertyBorderBlockWidth:
-        return get2Values(borderBlockWidthShorthand());
</del><span class="cx">     case CSSPropertyBorderBlockStart:
</span><span class="cx">         return getShorthandValue(borderBlockStartShorthand());
</span><span class="cx">     case CSSPropertyBorderBlockEnd:
</span><span class="cx">         return getShorthandValue(borderBlockEndShorthand());
</span><del>-    case CSSPropertyBorderInline:
-        return borderPropertyValue(borderInlineWidthShorthand(), borderInlineStyleShorthand(), borderInlineColorShorthand());
-    case CSSPropertyBorderInlineColor:
-        return get2Values(borderInlineColorShorthand());
-    case CSSPropertyBorderInlineStyle:
-        return get2Values(borderInlineStyleShorthand());
-    case CSSPropertyBorderInlineWidth:
-        return get2Values(borderInlineWidthShorthand());
</del><span class="cx">     case CSSPropertyBorderInlineStart:
</span><span class="cx">         return getShorthandValue(borderInlineStartShorthand());
</span><span class="cx">     case CSSPropertyBorderInlineEnd:
</span><span class="lines">@@ -219,10 +203,6 @@
</span><span class="cx">         return fontValue();
</span><span class="cx">     case CSSPropertyMargin:
</span><span class="cx">         return get4Values(marginShorthand());
</span><del>-    case CSSPropertyMarginBlock:
-        return get2Values(marginBlockShorthand());
-    case CSSPropertyMarginInline:
-        return get2Values(marginInlineShorthand());
</del><span class="cx">     case CSSPropertyWebkitMarginCollapse:
</span><span class="cx">         return getShorthandValue(webkitMarginCollapseShorthand());
</span><span class="cx">     case CSSPropertyOverflow:
</span><span class="lines">@@ -229,10 +209,6 @@
</span><span class="cx">         return getCommonValue(overflowShorthand());
</span><span class="cx">     case CSSPropertyPadding:
</span><span class="cx">         return get4Values(paddingShorthand());
</span><del>-    case CSSPropertyPaddingBlock:
-        return get2Values(paddingBlockShorthand());
-    case CSSPropertyPaddingInline:
-        return get2Values(paddingInlineShorthand());
</del><span class="cx">     case CSSPropertyTransition:
</span><span class="cx">         return getLayeredShorthandValue(transitionShorthand());
</span><span class="cx">     case CSSPropertyListStyle:
</span><span class="lines">@@ -380,44 +356,6 @@
</span><span class="cx">     return result.toString();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String StyleProperties::get2Values(const StylePropertyShorthand& shorthand) const
-{
-    // Assume the properties are in the usual order start, end.
-    int startValueIndex = findPropertyIndex(shorthand.properties()[0]);
-    int endValueIndex = findPropertyIndex(shorthand.properties()[1]);
-
-    if (startValueIndex == -1 || endValueIndex == -1)
-        return { };
-
-    auto start = propertyAt(startValueIndex);
-    auto end = propertyAt(endValueIndex);
-
-    // All 2 properties must be specified.
-    if (!start.value() || !end.value())
-        return { };
-
-    // Important flags must be the same
-    if (start.isImportant() != end.isImportant())
-        return { };
-
-    if (start.isInherited() && end.isInherited())
-        return getValueName(CSSValueInherit);
-
-    if (start.value()->isInitialValue() || end.value()->isInitialValue()) {
-        if (start.value()->isInitialValue() && end.value()->isInitialValue() && !start.isImplicit())
-            return getValueName(CSSValueInitial);
-        return { };
-    }
-
-    StringBuilder result;
-    result.append(start.value()->cssText());
-    if (!start.value()->equals(*end.value())) {
-        result.append(' ');
-        result.append(end.value()->cssText());
-    }
-    return result.toString();
-}
-
</del><span class="cx"> String StyleProperties::get4Values(const StylePropertyShorthand& shorthand) const
</span><span class="cx"> {
</span><span class="cx">     // Assume the properties are in the usual order top, right, bottom, left.
</span><span class="lines">@@ -683,9 +621,9 @@
</span><span class="cx">     return value;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String StyleProperties::borderPropertyValue(const StylePropertyShorthand& width, const StylePropertyShorthand& style, const StylePropertyShorthand& color) const
</del><ins>+String StyleProperties::borderPropertyValue() const
</ins><span class="cx"> {
</span><del>-    const StylePropertyShorthand properties[3] = { width, style, color };
</del><ins>+    const StylePropertyShorthand properties[3] = { borderWidthShorthand(), borderStyleShorthand(), borderColorShorthand() };
</ins><span class="cx">     String commonValue;
</span><span class="cx">     StringBuilder result;
</span><span class="cx">     for (size_t i = 0; i < WTF_ARRAY_LENGTH(properties); ++i) {
</span><span class="lines">@@ -825,9 +763,6 @@
</span><span class="cx"> 
</span><span class="cx"> bool MutableStyleProperties::setProperty(CSSPropertyID propertyID, const String& value, bool important, CSSParserContext parserContext)
</span><span class="cx"> {
</span><del>-    if (!isEnabledCSSProperty(propertyID))
-        return false;
-
</del><span class="cx">     // Setting the value to an empty string just removes the property in both IE and Gecko.
</span><span class="cx">     // Setting it to null seems to produce less consistent results, but we treat it just the same.
</span><span class="cx">     if (value.isEmpty())
</span><span class="lines">@@ -974,23 +909,7 @@
</span><span class="cx">         CSSPropertyID propertyID = property.id();
</span><span class="cx">         CSSPropertyID shorthandPropertyID = CSSPropertyInvalid;
</span><span class="cx">         CSSPropertyID borderFallbackShorthandProperty = CSSPropertyInvalid;
</span><del>-        CSSPropertyID borderBlockFallbackShorthandProperty = CSSPropertyInvalid;
-        CSSPropertyID borderInlineFallbackShorthandProperty = CSSPropertyInvalid;
</del><span class="cx">         String value;
</span><del>-        auto serializeBorderShorthand = [&] (const CSSPropertyID borderProperty, const CSSPropertyID fallbackProperty) {
-            // FIXME: Deal with cases where only some of border sides are specified.
-            ASSERT(borderProperty - firstCSSProperty < shorthandPropertyAppeared.size());
-            if (!shorthandPropertyAppeared[borderProperty - firstCSSProperty] && isEnabledCSSProperty(borderProperty)) {
-                value = getPropertyValue(borderProperty);
-                if (value.isNull())
-                    shorthandPropertyAppeared.set(borderProperty - firstCSSProperty);
-                else
-                    shorthandPropertyID = borderProperty;
-            } else if (shorthandPropertyUsed[borderProperty - firstCSSProperty])
-                shorthandPropertyID = borderProperty;
-            if (!shorthandPropertyID)
-                shorthandPropertyID = fallbackProperty;
-        };
</del><span class="cx">         
</span><span class="cx">         if (property.value() && property.value()->isPendingSubstitutionValue()) {
</span><span class="cx">             auto& substitutionValue = downcast<CSSPendingSubstitutionValue>(*property.value());
</span><span class="lines">@@ -1040,40 +959,20 @@
</span><span class="cx">             case CSSPropertyBorderLeftColor:
</span><span class="cx">                 if (!borderFallbackShorthandProperty)
</span><span class="cx">                     borderFallbackShorthandProperty = CSSPropertyBorderColor;
</span><del>-                serializeBorderShorthand(CSSPropertyBorder, borderFallbackShorthandProperty);
</del><ins>+
+                // FIXME: Deal with cases where only some of border-(top|right|bottom|left) are specified.
+                ASSERT(CSSPropertyBorder - firstCSSProperty < shorthandPropertyAppeared.size());
+                if (!shorthandPropertyAppeared[CSSPropertyBorder - firstCSSProperty]) {
+                    value = borderPropertyValue();
+                    if (value.isNull())
+                        shorthandPropertyAppeared.set(CSSPropertyBorder - firstCSSProperty);
+                    else
+                        shorthandPropertyID = CSSPropertyBorder;
+                } else if (shorthandPropertyUsed[CSSPropertyBorder - firstCSSProperty])
+                    shorthandPropertyID = CSSPropertyBorder;
+                if (!shorthandPropertyID)
+                    shorthandPropertyID = borderFallbackShorthandProperty;
</ins><span class="cx">                 break;
</span><del>-            case CSSPropertyBorderBlockStartWidth:
-            case CSSPropertyBorderBlockEndWidth:
-                if (!borderBlockFallbackShorthandProperty)
-                    borderBlockFallbackShorthandProperty = CSSPropertyBorderBlockWidth;
-                FALLTHROUGH;
-            case CSSPropertyBorderBlockStartStyle:
-            case CSSPropertyBorderBlockEndStyle:
-                if (!borderBlockFallbackShorthandProperty)
-                    borderBlockFallbackShorthandProperty = CSSPropertyBorderBlockStyle;
-                FALLTHROUGH;
-            case CSSPropertyBorderBlockStartColor:
-            case CSSPropertyBorderBlockEndColor:
-                if (!borderBlockFallbackShorthandProperty)
-                    borderBlockFallbackShorthandProperty = CSSPropertyBorderBlockColor;
-                serializeBorderShorthand(CSSPropertyBorderBlock, borderBlockFallbackShorthandProperty);
-                break;
-            case CSSPropertyBorderInlineStartWidth:
-            case CSSPropertyBorderInlineEndWidth:
-                if (!borderInlineFallbackShorthandProperty)
-                    borderInlineFallbackShorthandProperty = CSSPropertyBorderInlineWidth;
-                FALLTHROUGH;
-            case CSSPropertyBorderInlineStartStyle:
-            case CSSPropertyBorderInlineEndStyle:
-                if (!borderInlineFallbackShorthandProperty)
-                    borderInlineFallbackShorthandProperty = CSSPropertyBorderInlineStyle;
-                FALLTHROUGH;
-            case CSSPropertyBorderInlineStartColor:
-            case CSSPropertyBorderInlineEndColor:
-                if (!borderInlineFallbackShorthandProperty)
-                    borderInlineFallbackShorthandProperty = CSSPropertyBorderInlineColor;
-                serializeBorderShorthand(CSSPropertyBorderInline, borderInlineFallbackShorthandProperty);
-                break;
</del><span class="cx">             case CSSPropertyWebkitBorderHorizontalSpacing:
</span><span class="cx">             case CSSPropertyWebkitBorderVerticalSpacing:
</span><span class="cx">                 shorthandPropertyID = CSSPropertyBorderSpacing;
</span><span class="lines">@@ -1097,14 +996,6 @@
</span><span class="cx">             case CSSPropertyMarginLeft:
</span><span class="cx">                 shorthandPropertyID = CSSPropertyMargin;
</span><span class="cx">                 break;
</span><del>-            case CSSPropertyMarginBlockStart:
-            case CSSPropertyMarginBlockEnd:
-                shorthandPropertyID = CSSPropertyMarginBlock;
-                break;
-            case CSSPropertyMarginInlineStart:
-            case CSSPropertyMarginInlineEnd:
-                shorthandPropertyID = CSSPropertyMarginInline;
-                break;
</del><span class="cx">             case CSSPropertyOutlineWidth:
</span><span class="cx">             case CSSPropertyOutlineStyle:
</span><span class="cx">             case CSSPropertyOutlineColor:
</span><span class="lines">@@ -1120,14 +1011,6 @@
</span><span class="cx">             case CSSPropertyPaddingLeft:
</span><span class="cx">                 shorthandPropertyID = CSSPropertyPadding;
</span><span class="cx">                 break;
</span><del>-            case CSSPropertyPaddingBlockStart:
-            case CSSPropertyPaddingBlockEnd:
-                shorthandPropertyID = CSSPropertyPaddingBlock;
-                break;
-            case CSSPropertyPaddingInlineStart:
-            case CSSPropertyPaddingInlineEnd:
-                shorthandPropertyID = CSSPropertyPaddingInline;
-                break;
</del><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><span class="cx">             case CSSPropertyScrollPaddingTop:
</span><span class="cx">             case CSSPropertyScrollPaddingRight:
</span><span class="lines">@@ -1183,7 +1066,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         unsigned shortPropertyIndex = shorthandPropertyID - firstCSSProperty;
</span><del>-        if (shorthandPropertyID && isEnabledCSSProperty(shorthandPropertyID)) {
</del><ins>+        if (shorthandPropertyID) {
</ins><span class="cx">             ASSERT(shortPropertyIndex < shorthandPropertyUsed.size());
</span><span class="cx">             if (shorthandPropertyUsed[shortPropertyIndex])
</span><span class="cx">                 continue;
</span></span></pre></div>
<a id="trunkSourceWebCorecssStylePropertiesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleProperties.h (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleProperties.h       2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Source/WebCore/css/StyleProperties.h  2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -163,9 +163,8 @@
</span><span class="cx">     String getShorthandValue(const StylePropertyShorthand&) const;
</span><span class="cx">     String getCommonValue(const StylePropertyShorthand&) const;
</span><span class="cx">     String getAlignmentShorthandValue(const StylePropertyShorthand&) const;
</span><del>-    String borderPropertyValue(const StylePropertyShorthand&, const StylePropertyShorthand&, const StylePropertyShorthand&) const;
</del><ins>+    String borderPropertyValue() const;
</ins><span class="cx">     String getLayeredShorthandValue(const StylePropertyShorthand&) const;
</span><del>-    String get2Values(const StylePropertyShorthand&) const;
</del><span class="cx">     String get4Values(const StylePropertyShorthand&) const;
</span><span class="cx">     String borderSpacingValue(const StylePropertyShorthand&) const;
</span><span class="cx">     String fontValue() const;
</span></span></pre></div>
<a id="trunkSourceWebCorecssmakeproppl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/makeprop.pl (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/makeprop.pl     2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Source/WebCore/css/makeprop.pl        2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -60,7 +60,6 @@
</span><span class="cx"> 
</span><span class="cx"> my @names;
</span><span class="cx"> my @internalProprerties;
</span><del>-my %runtimeFlags;
</del><span class="cx"> my $numPredefinedProperties = 2;
</span><span class="cx"> my %nameIsInherited;
</span><span class="cx"> my %nameIsHighPriority;
</span><span class="lines">@@ -200,8 +199,6 @@
</span><span class="cx">                 } elsif ($codegenOptionName eq "internal-only") {
</span><span class="cx">                     # internal-only properties exist to make it easier to parse compound properties (e.g. background-repeat) as if they were shorthands.
</span><span class="cx">                     push @internalProprerties, $name
</span><del>-                } elsif ($codegenOptionName eq "runtime-flag") {
-                    $runtimeFlags{$name} = $codegenProperties->{"runtime-flag"};
</del><span class="cx">                 } else {
</span><span class="cx">                     die "Unrecognized codegen property \"$codegenOptionName\" for $name property.";
</span><span class="cx">                 }
</span><span class="lines">@@ -246,7 +243,6 @@
</span><span class="cx"> #include \"CSSProperty.h\"
</span><span class="cx"> #include \"CSSPropertyNames.h\"
</span><span class="cx"> #include \"HashTools.h\"
</span><del>-#include "RuntimeEnabledFeatures.h"
</del><span class="cx"> #include <wtf/ASCIICType.h>
</span><span class="cx"> #include <wtf/text/AtomicString.h>
</span><span class="cx"> #include <wtf/text/WTFString.h>
</span><span class="lines">@@ -328,22 +324,6 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool isEnabledCSSProperty(const CSSPropertyID id)
-{
-    switch (id) {
-EOF
-
-foreach my $name (keys %runtimeFlags) {
-  print GPERF "    case CSSPropertyID::CSSProperty" . $nameToId{$name} . ":\n";
-  print GPERF "        return RuntimeEnabledFeatures::sharedFeatures()." . $runtimeFlags{$name} . "Enabled();\n";
-}
-
-print GPERF << "EOF";
-    default:
-        return true;
-    }
-}
-
</del><span class="cx"> const char* getPropertyName(CSSPropertyID id)
</span><span class="cx"> {
</span><span class="cx">     if (id < firstCSSProperty)
</span><span class="lines">@@ -491,7 +471,6 @@
</span><span class="cx"> print HEADER << "EOF";
</span><span class="cx"> 
</span><span class="cx"> bool isInternalCSSProperty(const CSSPropertyID);
</span><del>-bool isEnabledCSSProperty(const CSSPropertyID);
</del><span class="cx"> const char* getPropertyName(CSSPropertyID);
</span><span class="cx"> const WTF::AtomicString& getPropertyNameAtomicString(CSSPropertyID id);
</span><span class="cx"> WTF::String getPropertyNameString(CSSPropertyID id);
</span></span></pre></div>
<a id="trunkSourceWebCorecssparserCSSPropertyParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp    2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp       2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -146,12 +146,7 @@
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     const Property* hashTableEntry = findProperty(name, length);
</span><del>-    if (hashTableEntry) {
-        auto propertyID = static_cast<CSSPropertyID>(hashTableEntry->id);
-        if (isEnabledCSSProperty(propertyID))
-            return propertyID;
-    }
-    return CSSPropertyInvalid;
</del><ins>+    return hashTableEntry ? static_cast<CSSPropertyID>(hashTableEntry->id) : CSSPropertyInvalid;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool isAppleLegacyCssValueKeyword(const char* valueKeyword, unsigned length)
</span><span class="lines">@@ -232,9 +227,6 @@
</span><span class="cx"> 
</span><span class="cx"> void CSSPropertyParser::addProperty(CSSPropertyID property, CSSPropertyID currentShorthand, Ref<CSSValue>&& value, bool important, bool implicit)
</span><span class="cx"> {
</span><del>-    if (!isEnabledCSSProperty(property))
-        return;
-
</del><span class="cx">     int shorthandIndex = 0;
</span><span class="cx">     bool setFromShorthand = false;
</span><span class="cx"> 
</span><span class="lines">@@ -4986,8 +4978,12 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool CSSPropertyParser::consumeBorder(RefPtr<CSSValue>& width, RefPtr<CSSValue>& style, RefPtr<CSSValue>& color)
</del><ins>+bool CSSPropertyParser::consumeBorder(bool important)
</ins><span class="cx"> {
</span><ins>+    RefPtr<CSSValue> width;
+    RefPtr<CSSValue> style;
+    RefPtr<CSSValue> color;
+
</ins><span class="cx">     while (!width || !style || !color) {
</span><span class="cx">         if (!width) {
</span><span class="cx">             width = consumeLineWidth(m_range, m_context.mode, UnitlessQuirk::Forbid);
</span><span class="lines">@@ -5017,28 +5013,15 @@
</span><span class="cx">     if (!color)
</span><span class="cx">         color = CSSValuePool::singleton().createImplicitInitialValue();
</span><span class="cx"> 
</span><del>-    return m_range.atEnd();
-}
</del><ins>+    addExpandedPropertyForValue(CSSPropertyBorderWidth, width.releaseNonNull(), important);
+    addExpandedPropertyForValue(CSSPropertyBorderStyle, style.releaseNonNull(), important);
+    addExpandedPropertyForValue(CSSPropertyBorderColor, color.releaseNonNull(), important);
+    addExpandedPropertyForValue(CSSPropertyBorderImage, CSSValuePool::singleton().createImplicitInitialValue(), important);
</ins><span class="cx"> 
</span><del>-bool CSSPropertyParser::consume2ValueShorthand(const StylePropertyShorthand& shorthand, bool important)
-{
-    ASSERT(shorthand.length() == 2);
-    const CSSPropertyID* longhands = shorthand.properties();
-    RefPtr<CSSValue> start = parseSingleValue(longhands[0], shorthand.id());
-    if (!start)
-        return false;
-
-    RefPtr<CSSValue> end = parseSingleValue(longhands[1], shorthand.id());
-    bool endImplicit = !end;
-    if (endImplicit)
-        end = start;
-    addProperty(longhands[0], shorthand.id(), start.releaseNonNull(), important);
-    addProperty(longhands[1], shorthand.id(), end.releaseNonNull(), important, endImplicit);
-
</del><span class="cx">     return m_range.atEnd();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool CSSPropertyParser::consume4ValueShorthand(const StylePropertyShorthand& shorthand, bool important)
</del><ins>+bool CSSPropertyParser::consume4Values(const StylePropertyShorthand& shorthand, bool important)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(shorthand.length() == 4);
</span><span class="cx">     const CSSPropertyID* longhands = shorthand.properties();
</span><span class="lines">@@ -5736,67 +5719,23 @@
</span><span class="cx">         // of -webkit-text-decoration completely.
</span><span class="cx">         return consumeShorthandGreedily(webkitTextDecorationShorthand(), important);
</span><span class="cx">     case CSSPropertyMargin:
</span><del>-        return consume4ValueShorthand(marginShorthand(), important);
-    case CSSPropertyMarginBlock:
-        return consume2ValueShorthand(marginBlockShorthand(), important);
-    case CSSPropertyMarginInline:
-        return consume2ValueShorthand(marginInlineShorthand(), important);
</del><ins>+        return consume4Values(marginShorthand(), important);
</ins><span class="cx">     case CSSPropertyPadding:
</span><del>-        return consume4ValueShorthand(paddingShorthand(), important);
-    case CSSPropertyPaddingBlock:
-        return consume2ValueShorthand(paddingBlockShorthand(), important);
-    case CSSPropertyPaddingInline:
-        return consume2ValueShorthand(paddingInlineShorthand(), important);
</del><ins>+        return consume4Values(paddingShorthand(), important);
</ins><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span><span class="cx">     case CSSPropertyScrollSnapMargin:
</span><del>-        return consume4ValueShorthand(scrollSnapMarginShorthand(), important);
</del><ins>+        return consume4Values(scrollSnapMarginShorthand(), important);
</ins><span class="cx">     case CSSPropertyScrollPadding:
</span><del>-        return consume4ValueShorthand(scrollPaddingShorthand(), important);
</del><ins>+        return consume4Values(scrollPaddingShorthand(), important);
</ins><span class="cx"> #endif
</span><span class="cx">     case CSSPropertyWebkitTextEmphasis:
</span><span class="cx">         return consumeShorthandGreedily(webkitTextEmphasisShorthand(), important);
</span><span class="cx">     case CSSPropertyOutline:
</span><span class="cx">         return consumeShorthandGreedily(outlineShorthand(), important);
</span><del>-    case CSSPropertyBorderInline: {
-        RefPtr<CSSValue> width;
-        RefPtr<CSSValue> style;
-        RefPtr<CSSValue> color;
-        if (!consumeBorder(width, style, color))
-            return false;
-
-        addExpandedPropertyForValue(CSSPropertyBorderInlineWidth, width.releaseNonNull(), important);
-        addExpandedPropertyForValue(CSSPropertyBorderInlineStyle, style.releaseNonNull(), important);
-        addExpandedPropertyForValue(CSSPropertyBorderInlineColor, color.releaseNonNull(), important);
-        return true;
-    }
-    case CSSPropertyBorderInlineColor:
-        return consume2ValueShorthand(borderInlineColorShorthand(), important);
-    case CSSPropertyBorderInlineStyle:
-        return consume2ValueShorthand(borderInlineStyleShorthand(), important);
-    case CSSPropertyBorderInlineWidth:
-        return consume2ValueShorthand(borderInlineWidthShorthand(), important);
</del><span class="cx">     case CSSPropertyBorderInlineStart:
</span><span class="cx">         return consumeShorthandGreedily(borderInlineStartShorthand(), important);
</span><span class="cx">     case CSSPropertyBorderInlineEnd:
</span><span class="cx">         return consumeShorthandGreedily(borderInlineEndShorthand(), important);
</span><del>-    case CSSPropertyBorderBlock: {
-        RefPtr<CSSValue> width;
-        RefPtr<CSSValue> style;
-        RefPtr<CSSValue> color;
-        if (!consumeBorder(width, style, color))
-            return false;
-
-        addExpandedPropertyForValue(CSSPropertyBorderBlockWidth, width.releaseNonNull(), important);
-        addExpandedPropertyForValue(CSSPropertyBorderBlockStyle, style.releaseNonNull(), important);
-        addExpandedPropertyForValue(CSSPropertyBorderBlockColor, color.releaseNonNull(), important);
-        return true;
-    }
-    case CSSPropertyBorderBlockColor:
-        return consume2ValueShorthand(borderBlockColorShorthand(), important);
-    case CSSPropertyBorderBlockStyle:
-        return consume2ValueShorthand(borderBlockStyleShorthand(), important);
-    case CSSPropertyBorderBlockWidth:
-        return consume2ValueShorthand(borderBlockWidthShorthand(), important);
</del><span class="cx">     case CSSPropertyBorderBlockStart:
</span><span class="cx">         return consumeShorthandGreedily(borderBlockStartShorthand(), important);
</span><span class="cx">     case CSSPropertyBorderBlockEnd:
</span><span class="lines">@@ -5834,11 +5773,11 @@
</span><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx">     case CSSPropertyBorderColor:
</span><del>-        return consume4ValueShorthand(borderColorShorthand(), important);
</del><ins>+        return consume4Values(borderColorShorthand(), important);
</ins><span class="cx">     case CSSPropertyBorderStyle:
</span><del>-        return consume4ValueShorthand(borderStyleShorthand(), important);
</del><ins>+        return consume4Values(borderStyleShorthand(), important);
</ins><span class="cx">     case CSSPropertyBorderWidth:
</span><del>-        return consume4ValueShorthand(borderWidthShorthand(), important);
</del><ins>+        return consume4Values(borderWidthShorthand(), important);
</ins><span class="cx">     case CSSPropertyBorderTop:
</span><span class="cx">         return consumeShorthandGreedily(borderTopShorthand(), important);
</span><span class="cx">     case CSSPropertyBorderRight:
</span><span class="lines">@@ -5847,19 +5786,8 @@
</span><span class="cx">         return consumeShorthandGreedily(borderBottomShorthand(), important);
</span><span class="cx">     case CSSPropertyBorderLeft:
</span><span class="cx">         return consumeShorthandGreedily(borderLeftShorthand(), important);
</span><del>-    case CSSPropertyBorder: {
-        RefPtr<CSSValue> width;
-        RefPtr<CSSValue> style;
-        RefPtr<CSSValue> color;
-        if (!consumeBorder(width, style, color))
-            return false;
-
-        addExpandedPropertyForValue(CSSPropertyBorderWidth, width.releaseNonNull(), important);
-        addExpandedPropertyForValue(CSSPropertyBorderStyle, style.releaseNonNull(), important);
-        addExpandedPropertyForValue(CSSPropertyBorderColor, color.releaseNonNull(), important);
-        addExpandedPropertyForValue(CSSPropertyBorderImage, CSSValuePool::singleton().createImplicitInitialValue(), important);
-        return true;
-    }
</del><ins>+    case CSSPropertyBorder:
+        return consumeBorder(important);
</ins><span class="cx">     case CSSPropertyBorderImage:
</span><span class="cx">         return consumeBorderImage(property, important);
</span><span class="cx">     case CSSPropertyWebkitMaskPosition:
</span></span></pre></div>
<a id="trunkSourceWebCorecssparserCSSPropertyParserh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/CSSPropertyParser.h (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/CSSPropertyParser.h      2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Source/WebCore/css/parser/CSSPropertyParser.h 2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -69,12 +69,11 @@
</span><span class="cx">     void addProperty(CSSPropertyID, CSSPropertyID, Ref<CSSValue>&&, bool important, bool implicit = false);
</span><span class="cx">     void addExpandedPropertyForValue(CSSPropertyID propId, Ref<CSSValue>&&, bool);
</span><span class="cx"> 
</span><del>-    bool consumeBorder(RefPtr<CSSValue>& width, RefPtr<CSSValue>& style, RefPtr<CSSValue>& color);
</del><ins>+    bool consumeBorder(bool important);
</ins><span class="cx"> 
</span><span class="cx">     bool parseShorthand(CSSPropertyID, bool important);
</span><span class="cx">     bool consumeShorthandGreedily(const StylePropertyShorthand&, bool important);
</span><del>-    bool consume2ValueShorthand(const StylePropertyShorthand&, bool important);
-    bool consume4ValueShorthand(const StylePropertyShorthand&, bool important);
</del><ins>+    bool consume4Values(const StylePropertyShorthand&, bool important);
</ins><span class="cx"> 
</span><span class="cx">     // Legacy parsing allows <string>s for animation-name
</span><span class="cx">     bool consumeAnimationShorthand(const StylePropertyShorthand&, bool important);
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectoragentsInspectorCSSAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/agents/InspectorCSSAgent.cpp (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/agents/InspectorCSSAgent.cpp      2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Source/WebCore/inspector/agents/InspectorCSSAgent.cpp 2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -719,7 +719,7 @@
</span><span class="cx">     auto properties = JSON::ArrayOf<Inspector::Protocol::CSS::CSSPropertyInfo>::create();
</span><span class="cx">     for (int i = firstCSSProperty; i <= lastCSSProperty; ++i) {
</span><span class="cx">         CSSPropertyID propertyID = convertToCSSPropertyID(i);
</span><del>-        if (isInternalCSSProperty(propertyID) || !isEnabledCSSProperty(propertyID))
</del><ins>+        if (isInternalCSSProperty(propertyID))
</ins><span class="cx">             continue;
</span><span class="cx"> 
</span><span class="cx">         auto property = Inspector::Protocol::CSS::CSSPropertyInfo::create()
</span><span class="lines">@@ -739,8 +739,7 @@
</span><span class="cx">             auto longhands = JSON::ArrayOf<String>::create();
</span><span class="cx">             for (unsigned j = 0; j < shorthand.length(); ++j) {
</span><span class="cx">                 CSSPropertyID longhandID = shorthand.properties()[j];
</span><del>-                if (isEnabledCSSProperty(longhandID))
-                    longhands->addItem(getPropertyNameString(longhandID));
</del><ins>+                longhands->addItem(getPropertyNameString(longhandID));
</ins><span class="cx">             }
</span><span class="cx">             property->setLonghands(WTFMove(longhands));
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCorepageRuntimeEnabledFeaturesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/RuntimeEnabledFeatures.h (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/RuntimeEnabledFeatures.h       2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Source/WebCore/page/RuntimeEnabledFeatures.h  2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -322,9 +322,6 @@
</span><span class="cx">     bool systemPreviewEnabled() const { return m_systemPreviewEnabled; }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    void setCSSLogicalEnabled(bool isEnabled) { m_CSSLogicalEnabled = isEnabled; }
-    bool cssLogicalEnabled() const { return m_CSSLogicalEnabled; }
-
</del><span class="cx">     WEBCORE_EXPORT static RuntimeEnabledFeatures& sharedFeatures();
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="lines">@@ -487,8 +484,6 @@
</span><span class="cx">     bool m_systemPreviewEnabled { false };
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    bool m_CSSLogicalEnabled { false };
-
</del><span class="cx">     friend class WTF::NeverDestroyed<RuntimeEnabledFeatures>;
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ChangeLog (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ChangeLog    2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Source/WebKit/ChangeLog       2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2018-11-15  Truitt Savell  <tsavell@apple.com>
+
+        Unreviewed, rolling out r238244.
+
+        Caused High Sierra test runs to fail early with 50 crashes and
+        casued 25 API failures.
+
+        Reverted changeset:
+
+        "[css-logical] Implement flow-relative margin, padding and
+        border shorthands"
+        https://bugs.webkit.org/show_bug.cgi?id=188697
+        https://trac.webkit.org/changeset/238244
+
</ins><span class="cx"> 2018-11-15  Joseph Pecoraro  <pecoraro@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: Remove unused WebInspectorProxy code
</span></span></pre></div>
<a id="trunkSourceWebKitSharedWebPreferencesyaml"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/Shared/WebPreferences.yaml (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/Shared/WebPreferences.yaml   2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Source/WebKit/Shared/WebPreferences.yaml      2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1461,11 +1461,3 @@
</span><span class="cx">   category: internal
</span><span class="cx">   webcoreBinding: RuntimeEnabledFeatures
</span><span class="cx">   condition: ENABLE(DATALIST_ELEMENT)
</span><del>-
-CSSLogicalEnabled:
-  type: bool
-  defaultValue: false
-  humanReadableName: "CSS Logical Properties and Values"
-  humanReadableDescription: "Enable CSS Logical Properties and Values"
-  webcoreBinding: RuntimeEnabledFeatures
-  category: internal
</del></span></pre></div>
<a id="trunkSourceWebKitLegacymacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKitLegacy/mac/ChangeLog  2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog     2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2018-11-15  Truitt Savell  <tsavell@apple.com>
+
+        Unreviewed, rolling out r238244.
+
+        Caused High Sierra test runs to fail early with 50 crashes and
+        casued 25 API failures.
+
+        Reverted changeset:
+
+        "[css-logical] Implement flow-relative margin, padding and
+        border shorthands"
+        https://bugs.webkit.org/show_bug.cgi?id=188697
+        https://trac.webkit.org/changeset/238244
+
</ins><span class="cx"> 2018-11-15  Oriol Brufau  <obrufau@igalia.com>
</span><span class="cx"> 
</span><span class="cx">         [css-logical] Implement flow-relative margin, padding and border shorthands
</span></span></pre></div>
<a id="trunkSourceWebKitLegacymacWebViewWebPreferenceKeysPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h 2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h    2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -264,4 +264,3 @@
</span><span class="cx"> #define WebKitMediaRecorderEnabledPreferenceKey @"WebKitMediaRecorderEnabled"
</span><span class="cx"> #define WebKitServerTimingEnabledPreferenceKey @"WebKitServerTimingEnabled"
</span><span class="cx"> #define WebKitSelectionAcrossShadowBoundariesEnabledPreferenceKey @"WebKitSelectionAcrossShadowBoundariesEnabled"
</span><del>-#define WebKitCSSLogicalEnabledPreferenceKey @"WebKitCSSLogicalEnabled"
</del></span></pre></div>
<a id="trunkSourceWebKitLegacymacWebViewWebPreferencesmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm  2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm     2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -668,7 +668,6 @@
</span><span class="cx">         [NSNumber numberWithBool:YES], WebKitPeerConnectionEnabledPreferenceKey,
</span><span class="cx"> #endif
</span><span class="cx">         [NSNumber numberWithBool:YES], WebKitSelectionAcrossShadowBoundariesEnabledPreferenceKey,
</span><del>-        [NSNumber numberWithBool:NO], WebKitCSSLogicalEnabledPreferenceKey,
</del><span class="cx"> #if ENABLE(INTERSECTION_OBSERVER)
</span><span class="cx">         @NO, WebKitIntersectionObserverEnabledPreferenceKey,
</span><span class="cx"> #endif
</span><span class="lines">@@ -3390,16 +3389,6 @@
</span><span class="cx">     [self _setBoolValue:flag forKey:WebKitSelectionAcrossShadowBoundariesEnabledPreferenceKey];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (BOOL)cssLogicalEnabled
-{
-    return [self _boolValueForKey:WebKitCSSLogicalEnabledPreferenceKey];
-}
-
-- (void)setCSSLogicalEnabled:(BOOL)flag
-{
-    [self _setBoolValue:flag forKey:WebKitCSSLogicalEnabledPreferenceKey];
-}
-
</del><span class="cx"> @end
</span><span class="cx"> 
</span><span class="cx"> @implementation WebPreferences (WebInternal)
</span></span></pre></div>
<a id="trunkSourceWebKitLegacymacWebViewWebPreferencesPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h    2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h       2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -585,9 +585,6 @@
</span><span class="cx"> - (void)setSelectionAcrossShadowBoundariesEnabled:(BOOL)flag;
</span><span class="cx"> - (BOOL)selectionAcrossShadowBoundariesEnabled;
</span><span class="cx"> 
</span><del>-- (void)setCSSLogicalEnabled:(BOOL)flag;
-- (BOOL)cssLogicalEnabled;
-
</del><span class="cx"> @property (nonatomic) BOOL visualViewportEnabled;
</span><span class="cx"> @property (nonatomic) BOOL visualViewportAPIEnabled;
</span><span class="cx"> @property (nonatomic) BOOL CSSOMViewScrollingAPIEnabled;
</span></span></pre></div>
<a id="trunkSourceWebKitLegacymacWebViewWebViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKitLegacy/mac/WebView/WebView.mm (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKitLegacy/mac/WebView/WebView.mm 2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebView.mm    2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -3077,8 +3077,6 @@
</span><span class="cx">     settings.setFullScreenEnabled([preferences fullScreenEnabled]);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    RuntimeEnabledFeatures::sharedFeatures().setCSSLogicalEnabled([preferences cssLogicalEnabled]);
-
</del><span class="cx">     settings.setHiddenPageDOMTimerThrottlingEnabled([preferences hiddenPageDOMTimerThrottlingEnabled]);
</span><span class="cx"> 
</span><span class="cx">     settings.setHiddenPageCSSAnimationSuspensionEnabled([preferences hiddenPageCSSAnimationSuspensionEnabled]);
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog    2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Tools/ChangeLog       2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2018-11-15  Truitt Savell  <tsavell@apple.com>
+
+        Unreviewed, rolling out r238244.
+
+        Caused High Sierra test runs to fail early with 50 crashes and
+        casued 25 API failures.
+
+        Reverted changeset:
+
+        "[css-logical] Implement flow-relative margin, padding and
+        border shorthands"
+        https://bugs.webkit.org/show_bug.cgi?id=188697
+        https://trac.webkit.org/changeset/238244
+
</ins><span class="cx"> 2018-11-15  Aakash Jain  <aakash_jain@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Increase EWS lock timeout to 3 hours
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreeTestOptionscpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/TestOptions.cpp (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/TestOptions.cpp       2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Tools/DumpRenderTree/TestOptions.cpp  2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -109,8 +109,6 @@
</span><span class="cx">             jscOptions = value;
</span><span class="cx">         else if (key == "experimental:WebGPUEnabled")
</span><span class="cx">             enableWebGPU = parseBooleanTestHeaderValue(value);
</span><del>-        else if (key == "internal:CSSLogicalEnabled")
-            enableCSSLogical = parseBooleanTestHeaderValue(value);
</del><span class="cx">         pairStart = pairEnd + 1;
</span><span class="cx">     }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreeTestOptionsh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/TestOptions.h (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/TestOptions.h 2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Tools/DumpRenderTree/TestOptions.h    2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -45,7 +45,6 @@
</span><span class="cx">     bool enableColorFilter { false };
</span><span class="cx">     bool enableSelectionAcrossShadowBoundaries { true };
</span><span class="cx">     bool enableWebGPU { false };
</span><del>-    bool enableCSSLogical { false };
</del><span class="cx">     std::string jscOptions;
</span><span class="cx"> 
</span><span class="cx">     TestOptions(const std::string& pathOrURL, const std::string& absolutePath);
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreemacDumpRenderTreemm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm 2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm    2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -1011,7 +1011,6 @@
</span><span class="cx">     preferences.colorFilterEnabled = options.enableColorFilter;
</span><span class="cx">     preferences.selectionAcrossShadowBoundariesEnabled = options.enableSelectionAcrossShadowBoundaries;
</span><span class="cx">     preferences.webGPUEnabled = options.enableWebGPU;
</span><del>-    preferences.CSSLogicalEnabled = options.enableCSSLogical;
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Called once on DumpRenderTree startup.
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpystylecheckersjsoncheckerpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/style/checkers/jsonchecker.py (238261 => 238262)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/style/checkers/jsonchecker.py       2018-11-16 00:48:54 UTC (rev 238261)
+++ trunk/Tools/Scripts/webkitpy/style/checkers/jsonchecker.py  2018-11-16 01:07:42 UTC (rev 238262)
</span><span class="lines">@@ -288,7 +288,6 @@
</span><span class="cx">             'longhands': self.validate_array,
</span><span class="cx">             'name-for-methods': self.validate_string,
</span><span class="cx">             'no-default-color': self.validate_boolean,
</span><del>-            'runtime-flag': self.validate_string,
</del><span class="cx">             'setter': self.validate_string,
</span><span class="cx">             'skip-builder': self.validate_boolean,
</span><span class="cx">             'skip-codegen': self.validate_boolean,
</span></span></pre>
</div>
</div>

</body>
</html>