<!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>[209559] 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/209559">209559</a></dd>
<dt>Author</dt> <dd>hyatt@apple.com</dd>
<dt>Date</dt> <dd>2016-12-08 12:57:59 -0800 (Thu, 08 Dec 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>[CSS Parser] Unskip background parsing tests
https://bugs.webkit.org/show_bug.cgi?id=165619
Reviewed by Zalan Bujtas.
Source/WebCore:
Change background-position so that the origin being set is tracked
on a per-x/y basis instead of as a single boolean. The single boolean
caused lousy computed style dumping, since we would switch into verbose
mode for both x and y, even if only one of them had a pair set for it.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::createPositionListForLayer):
* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertPositionComponent):
* rendering/style/FillLayer.cpp:
(WebCore::FillLayer::FillLayer):
(WebCore::FillLayer::operator=):
(WebCore::FillLayer::fillUnsetProperties):
* rendering/style/FillLayer.h:
(WebCore::FillLayer::isBackgroundXOriginSet):
(WebCore::FillLayer::isBackgroundYOriginSet):
(WebCore::FillLayer::setBackgroundXOrigin):
(WebCore::FillLayer::setBackgroundYOrigin):
(WebCore::FillLayer::clearXPosition):
(WebCore::FillLayer::clearYPosition):
(WebCore::FillLayer::isBackgroundOriginSet): Deleted.
LayoutTests:
* TestExpectations:
* fast/backgrounds/background-position-parsing-2-expected.txt:
* fast/backgrounds/background-position-parsing-2.html:
* fast/backgrounds/background-shorthand-after-set-backgroundSize-expected.txt:
* fast/backgrounds/background-shorthand-after-set-backgroundSize.html:
* fast/backgrounds/background-shorthand-with-backgroundSize-style-expected.txt:
* fast/backgrounds/background-shorthand-with-backgroundSize-style.html:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsTestExpectations">trunk/LayoutTests/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsfastbackgroundsbackgroundpositionparsing2expectedtxt">trunk/LayoutTests/fast/backgrounds/background-position-parsing-2-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastbackgroundsbackgroundpositionparsing2html">trunk/LayoutTests/fast/backgrounds/background-position-parsing-2.html</a></li>
<li><a href="#trunkLayoutTestsfastbackgroundsbackgroundshorthandaftersetbackgroundSizeexpectedtxt">trunk/LayoutTests/fast/backgrounds/background-shorthand-after-set-backgroundSize-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastbackgroundsbackgroundshorthandaftersetbackgroundSizehtml">trunk/LayoutTests/fast/backgrounds/background-shorthand-after-set-backgroundSize.html</a></li>
<li><a href="#trunkLayoutTestsfastbackgroundsbackgroundshorthandwithbackgroundSizestyleexpectedtxt">trunk/LayoutTests/fast/backgrounds/background-shorthand-with-backgroundSize-style-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastbackgroundsbackgroundshorthandwithbackgroundSizestylehtml">trunk/LayoutTests/fast/backgrounds/background-shorthand-with-backgroundSize-style.html</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="#trunkSourceWebCorecssStyleBuilderConverterh">trunk/Source/WebCore/css/StyleBuilderConverter.h</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleFillLayercpp">trunk/Source/WebCore/rendering/style/FillLayer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleFillLayerh">trunk/Source/WebCore/rendering/style/FillLayer.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (209558 => 209559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-12-08 20:52:35 UTC (rev 209558)
+++ trunk/LayoutTests/ChangeLog        2016-12-08 20:57:59 UTC (rev 209559)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2016-12-08 Dave Hyatt <hyatt@apple.com>
+
+ [CSS Parser] Unskip background parsing tests
+ https://bugs.webkit.org/show_bug.cgi?id=165619
+
+ Reviewed by Zalan Bujtas.
+
+ * TestExpectations:
+ * fast/backgrounds/background-position-parsing-2-expected.txt:
+ * fast/backgrounds/background-position-parsing-2.html:
+ * fast/backgrounds/background-shorthand-after-set-backgroundSize-expected.txt:
+ * fast/backgrounds/background-shorthand-after-set-backgroundSize.html:
+ * fast/backgrounds/background-shorthand-with-backgroundSize-style-expected.txt:
+ * fast/backgrounds/background-shorthand-with-backgroundSize-style.html:
+
</ins><span class="cx"> 2016-12-08 Joseph Pecoraro <pecoraro@apple.com>
</span><span class="cx">
</span><span class="cx"> Web Inspector: Unable to delete breakpoint from worker script
</span></span></pre></div>
<a id="trunkLayoutTestsTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/TestExpectations (209558 => 209559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/TestExpectations        2016-12-08 20:52:35 UTC (rev 209558)
+++ trunk/LayoutTests/TestExpectations        2016-12-08 20:57:59 UTC (rev 209559)
</span><span class="lines">@@ -970,9 +970,6 @@
</span><span class="cx">
</span><span class="cx"> # The following layout tests need to be changed when the new CSS Parser is turned on, since they
</span><span class="cx"> # incorrectly indicate failures on valid syntax.
</span><del>-webkit.org/b/165195 fast/backgrounds/background-shorthand-after-set-backgroundSize.html [ Pass Failure ]
-webkit.org/b/165195 fast/backgrounds/background-position-parsing-2.html [ Pass Failure ]
-webkit.org/b/165195 fast/backgrounds/background-shorthand-with-backgroundSize-style.html [ Pass Failure ]
</del><span class="cx"> webkit.org/b/165195 fast/css-grid-layout/grid-auto-flow-get-set.html [ Pass Failure ]
</span><span class="cx"> webkit.org/b/165195 fast/css-grid-layout/grid-columns-rows-get-set.html [ Pass Failure ]
</span><span class="cx"> webkit.org/b/165195 fast/css-grid-layout/non-grid-columns-rows-get-set.html [ Pass Failure ]
</span></span></pre></div>
<a id="trunkLayoutTestsfastbackgroundsbackgroundpositionparsing2expectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/backgrounds/background-position-parsing-2-expected.txt (209558 => 209559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/backgrounds/background-position-parsing-2-expected.txt        2016-12-08 20:52:35 UTC (rev 209558)
+++ trunk/LayoutTests/fast/backgrounds/background-position-parsing-2-expected.txt        2016-12-08 20:57:59 UTC (rev 209559)
</span><span class="lines">@@ -5,50 +5,50 @@
</span><span class="cx">
</span><span class="cx"> background-position with one value
</span><span class="cx"> PASS computedStyle.backgroundPosition is '0% 0%'
</span><del>-PASS style.backgroundPosition is '70% 50%'
</del><ins>+PASS style.backgroundPosition is '70% center'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '70% 50%'
</span><del>-PASS style.backgroundPosition is '84px 50%'
</del><ins>+PASS style.backgroundPosition is '84px center'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '84px 50%'
</span><del>-PASS style.backgroundPosition is '0% 50%'
</del><ins>+PASS style.backgroundPosition is 'left center'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '0% 50%'
</span><del>-PASS style.backgroundPosition is '100% 50%'
</del><ins>+PASS style.backgroundPosition is 'right center'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '100% 50%'
</span><del>-PASS style.backgroundPosition is '50% 100%'
</del><ins>+PASS style.backgroundPosition is 'center bottom'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '50% 100%'
</span><del>-PASS style.backgroundPosition is '50% 0%'
</del><ins>+PASS style.backgroundPosition is 'center top'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '50% 0%'
</span><del>-PASS style.backgroundPosition is '50% 50%'
</del><ins>+PASS style.backgroundPosition is 'center center'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '50% 50%'
</span><span class="cx"> background-position with two values
</span><del>-PASS style.backgroundPosition is '0% 100%'
</del><ins>+PASS style.backgroundPosition is 'left bottom'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '0% 100%'
</span><del>-PASS style.backgroundPosition is '0% 100%'
</del><ins>+PASS style.backgroundPosition is 'left bottom'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '0% 100%'
</span><del>-PASS style.backgroundPosition is '100% 100%'
</del><ins>+PASS style.backgroundPosition is '100% bottom'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '100% 100%'
</span><del>-PASS style.backgroundPosition is '100% 0%'
</del><ins>+PASS style.backgroundPosition is '100% top'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '100% 0%'
</span><del>-PASS style.backgroundPosition is '54px 100%'
</del><ins>+PASS style.backgroundPosition is '54px bottom'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '54px 100%'
</span><del>-PASS style.backgroundPosition is '50% 50%'
</del><ins>+PASS style.backgroundPosition is 'center center'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '50% 50%'
</span><del>-PASS style.backgroundPosition is '5% 100%'
</del><ins>+PASS style.backgroundPosition is '5% bottom'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '5% 100%'
</span><span class="cx"> PASS style.backgroundPosition is '30pt -20px'
</span><span class="cx"> PASS computedStyle.backgroundPosition is '40px -20px'
</span><del>-PASS style.backgroundPosition is '100% 50%'
</del><ins>+PASS style.backgroundPosition is 'right center'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '100% 50%'
</span><span class="cx"> PASS style.backgroundPosition is '100% 0px'
</span><span class="cx"> PASS computedStyle.backgroundPosition is '100% 0px'
</span><del>-PASS style.backgroundPosition is '100% 50%'
</del><ins>+PASS style.backgroundPosition is 'right center'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '100% 50%'
</span><del>-PASS style.backgroundPosition is '50% 50%'
</del><ins>+PASS style.backgroundPosition is 'center 50%'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '50% 50%'
</span><del>-PASS style.backgroundPosition is '0% 50%'
</del><ins>+PASS style.backgroundPosition is 'left center'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '0% 50%'
</span><del>-PASS style.backgroundPosition is '-20% 50%'
</del><ins>+PASS style.backgroundPosition is '-20% center'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '-20% 50%'
</span><del>-PASS style.backgroundPosition is '100% 0%'
</del><ins>+PASS style.backgroundPosition is 'right top'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '100% 0%'
</span><span class="cx"> PASS style.backgroundPosition is '50% 50%'
</span><span class="cx"> PASS computedStyle.backgroundPosition is '50% 50%'
</span><span class="lines">@@ -84,20 +84,20 @@
</span><span class="cx"> PASS style.backgroundPosition is '1px 1px'
</span><span class="cx"> PASS computedStyle.backgroundPosition is '1px 1px'
</span><span class="cx"> background-position with CSS3 comma separator, one or two values
</span><del>-PASS style.backgroundPosition is '50% 50%, 100% 50%'
</del><ins>+PASS style.backgroundPosition is '50% center, 100% center'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '50% 50%, 100% 50%'
</span><del>-PASS style.backgroundPosition is '50% 0%, 50% 100%'
</del><ins>+PASS style.backgroundPosition is 'center top, center bottom'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '50% 0%, 50% 100%'
</span><del>-PASS style.backgroundPosition is '100% 50%, 5px 100%'
</del><ins>+PASS style.backgroundPosition is 'right center, 5px bottom'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '100% 50%, 5px 100%'
</span><del>-PASS style.backgroundPosition is '0% 0%, 100% 100%'
</del><ins>+PASS style.backgroundPosition is 'left top, right bottom'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '0% 0%, 100% 100%'
</span><span class="cx"> background-position with CSS3 comma separator, with invalid one or two values, no change expected
</span><del>-PASS style.backgroundPosition is '0% 0%, 100% 100%'
</del><ins>+PASS style.backgroundPosition is 'left top, right bottom'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '0% 0%, 100% 100%'
</span><del>-PASS style.backgroundPosition is '0% 0%, 100% 100%'
</del><ins>+PASS style.backgroundPosition is 'left top, right bottom'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '0% 0%, 100% 100%'
</span><del>-PASS style.backgroundPosition is '0% 0%, 100% 100%'
</del><ins>+PASS style.backgroundPosition is 'left top, right bottom'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is '0% 0%, 100% 100%'
</span><span class="cx"> background-position with CSS3 four values
</span><span class="cx"> PASS style.backgroundPosition is 'left 10px top 15px'
</span><span class="lines">@@ -106,124 +106,124 @@
</span><span class="cx"> PASS computedStyle.backgroundPosition is 'left 10% top 30%'
</span><span class="cx"> PASS style.backgroundPosition is 'left 30% top 10%'
</span><span class="cx"> PASS computedStyle.backgroundPosition is 'left 30% top 10%'
</span><del>-PASS style.backgroundPosition is 'right 0% top 15px'
-PASS computedStyle.backgroundPosition is 'right 0% top 15px'
-PASS style.backgroundPosition is 'left 10px top 50%'
-PASS computedStyle.backgroundPosition is 'left 10px top 50%'
-PASS style.backgroundPosition is 'left 50% top 20px'
-PASS computedStyle.backgroundPosition is 'left 50% top 20px'
-PASS style.backgroundPosition is 'left 50% top 20px'
-PASS computedStyle.backgroundPosition is 'left 50% top 20px'
-PASS style.backgroundPosition is 'left 30px top 50%'
-PASS computedStyle.backgroundPosition is 'left 30px top 50%'
</del><ins>+PASS style.backgroundPosition is 'right top 15px'
+PASS computedStyle.backgroundPosition is '100% top 15px'
+PASS style.backgroundPosition is 'left 10px center'
+PASS computedStyle.backgroundPosition is 'left 10px 50%'
+PASS style.backgroundPosition is 'center top 20px'
+PASS computedStyle.backgroundPosition is '50% top 20px'
+PASS style.backgroundPosition is 'center top 20px'
+PASS computedStyle.backgroundPosition is '50% top 20px'
+PASS style.backgroundPosition is 'left 30px center'
+PASS computedStyle.backgroundPosition is 'left 30px 50%'
</ins><span class="cx"> PASS style.backgroundPosition is ''
</span><span class="cx"> PASS computedStyle.backgroundPosition is '0% 0%'
</span><del>-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
</del><ins>+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
</ins><span class="cx"> background-position with CSS3 invalid four values, no change expected
</span><del>-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
-PASS style.backgroundPosition is 'left 20% top 0%'
-PASS computedStyle.backgroundPosition is 'left 20% top 0%'
</del><ins>+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
+PASS style.backgroundPosition is 'left 20% top'
+PASS computedStyle.backgroundPosition is 'left 20% 0%'
</ins><span class="cx"> background-position with CSS3 four values and comma
</span><del>-PASS style.backgroundPosition is '50% 50%, left 0% bottom 20px'
-PASS computedStyle.backgroundPosition is '50% 50%, left 0% bottom 20px'
-PASS style.backgroundPosition is 'right 20px bottom 20px, 0% 50%'
</del><ins>+PASS style.backgroundPosition is 'center center, left bottom 20px'
+PASS computedStyle.backgroundPosition is '50% 50%, 0% bottom 20px'
+PASS style.backgroundPosition is 'right 20px bottom 20px, left center'
</ins><span class="cx"> PASS computedStyle.backgroundPosition is 'right 20px bottom 20px, 0% 50%'
</span><span class="cx"> PASS style.backgroundPosition is 'left 10px top 15px, right 20% bottom 20px'
</span><span class="cx"> PASS computedStyle.backgroundPosition is 'left 10px top 15px, right 20% bottom 20px'
</span><del>-PASS style.backgroundPosition is 'left 10% top 0%, right 0% top 0px'
-PASS computedStyle.backgroundPosition is 'left 10% top 0%, right 0% top 0px'
-PASS style.backgroundPosition is 'right 0% top 15px, right 20px bottom 0%'
-PASS computedStyle.backgroundPosition is 'right 0% top 15px, right 20px bottom 0%'
</del><ins>+PASS style.backgroundPosition is 'left 10% top, right top 0px'
+PASS computedStyle.backgroundPosition is 'left 10% 0%, 100% top 0px'
+PASS style.backgroundPosition is 'right top 15px, right 20px bottom'
+PASS computedStyle.backgroundPosition is '100% top 15px, right 20px 100%'
</ins><span class="cx"> background-position with invalid CSS3 four values and comma, no change expected
</span><del>-PASS style.backgroundPosition is 'right 0% top 15px, right 20px bottom 0%'
-PASS computedStyle.backgroundPosition is 'right 0% top 15px, right 20px bottom 0%'
-PASS style.backgroundPosition is 'right 0% top 15px, right 20px bottom 0%'
-PASS computedStyle.backgroundPosition is 'right 0% top 15px, right 20px bottom 0%'
-PASS style.backgroundPosition is 'right 0% top 15px, right 20px bottom 0%'
-PASS computedStyle.backgroundPosition is 'right 0% top 15px, right 20px bottom 0%'
</del><ins>+PASS style.backgroundPosition is 'right top 15px, right 20px bottom'
+PASS computedStyle.backgroundPosition is '100% top 15px, right 20px 100%'
+PASS style.backgroundPosition is 'right top 15px, right 20px bottom'
+PASS computedStyle.backgroundPosition is '100% top 15px, right 20px 100%'
+PASS style.backgroundPosition is 'right top 15px, right 20px bottom'
+PASS computedStyle.backgroundPosition is '100% top 15px, right 20px 100%'
</ins><span class="cx"> background-position inside the background shorthand
</span><span class="cx"> PASS style.background is 'left 30% top 10% / 10em round fixed border-box border-box gray'
</span><span class="cx"> PASS computedStyle.background is 'rgb(128, 128, 128) none round fixed left 30% top 10% / 160px border-box border-box'
</span><del>-PASS style.background is 'right 0% top 15px / 10em round fixed border-box border-box gray'
-PASS computedStyle.background is 'rgb(128, 128, 128) none round fixed right 0% top 15px / 160px border-box border-box'
-PASS style.background is 'left 10px top 50% / 10em round fixed border-box border-box gray'
-PASS computedStyle.background is 'rgb(128, 128, 128) none round fixed left 10px top 50% / 160px border-box border-box'
-PASS style.background is 'left 10px top 50% round fixed border-box border-box'
-PASS computedStyle.background is 'rgba(0, 0, 0, 0) none round fixed left 10px top 50% / auto border-box border-box'
-PASS style.background is 'left 50% top 20px round fixed border-box border-box'
-PASS computedStyle.background is 'rgba(0, 0, 0, 0) none round fixed left 50% top 20px / auto border-box border-box'
-PASS style.background is 'left 50% top 20px round fixed border-box border-box'
-PASS computedStyle.background is 'rgba(0, 0, 0, 0) none round fixed left 50% top 20px / auto border-box border-box'
-PASS style.background is '50% 0% round fixed border-box border-box'
</del><ins>+PASS style.background is 'right top 15px / 10em round fixed border-box border-box gray'
+PASS computedStyle.background is 'rgb(128, 128, 128) none round fixed 100% top 15px / 160px border-box border-box'
+PASS style.background is 'left 10px center / 10em round fixed border-box border-box gray'
+PASS computedStyle.background is 'rgb(128, 128, 128) none round fixed left 10px 50% / 160px border-box border-box'
+PASS style.background is 'left 10px center round fixed border-box border-box'
+PASS computedStyle.background is 'rgba(0, 0, 0, 0) none round fixed left 10px 50% / auto border-box border-box'
+PASS style.background is 'center top 20px round fixed border-box border-box'
+PASS computedStyle.background is 'rgba(0, 0, 0, 0) none round fixed 50% top 20px / auto border-box border-box'
+PASS style.background is 'center top 20px round fixed border-box border-box'
+PASS computedStyle.background is 'rgba(0, 0, 0, 0) none round fixed 50% top 20px / auto border-box border-box'
+PASS style.background is 'center top round fixed border-box border-box'
</ins><span class="cx"> PASS computedStyle.background is 'rgba(0, 0, 0, 0) none round fixed 50% 0% / auto border-box border-box'
</span><span class="cx"> PASS style.background is '50px 60px / 50px round fixed border-box border-box'
</span><span class="cx"> PASS computedStyle.background is 'rgba(0, 0, 0, 0) none round fixed 50px 60px / 50px border-box border-box'
</span><del>-PASS style.background is '50px 50% / 50px round fixed border-box border-box'
</del><ins>+PASS style.background is '50px center / 50px round fixed border-box border-box'
</ins><span class="cx"> PASS computedStyle.background is 'rgba(0, 0, 0, 0) none round fixed 50px 50% / 50px border-box border-box'
</span><del>-PASS style.background is 'left 0% top 60px / 50px round fixed border-box border-box'
-PASS computedStyle.background is 'rgba(0, 0, 0, 0) none round fixed left 0% top 60px / 50px border-box border-box'
</del><ins>+PASS style.background is 'left top 60px / 50px round fixed border-box border-box'
+PASS computedStyle.background is 'rgba(0, 0, 0, 0) none round fixed 0% top 60px / 50px border-box border-box'
</ins><span class="cx"> PASS style.background is 'left -20px top 60px / 50px round fixed border-box border-box'
</span><span class="cx"> PASS computedStyle.background is 'rgba(0, 0, 0, 0) none round fixed left -20px top 60px / 50px border-box border-box'
</span><del>-PASS style.background is 'left 20px top 0% / 50px round fixed border-box border-box'
-PASS computedStyle.background is 'rgba(0, 0, 0, 0) none round fixed left 20px top 0% / 50px border-box border-box'
-PASS style.background is 'left 20px top 0% / 50px round fixed border-box border-box'
-PASS computedStyle.background is 'rgba(0, 0, 0, 0) none round fixed left 20px top 0% / 50px border-box border-box'
</del><ins>+PASS style.background is 'left 20px top / 50px round fixed border-box border-box'
+PASS computedStyle.background is 'rgba(0, 0, 0, 0) none round fixed left 20px 0% / 50px border-box border-box'
+PASS style.background is 'left 20px top / 50px round fixed border-box border-box'
+PASS computedStyle.background is 'rgba(0, 0, 0, 0) none round fixed left 20px 0% / 50px border-box border-box'
</ins><span class="cx"> PASS style.background is 'left 20px top 40px / 50px round fixed border-box border-box'
</span><span class="cx"> PASS computedStyle.background is 'rgba(0, 0, 0, 0) none round fixed left 20px top 40px / 50px border-box border-box'
</span><span class="cx"> PASS style.background is 'left 20px top 40px round fixed border-box border-box'
</span></span></pre></div>
<a id="trunkLayoutTestsfastbackgroundsbackgroundpositionparsing2html"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/backgrounds/background-position-parsing-2.html (209558 => 209559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/backgrounds/background-position-parsing-2.html        2016-12-08 20:52:35 UTC (rev 209558)
+++ trunk/LayoutTests/fast/backgrounds/background-position-parsing-2.html        2016-12-08 20:57:59 UTC (rev 209559)
</span><span class="lines">@@ -25,60 +25,60 @@
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "70%";
</span><span class="cx"> // Second value is assuming to be 'center'
</span><del>-shouldBe("style.backgroundPosition", "'70% 50%'");
</del><ins>+shouldBe("style.backgroundPosition", "'70% center'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'70% 50%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "84px";
</span><del>-shouldBe("style.backgroundPosition", "'84px 50%'");
</del><ins>+shouldBe("style.backgroundPosition", "'84px center'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'84px 50%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "left";
</span><del>-shouldBe("style.backgroundPosition", "'0% 50%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left center'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'0% 50%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "right";
</span><del>-shouldBe("style.backgroundPosition", "'100% 50%'");
</del><ins>+shouldBe("style.backgroundPosition", "'right center'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'100% 50%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "bottom";
</span><del>-shouldBe("style.backgroundPosition", "'50% 100%'");
</del><ins>+shouldBe("style.backgroundPosition", "'center bottom'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'50% 100%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "top";
</span><del>-shouldBe("style.backgroundPosition", "'50% 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'center top'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'50% 0%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "center";
</span><del>-shouldBe("style.backgroundPosition", "'50% 50%'");
</del><ins>+shouldBe("style.backgroundPosition", "'center center'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'50% 50%'");
</span><span class="cx">
</span><span class="cx"> debug("background-position with two values");
</span><span class="cx"> style.backgroundPosition = "left bottom";
</span><del>-shouldBe("style.backgroundPosition", "'0% 100%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left bottom'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'0% 100%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "bottom left";
</span><del>-shouldBe("style.backgroundPosition", "'0% 100%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left bottom'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'0% 100%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "100% bottom";
</span><del>-shouldBe("style.backgroundPosition", "'100% 100%'");
</del><ins>+shouldBe("style.backgroundPosition", "'100% bottom'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'100% 100%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "100% top";
</span><del>-shouldBe("style.backgroundPosition", "'100% 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'100% top'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'100% 0%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "54px bottom";
</span><del>-shouldBe("style.backgroundPosition", "'54px 100%'");
</del><ins>+shouldBe("style.backgroundPosition", "'54px bottom'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'54px 100%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "center center";
</span><del>-shouldBe("style.backgroundPosition", "'50% 50%'");
</del><ins>+shouldBe("style.backgroundPosition", "'center center'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'50% 50%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "5% bottom";
</span><del>-shouldBe("style.backgroundPosition", "'5% 100%'");
</del><ins>+shouldBe("style.backgroundPosition", "'5% bottom'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'5% 100%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "30pt -20px";
</span><span class="lines">@@ -86,7 +86,7 @@
</span><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'40px -20px'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "right center";
</span><del>-shouldBe("style.backgroundPosition", "'100% 50%'");
</del><ins>+shouldBe("style.backgroundPosition", "'right center'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'100% 50%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "100% 0";
</span><span class="lines">@@ -94,26 +94,26 @@
</span><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'100% 0px'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "center right";
</span><del>-shouldBe("style.backgroundPosition", "'100% 50%'");
</del><ins>+shouldBe("style.backgroundPosition", "'right center'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'100% 50%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "center 50%";
</span><del>-shouldBe("style.backgroundPosition", "'50% 50%'");
</del><ins>+shouldBe("style.backgroundPosition", "'center 50%'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'50% 50%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "center left";
</span><del>-shouldBe("style.backgroundPosition", "'0% 50%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left center'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'0% 50%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "-20% center";
</span><del>-shouldBe("style.backgroundPosition", "'-20% 50%'");
</del><ins>+shouldBe("style.backgroundPosition", "'-20% center'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'-20% 50%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "top right";
</span><del>-shouldBe("style.backgroundPosition", "'100% 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'right top'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'100% 0%'");
</span><span class="cx">
</span><del>-style.backgroundPosition = "50% center";
</del><ins>+style.backgroundPosition = "50% 50%";
</ins><span class="cx"> shouldBe("style.backgroundPosition", "'50% 50%'");
</span><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'50% 50%'");
</span><span class="cx">
</span><span class="lines">@@ -183,32 +183,32 @@
</span><span class="cx"> style.backgroundRepeat = "no-repeat";
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "50%, 100%";
</span><del>-shouldBe("style.backgroundPosition", "'50% 50%, 100% 50%'");
</del><ins>+shouldBe("style.backgroundPosition", "'50% center, 100% center'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'50% 50%, 100% 50%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "top, bottom";
</span><del>-shouldBe("style.backgroundPosition", "'50% 0%, 50% 100%'");
</del><ins>+shouldBe("style.backgroundPosition", "'center top, center bottom'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'50% 0%, 50% 100%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "right center, 5px bottom";
</span><del>-shouldBe("style.backgroundPosition", "'100% 50%, 5px 100%'");
</del><ins>+shouldBe("style.backgroundPosition", "'right center, 5px bottom'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'100% 50%, 5px 100%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "top left, bottom right";
</span><del>-shouldBe("style.backgroundPosition", "'0% 0%, 100% 100%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left top, right bottom'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'0% 0%, 100% 100%'");
</span><span class="cx">
</span><span class="cx"> debug("background-position with CSS3 comma separator, with invalid one or two values, no change expected");
</span><span class="cx"> style.backgroundPosition = "0 center, right right";
</span><del>-shouldBe("style.backgroundPosition", "'0% 0%, 100% 100%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left top, right bottom'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'0% 0%, 100% 100%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "center right, right right";
</span><del>-shouldBe("style.backgroundPosition", "'0% 0%, 100% 100%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left top, right bottom'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'0% 0%, 100% 100%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "center 20px, solid 20px";
</span><del>-shouldBe("style.backgroundPosition", "'0% 0%, 100% 100%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left top, right bottom'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'0% 0%, 100% 100%'");
</span><span class="cx">
</span><span class="cx"> debug("background-position with CSS3 four values");
</span><span class="lines">@@ -226,24 +226,24 @@
</span><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'left 30% top 10%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "right top 15px";
</span><del>-shouldBe("style.backgroundPosition", "'right 0% top 15px'");
-shouldBe("computedStyle.backgroundPosition", "'right 0% top 15px'");
</del><ins>+shouldBe("style.backgroundPosition", "'right top 15px'");
+shouldBe("computedStyle.backgroundPosition", "'100% top 15px'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "left 10px center";
</span><del>-shouldBe("style.backgroundPosition", "'left 10px top 50%'");
-shouldBe("computedStyle.backgroundPosition", "'left 10px top 50%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 10px center'");
+shouldBe("computedStyle.backgroundPosition", "'left 10px 50%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "center top 20px";
</span><del>-shouldBe("style.backgroundPosition", "'left 50% top 20px'");
-shouldBe("computedStyle.backgroundPosition", "'left 50% top 20px'");
</del><ins>+shouldBe("style.backgroundPosition", "'center top 20px'");
+shouldBe("computedStyle.backgroundPosition", "'50% top 20px'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "top 20px center";
</span><del>-shouldBe("style.backgroundPosition", "'left 50% top 20px'");
-shouldBe("computedStyle.backgroundPosition", "'left 50% top 20px'");
</del><ins>+shouldBe("style.backgroundPosition", "'center top 20px'");
+shouldBe("computedStyle.backgroundPosition", "'50% top 20px'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "center left 30px";
</span><del>-shouldBe("style.backgroundPosition", "'left 30px top 50%'");
-shouldBe("computedStyle.backgroundPosition", "'left 30px top 50%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 30px center'");
+shouldBe("computedStyle.backgroundPosition", "'left 30px 50%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "";
</span><span class="cx"> shouldBe("style.backgroundPosition", "''");
</span><span class="lines">@@ -250,135 +250,135 @@
</span><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'0% 0%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "left 20% top";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> debug("background-position with CSS3 invalid four values, no change expected");
</span><span class="cx"> style.backgroundPosition = "left center top";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "0px right top";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "left center top center";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "left center top 20%";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "center bottom top 20%";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "right bottom top";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "right bottom solid";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "20px bottom top";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "20px bottom hidden";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "solid dotted bottom top";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "top top top top";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "left 0px right 20%";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "left 30% top 20% center";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "20px 30% bottom";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "top 0px bottom";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "left 0px right";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "top 0px bottom 30px top";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "left 10px center 15px";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "left 10px top center";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "center right top 20px";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "center 10px center 10px";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "top center center";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "center 10px center";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "center center 10px";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "center 0px left 20%";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "left center top";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "center center center";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "top left 50% 50%";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "center center center center";
</span><del>-shouldBe("style.backgroundPosition", "'left 20% top 0%'");
-shouldBe("computedStyle.backgroundPosition", "'left 20% top 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 20% top'");
+shouldBe("computedStyle.backgroundPosition", "'left 20% 0%'");
</ins><span class="cx">
</span><span class="cx"> debug("background-position with CSS3 four values and comma");
</span><span class="cx"> style.backgroundImage = "url(resources/diamond.png), url(resources/ring.png)";
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "center, left bottom 20px";
</span><del>-shouldBe("style.backgroundPosition", "'50% 50%, left 0% bottom 20px'");
-shouldBe("computedStyle.backgroundPosition", "'50% 50%, left 0% bottom 20px'");
</del><ins>+shouldBe("style.backgroundPosition", "'center center, left bottom 20px'");
+shouldBe("computedStyle.backgroundPosition", "'50% 50%, 0% bottom 20px'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "right 20px bottom 20px, center left";
</span><del>-shouldBe("style.backgroundPosition", "'right 20px bottom 20px, 0% 50%'");
</del><ins>+shouldBe("style.backgroundPosition", "'right 20px bottom 20px, left center'");
</ins><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'right 20px bottom 20px, 0% 50%'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "left 10px top 15px, right 20% bottom 20px";
</span><span class="lines">@@ -386,25 +386,25 @@
</span><span class="cx"> shouldBe("computedStyle.backgroundPosition", "'left 10px top 15px, right 20% bottom 20px'");
</span><span class="cx">
</span><span class="cx"> style.backgroundPosition = "left 10% top, top 0px right";
</span><del>-shouldBe("style.backgroundPosition", "'left 10% top 0%, right 0% top 0px'");
-shouldBe("computedStyle.backgroundPosition", "'left 10% top 0%, right 0% top 0px'");
</del><ins>+shouldBe("style.backgroundPosition", "'left 10% top, right top 0px'");
+shouldBe("computedStyle.backgroundPosition", "'left 10% 0%, 100% top 0px'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "right top 15px, bottom right 20px";
</span><del>-shouldBe("style.backgroundPosition", "'right 0% top 15px, right 20px bottom 0%'");
-shouldBe("computedStyle.backgroundPosition", "'right 0% top 15px, right 20px bottom 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'right top 15px, right 20px bottom'");
+shouldBe("computedStyle.backgroundPosition", "'100% top 15px, right 20px 100%'");
</ins><span class="cx">
</span><span class="cx"> debug("background-position with invalid CSS3 four values and comma, no change expected");
</span><span class="cx"> style.backgroundPosition = "right top 15px, left right 20px";
</span><del>-shouldBe("style.backgroundPosition", "'right 0% top 15px, right 20px bottom 0%'");
-shouldBe("computedStyle.backgroundPosition", "'right 0% top 15px, right 20px bottom 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'right top 15px, right 20px bottom'");
+shouldBe("computedStyle.backgroundPosition", "'100% top 15px, right 20px 100%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "right left 15px, left bottom 20px";
</span><del>-shouldBe("style.backgroundPosition", "'right 0% top 15px, right 20px bottom 0%'");
-shouldBe("computedStyle.backgroundPosition", "'right 0% top 15px, right 20px bottom 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'right top 15px, right 20px bottom'");
+shouldBe("computedStyle.backgroundPosition", "'100% top 15px, right 20px 100%'");
</ins><span class="cx">
</span><span class="cx"> style.backgroundPosition = "solid, left bottom 20px";
</span><del>-shouldBe("style.backgroundPosition", "'right 0% top 15px, right 20px bottom 0%'");
-shouldBe("computedStyle.backgroundPosition", "'right 0% top 15px, right 20px bottom 0%'");
</del><ins>+shouldBe("style.backgroundPosition", "'right top 15px, right 20px bottom'");
+shouldBe("computedStyle.backgroundPosition", "'100% top 15px, right 20px 100%'");
</ins><span class="cx">
</span><span class="cx"> debug("background-position inside the background shorthand");
</span><span class="cx"> style.background = "top 10% left 30% / 10em gray round fixed border-box";
</span><span class="lines">@@ -412,27 +412,27 @@
</span><span class="cx"> shouldBe("computedStyle.background", "'rgb(128, 128, 128) none round fixed left 30% top 10% / 160px border-box border-box'");
</span><span class="cx">
</span><span class="cx"> style.background = "right top 15px / 10em gray round fixed border-box";
</span><del>-shouldBe("style.background", "'right 0% top 15px / 10em round fixed border-box border-box gray'");
-shouldBe("computedStyle.background", "'rgb(128, 128, 128) none round fixed right 0% top 15px / 160px border-box border-box'");
</del><ins>+shouldBe("style.background", "'right top 15px / 10em round fixed border-box border-box gray'");
+shouldBe("computedStyle.background", "'rgb(128, 128, 128) none round fixed 100% top 15px / 160px border-box border-box'");
</ins><span class="cx">
</span><span class="cx"> style.background = "left 10px center / 10em gray round fixed border-box";
</span><del>-shouldBe("style.background", "'left 10px top 50% / 10em round fixed border-box border-box gray'");
-shouldBe("computedStyle.background", "'rgb(128, 128, 128) none round fixed left 10px top 50% / 160px border-box border-box'");
</del><ins>+shouldBe("style.background", "'left 10px center / 10em round fixed border-box border-box gray'");
+shouldBe("computedStyle.background", "'rgb(128, 128, 128) none round fixed left 10px 50% / 160px border-box border-box'");
</ins><span class="cx">
</span><span class="cx"> style.background = "left 10px center round fixed border-box";
</span><del>-shouldBe("style.background", "'left 10px top 50% round fixed border-box border-box'");
-shouldBe("computedStyle.background", "'rgba(0, 0, 0, 0) none round fixed left 10px top 50% / auto border-box border-box'");
</del><ins>+shouldBe("style.background", "'left 10px center round fixed border-box border-box'");
+shouldBe("computedStyle.background", "'rgba(0, 0, 0, 0) none round fixed left 10px 50% / auto border-box border-box'");
</ins><span class="cx">
</span><span class="cx"> style.background = "center top 20px round fixed border-box";
</span><del>-shouldBe("style.background", "'left 50% top 20px round fixed border-box border-box'");
-shouldBe("computedStyle.background", "'rgba(0, 0, 0, 0) none round fixed left 50% top 20px / auto border-box border-box'");
</del><ins>+shouldBe("style.background", "'center top 20px round fixed border-box border-box'");
+shouldBe("computedStyle.background", "'rgba(0, 0, 0, 0) none round fixed 50% top 20px / auto border-box border-box'");
</ins><span class="cx">
</span><span class="cx"> style.background = "top 20px center round fixed border-box";
</span><del>-shouldBe("style.background", "'left 50% top 20px round fixed border-box border-box'");
-shouldBe("computedStyle.background", "'rgba(0, 0, 0, 0) none round fixed left 50% top 20px / auto border-box border-box'");
</del><ins>+shouldBe("style.background", "'center top 20px round fixed border-box border-box'");
+shouldBe("computedStyle.background", "'rgba(0, 0, 0, 0) none round fixed 50% top 20px / auto border-box border-box'");
</ins><span class="cx">
</span><span class="cx"> style.background = "top center round fixed border-box";
</span><del>-shouldBe("style.background", "'50% 0% round fixed border-box border-box'");
</del><ins>+shouldBe("style.background", "'center top round fixed border-box border-box'");
</ins><span class="cx"> shouldBe("computedStyle.background", "'rgba(0, 0, 0, 0) none round fixed 50% 0% / auto border-box border-box'");
</span><span class="cx">
</span><span class="cx"> style.background = "50px 60px / 50px round fixed border-box";
</span><span class="lines">@@ -440,12 +440,12 @@
</span><span class="cx"> shouldBe("computedStyle.background", "'rgba(0, 0, 0, 0) none round fixed 50px 60px / 50px border-box border-box'");
</span><span class="cx">
</span><span class="cx"> style.background = "50px / 50px round fixed border-box";
</span><del>-shouldBe("style.background", "'50px 50% / 50px round fixed border-box border-box'");
</del><ins>+shouldBe("style.background", "'50px center / 50px round fixed border-box border-box'");
</ins><span class="cx"> shouldBe("computedStyle.background", "'rgba(0, 0, 0, 0) none round fixed 50px 50% / 50px border-box border-box'");
</span><span class="cx">
</span><span class="cx"> style.background = "left top 60px / 50px round fixed border-box";
</span><del>-shouldBe("style.background", "'left 0% top 60px / 50px round fixed border-box border-box'");
-shouldBe("computedStyle.background", "'rgba(0, 0, 0, 0) none round fixed left 0% top 60px / 50px border-box border-box'");
</del><ins>+shouldBe("style.background", "'left top 60px / 50px round fixed border-box border-box'");
+shouldBe("computedStyle.background", "'rgba(0, 0, 0, 0) none round fixed 0% top 60px / 50px border-box border-box'");
</ins><span class="cx">
</span><span class="cx"> style.background = "left -20px top 60px / 50px round fixed border-box";
</span><span class="cx"> shouldBe("style.background", "'left -20px top 60px / 50px round fixed border-box border-box'");
</span><span class="lines">@@ -452,12 +452,12 @@
</span><span class="cx"> shouldBe("computedStyle.background", "'rgba(0, 0, 0, 0) none round fixed left -20px top 60px / 50px border-box border-box'");
</span><span class="cx">
</span><span class="cx"> style.background = "border-box left 20px top / 50px round fixed";
</span><del>-shouldBe("style.background", "'left 20px top 0% / 50px round fixed border-box border-box'");
-shouldBe("computedStyle.background", "'rgba(0, 0, 0, 0) none round fixed left 20px top 0% / 50px border-box border-box'");
</del><ins>+shouldBe("style.background", "'left 20px top / 50px round fixed border-box border-box'");
+shouldBe("computedStyle.background", "'rgba(0, 0, 0, 0) none round fixed left 20px 0% / 50px border-box border-box'");
</ins><span class="cx">
</span><span class="cx"> style.background = "border-box round fixed left 20px top / 50px";
</span><del>-shouldBe("style.background", "'left 20px top 0% / 50px round fixed border-box border-box'");
-shouldBe("computedStyle.background", "'rgba(0, 0, 0, 0) none round fixed left 20px top 0% / 50px border-box border-box'");
</del><ins>+shouldBe("style.background", "'left 20px top / 50px round fixed border-box border-box'");
+shouldBe("computedStyle.background", "'rgba(0, 0, 0, 0) none round fixed left 20px 0% / 50px border-box border-box'");
</ins><span class="cx">
</span><span class="cx"> style.background = "border-box round fixed left 20px top 40px / 50px";
</span><span class="cx"> shouldBe("style.background", "'left 20px top 40px / 50px round fixed border-box border-box'");
</span></span></pre></div>
<a id="trunkLayoutTestsfastbackgroundsbackgroundshorthandaftersetbackgroundSizeexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/backgrounds/background-shorthand-after-set-backgroundSize-expected.txt (209558 => 209559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/backgrounds/background-shorthand-after-set-backgroundSize-expected.txt        2016-12-08 20:52:35 UTC (rev 209558)
+++ trunk/LayoutTests/fast/backgrounds/background-shorthand-after-set-backgroundSize-expected.txt        2016-12-08 20:57:59 UTC (rev 209559)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS e.style.background is 'url(dummy://test.png) 50% 50% / cover no-repeat border-box border-box red'
</del><ins>+PASS e.style.background is 'url(dummy://test.png) center center / cover no-repeat border-box border-box red'
</ins><span class="cx"> PASS e.style.backgroundSize is 'cover'
</span><span class="cx">
</span><span class="cx"> PASS successfullyParsed is true
</span></span></pre></div>
<a id="trunkLayoutTestsfastbackgroundsbackgroundshorthandaftersetbackgroundSizehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/backgrounds/background-shorthand-after-set-backgroundSize.html (209558 => 209559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/backgrounds/background-shorthand-after-set-backgroundSize.html        2016-12-08 20:52:35 UTC (rev 209558)
+++ trunk/LayoutTests/fast/backgrounds/background-shorthand-after-set-backgroundSize.html        2016-12-08 20:57:59 UTC (rev 209559)
</span><span class="lines">@@ -12,7 +12,7 @@
</span><span class="cx">
</span><span class="cx"> e.style.backgroundSize = "cover";
</span><span class="cx"> e.style.background = "center red url(dummy://test.png) no-repeat border-box";
</span><del>- shouldBe("e.style.background", "'url(dummy://test.png) 50% 50% / cover no-repeat border-box border-box red'")
</del><ins>+ shouldBe("e.style.background", "'url(dummy://test.png) center center / cover no-repeat border-box border-box red'")
</ins><span class="cx"> shouldBe("e.style.backgroundSize", "'cover'");
</span><span class="cx"> debug("")
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestsfastbackgroundsbackgroundshorthandwithbackgroundSizestyleexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/backgrounds/background-shorthand-with-backgroundSize-style-expected.txt (209558 => 209559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/backgrounds/background-shorthand-with-backgroundSize-style-expected.txt        2016-12-08 20:52:35 UTC (rev 209558)
+++ trunk/LayoutTests/fast/backgrounds/background-shorthand-with-backgroundSize-style-expected.txt        2016-12-08 20:57:59 UTC (rev 209559)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx">
</span><span class="cx">
</span><del>-PASS e.style.background is 'url(dummy://test.png) 50% 50% / cover no-repeat border-box border-box red'
</del><ins>+PASS e.style.background is 'url(dummy://test.png) center center / cover no-repeat border-box border-box red'
</ins><span class="cx"> PASS e.style.backgroundSize is 'cover'
</span><span class="cx"> PASS checkStyle() is true
</span><span class="cx"> PASS computedStyle.getPropertyValue("background") is 'rgb(255, 0, 0) url(dummy://test.png) no-repeat scroll 50% 50% / cover border-box border-box'
</span><span class="lines">@@ -10,7 +10,7 @@
</span><span class="cx"> PASS computedStyle.getPropertyValue("background-size") is 'cover'
</span><span class="cx"> PASS checkComputedStyleValue() is true
</span><span class="cx">
</span><del>-PASS e.style.background is 'url(dummy://test.png) 20px 50% / contain no-repeat padding-box padding-box red'
</del><ins>+PASS e.style.background is 'url(dummy://test.png) 20px center / contain no-repeat padding-box padding-box red'
</ins><span class="cx"> PASS e.style.backgroundSize is 'contain'
</span><span class="cx"> PASS checkStyle() is true
</span><span class="cx"> PASS computedStyle.getPropertyValue("background") is 'rgb(255, 0, 0) url(dummy://test.png) no-repeat scroll 20px 50% / contain padding-box padding-box'
</span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx"> PASS computedStyle.getPropertyValue("background-size") is '50% 75%'
</span><span class="cx"> PASS checkComputedStyleValue() is true
</span><span class="cx">
</span><del>-PASS e.style.background is 'url(dummy://test.png) 0% 0% / 100px 200px repeat border-box content-box red'
</del><ins>+PASS e.style.background is 'url(dummy://test.png) left top / 100px 200px repeat border-box content-box red'
</ins><span class="cx"> PASS e.style.backgroundSize is '100px 200px'
</span><span class="cx"> PASS checkStyle() is true
</span><span class="cx"> PASS computedStyle.getPropertyValue("background") is 'rgb(255, 0, 0) url(dummy://test.png) repeat scroll 0% 0% / 100px 200px border-box content-box'
</span><span class="lines">@@ -31,7 +31,7 @@
</span><span class="cx"> PASS computedStyle.getPropertyValue("background-size") is '100px 200px'
</span><span class="cx"> PASS checkComputedStyleValue() is true
</span><span class="cx">
</span><del>-PASS e.style.background is 'url(dummy://test.png) 50% 50% / auto repeat content-box padding-box red'
</del><ins>+PASS e.style.background is 'url(dummy://test.png) 50% center / auto repeat content-box padding-box red'
</ins><span class="cx"> PASS e.style.backgroundSize is 'auto'
</span><span class="cx"> PASS checkStyle() is true
</span><span class="cx"> PASS computedStyle.getPropertyValue("background") is 'rgb(255, 0, 0) url(dummy://test.png) repeat scroll 50% 50% / auto content-box padding-box'
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx"> PASS computedStyle.getPropertyValue("background-size") is '50%'
</span><span class="cx"> PASS checkComputedStyleValue() is true
</span><span class="cx">
</span><del>-PASS e.style.background is 'url(dummy://test.png) 0% 0% / 100px repeat scroll padding-box border-box red'
</del><ins>+PASS e.style.background is 'url(dummy://test.png) left top / 100px repeat scroll padding-box border-box red'
</ins><span class="cx"> PASS e.style.backgroundSize is '100px'
</span><span class="cx"> PASS checkStyle() is true
</span><span class="cx"> PASS computedStyle.getPropertyValue("background") is 'rgb(255, 0, 0) url(dummy://test.png) repeat scroll 0% 0% / 100px padding-box border-box'
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx"> PASS computedStyle.getPropertyValue("background-size") is '100px'
</span><span class="cx"> PASS checkComputedStyleValue() is true
</span><span class="cx">
</span><del>-PASS e.style.background is 'url(dummy://test.png) 50% 50% / auto repeat fixed content-box content-box red'
</del><ins>+PASS e.style.background is 'url(dummy://test.png) 50% center / auto repeat fixed content-box content-box red'
</ins><span class="cx"> PASS e.style.backgroundSize is 'auto'
</span><span class="cx"> PASS checkStyle() is true
</span><span class="cx"> PASS computedStyle.getPropertyValue("background") is 'rgb(255, 0, 0) url(dummy://test.png) repeat fixed 50% 50% / auto content-box content-box'
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx"> PASS computedStyle.getPropertyValue("background-size") is 'auto'
</span><span class="cx"> PASS checkComputedStyleValue() is true
</span><span class="cx">
</span><del>-PASS e.style.background is '0% 0% / 50%'
</del><ins>+PASS e.style.background is 'left top / 50%'
</ins><span class="cx"> PASS e.style.backgroundSize is '50%'
</span><span class="cx"> PASS checkStyle() is true
</span><span class="cx"> PASS computedStyle.getPropertyValue("background") is 'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / 50% padding-box border-box'
</span></span></pre></div>
<a id="trunkLayoutTestsfastbackgroundsbackgroundshorthandwithbackgroundSizestylehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/backgrounds/background-shorthand-with-backgroundSize-style.html (209558 => 209559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/backgrounds/background-shorthand-with-backgroundSize-style.html        2016-12-08 20:52:35 UTC (rev 209558)
+++ trunk/LayoutTests/fast/backgrounds/background-shorthand-with-backgroundSize-style.html        2016-12-08 20:57:59 UTC (rev 209559)
</span><span class="lines">@@ -23,7 +23,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> e.style.background = "center / cover red url(dummy://test.png) no-repeat border-box";
</span><del>-shouldBe("e.style.background", "'url(dummy://test.png) 50% 50% / cover no-repeat border-box border-box red'");
</del><ins>+shouldBe("e.style.background", "'url(dummy://test.png) center center / cover no-repeat border-box border-box red'");
</ins><span class="cx"> shouldBe("e.style.backgroundSize", "'cover'");
</span><span class="cx"> shouldBe("checkStyle()", "true");
</span><span class="cx"> shouldBe('computedStyle.getPropertyValue("background")', "'rgb(255, 0, 0) url(dummy://test.png) no-repeat scroll 50% 50% / cover border-box border-box'");
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx"> debug("")
</span><span class="cx">
</span><span class="cx"> e.style.background = "red 20px / contain url(dummy://test.png) no-repeat padding-box";
</span><del>-shouldBe("e.style.background", "'url(dummy://test.png) 20px 50% / contain no-repeat padding-box padding-box red'");
</del><ins>+shouldBe("e.style.background", "'url(dummy://test.png) 20px center / contain no-repeat padding-box padding-box red'");
</ins><span class="cx"> shouldBe("e.style.backgroundSize", "'contain'");
</span><span class="cx"> shouldBe("checkStyle()", "true");
</span><span class="cx"> shouldBe('computedStyle.getPropertyValue("background")', "'rgb(255, 0, 0) url(dummy://test.png) no-repeat scroll 20px 50% / contain padding-box padding-box'");
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx"> debug("")
</span><span class="cx">
</span><span class="cx"> e.style.background = "red url(dummy://test.png) repeat top left / 100px 200px border-box content-box";
</span><del>-shouldBe("e.style.background", "'url(dummy://test.png) 0% 0% / 100px 200px repeat border-box content-box red'");
</del><ins>+shouldBe("e.style.background", "'url(dummy://test.png) left top / 100px 200px repeat border-box content-box red'");
</ins><span class="cx"> shouldBe("e.style.backgroundSize", "'100px 200px'");
</span><span class="cx"> shouldBe("checkStyle()", "true");
</span><span class="cx"> shouldBe('computedStyle.getPropertyValue("background")', "'rgb(255, 0, 0) url(dummy://test.png) repeat scroll 0% 0% / 100px 200px border-box content-box'");
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx"> debug("")
</span><span class="cx">
</span><span class="cx"> e.style.background = "red url(dummy://test.png) repeat 50% / auto auto content-box padding-box";
</span><del>-shouldBe("e.style.background", "'url(dummy://test.png) 50% 50% / auto repeat content-box padding-box red'");
</del><ins>+shouldBe("e.style.background", "'url(dummy://test.png) 50% center / auto repeat content-box padding-box red'");
</ins><span class="cx"> shouldBe("e.style.backgroundSize", "'auto'");
</span><span class="cx"> shouldBe("checkStyle()", "true");
</span><span class="cx"> shouldBe('computedStyle.getPropertyValue("background")', "'rgb(255, 0, 0) url(dummy://test.png) repeat scroll 50% 50% / auto content-box padding-box'");
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx"> debug("")
</span><span class="cx">
</span><span class="cx"> e.style.background = "red repeat scroll padding-box border-box top left / 100px url(dummy://test.png)";
</span><del>-shouldBe("e.style.background", "'url(dummy://test.png) 0% 0% / 100px repeat scroll padding-box border-box red'");
</del><ins>+shouldBe("e.style.background", "'url(dummy://test.png) left top / 100px repeat scroll padding-box border-box red'");
</ins><span class="cx"> shouldBe("e.style.backgroundSize", "'100px'");
</span><span class="cx"> shouldBe("checkStyle()", "true");
</span><span class="cx"> shouldBe('computedStyle.getPropertyValue("background")', "'rgb(255, 0, 0) url(dummy://test.png) repeat scroll 0% 0% / 100px padding-box border-box'");
</span><span class="lines">@@ -86,7 +86,7 @@
</span><span class="cx"> debug("")
</span><span class="cx">
</span><span class="cx"> e.style.background = "50% / auto fixed url(dummy://test.png) repeat content-box red";
</span><del>-shouldBe("e.style.background", "'url(dummy://test.png) 50% 50% / auto repeat fixed content-box content-box red'");
</del><ins>+shouldBe("e.style.background", "'url(dummy://test.png) 50% center / auto repeat fixed content-box content-box red'");
</ins><span class="cx"> shouldBe("e.style.backgroundSize", "'auto'");
</span><span class="cx"> shouldBe("checkStyle()", "true");
</span><span class="cx"> shouldBe('computedStyle.getPropertyValue("background")', "'rgb(255, 0, 0) url(dummy://test.png) repeat fixed 50% 50% / auto content-box content-box'");
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx"> debug("")
</span><span class="cx">
</span><span class="cx"> e.style.background = "top left / 50%";
</span><del>-shouldBe("e.style.background", "'0% 0% / 50%'");
</del><ins>+shouldBe("e.style.background", "'left top / 50%'");
</ins><span class="cx"> shouldBe("e.style.backgroundSize", "'50%'");
</span><span class="cx"> shouldBe("checkStyle()", "true");
</span><span class="cx"> shouldBe('computedStyle.getPropertyValue("background")', "'rgba(0, 0, 0, 0) none repeat scroll 0% 0% / 50% padding-box border-box'");
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (209558 => 209559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-12-08 20:52:35 UTC (rev 209558)
+++ trunk/Source/WebCore/ChangeLog        2016-12-08 20:57:59 UTC (rev 209559)
</span><span class="lines">@@ -1,3 +1,32 @@
</span><ins>+2016-12-08 Dave Hyatt <hyatt@apple.com>
+
+ [CSS Parser] Unskip background parsing tests
+ https://bugs.webkit.org/show_bug.cgi?id=165619
+
+ Reviewed by Zalan Bujtas.
+
+ Change background-position so that the origin being set is tracked
+ on a per-x/y basis instead of as a single boolean. The single boolean
+ caused lousy computed style dumping, since we would switch into verbose
+ mode for both x and y, even if only one of them had a pair set for it.
+
+ * css/CSSComputedStyleDeclaration.cpp:
+ (WebCore::createPositionListForLayer):
+ * css/StyleBuilderConverter.h:
+ (WebCore::StyleBuilderConverter::convertPositionComponent):
+ * rendering/style/FillLayer.cpp:
+ (WebCore::FillLayer::FillLayer):
+ (WebCore::FillLayer::operator=):
+ (WebCore::FillLayer::fillUnsetProperties):
+ * rendering/style/FillLayer.h:
+ (WebCore::FillLayer::isBackgroundXOriginSet):
+ (WebCore::FillLayer::isBackgroundYOriginSet):
+ (WebCore::FillLayer::setBackgroundXOrigin):
+ (WebCore::FillLayer::setBackgroundYOrigin):
+ (WebCore::FillLayer::clearXPosition):
+ (WebCore::FillLayer::clearYPosition):
+ (WebCore::FillLayer::isBackgroundOriginSet): Deleted.
+
</ins><span class="cx"> 2016-12-08 Jeremy Jones <jeremyj@apple.com>
</span><span class="cx">
</span><span class="cx"> pointer lock should exit when a js alert is shown
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSComputedStyleDeclarationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (209558 => 209559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2016-12-08 20:52:35 UTC (rev 209558)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2016-12-08 20:57:59 UTC (rev 209559)
</span><span class="lines">@@ -677,12 +677,12 @@
</span><span class="cx"> static Ref<CSSValueList> createPositionListForLayer(CSSPropertyID propertyID, const FillLayer* layer, const RenderStyle& style)
</span><span class="cx"> {
</span><span class="cx"> auto positionList = CSSValueList::createSpaceSeparated();
</span><del>- if (layer->isBackgroundOriginSet()) {
</del><ins>+ if (layer->isBackgroundXOriginSet()) {
</ins><span class="cx"> ASSERT_UNUSED(propertyID, propertyID == CSSPropertyBackgroundPosition || propertyID == CSSPropertyWebkitMaskPosition);
</span><span class="cx"> positionList.get().append(CSSValuePool::singleton().createValue(layer->backgroundXOrigin()));
</span><span class="cx"> }
</span><span class="cx"> positionList.get().append(zoomAdjustedPixelValueForLength(layer->xPosition(), style));
</span><del>- if (layer->isBackgroundOriginSet()) {
</del><ins>+ if (layer->isBackgroundYOriginSet()) {
</ins><span class="cx"> ASSERT(propertyID == CSSPropertyBackgroundPosition || propertyID == CSSPropertyWebkitMaskPosition);
</span><span class="cx"> positionList.get().append(CSSValuePool::singleton().createValue(layer->backgroundYOrigin()));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorecssStyleBuilderConverterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleBuilderConverter.h (209558 => 209559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleBuilderConverter.h        2016-12-08 20:52:35 UTC (rev 209558)
+++ trunk/Source/WebCore/css/StyleBuilderConverter.h        2016-12-08 20:57:59 UTC (rev 209559)
</span><span class="lines">@@ -347,7 +347,6 @@
</span><span class="cx"> auto& first = *value.pairValue()->first();
</span><span class="cx"> if (first.valueID() == CSSValueRight || first.valueID() == CSSValueBottom)
</span><span class="cx"> relativeToTrailingEdge = true;
</span><del>-
</del><span class="cx"> lengthValue = value.pairValue()->second();
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleFillLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/FillLayer.cpp (209558 => 209559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/FillLayer.cpp        2016-12-08 20:52:35 UTC (rev 209558)
+++ trunk/Source/WebCore/rendering/style/FillLayer.cpp        2016-12-08 20:57:59 UTC (rev 209559)
</span><span class="lines">@@ -64,7 +64,8 @@
</span><span class="cx"> , m_repeatYSet(false)
</span><span class="cx"> , m_xPosSet(false)
</span><span class="cx"> , m_yPosSet(false)
</span><del>- , m_backgroundOriginSet(false)
</del><ins>+ , m_backgroundXOriginSet(false)
+ , m_backgroundYOriginSet(false)
</ins><span class="cx"> , m_backgroundXOrigin(static_cast<unsigned>(Edge::Left))
</span><span class="cx"> , m_backgroundYOrigin(static_cast<unsigned>(Edge::Top))
</span><span class="cx"> , m_compositeSet(type == MaskFillLayer)
</span><span class="lines">@@ -97,7 +98,8 @@
</span><span class="cx"> , m_repeatYSet(o.m_repeatYSet)
</span><span class="cx"> , m_xPosSet(o.m_xPosSet)
</span><span class="cx"> , m_yPosSet(o.m_yPosSet)
</span><del>- , m_backgroundOriginSet(o.m_backgroundOriginSet)
</del><ins>+ , m_backgroundXOriginSet(o.m_backgroundXOriginSet)
+ , m_backgroundYOriginSet(o.m_backgroundYOriginSet)
</ins><span class="cx"> , m_backgroundXOrigin(o.m_backgroundXOrigin)
</span><span class="cx"> , m_backgroundYOrigin(o.m_backgroundYOrigin)
</span><span class="cx"> , m_compositeSet(o.m_compositeSet)
</span><span class="lines">@@ -122,7 +124,8 @@
</span><span class="cx"> m_yPosition = o.m_yPosition;
</span><span class="cx"> m_backgroundXOrigin = o.m_backgroundXOrigin;
</span><span class="cx"> m_backgroundYOrigin = o.m_backgroundYOrigin;
</span><del>- m_backgroundOriginSet = o.m_backgroundOriginSet;
</del><ins>+ m_backgroundXOriginSet = o.m_backgroundXOriginSet;
+ m_backgroundYOriginSet = o.m_backgroundYOriginSet;
</ins><span class="cx"> m_sizeLength = o.m_sizeLength;
</span><span class="cx"> m_attachment = o.m_attachment;
</span><span class="cx"> m_clip = o.m_clip;
</span><span class="lines">@@ -172,10 +175,10 @@
</span><span class="cx"> // We need to fill in the remaining values with the pattern specified.
</span><span class="cx"> for (FillLayer* pattern = this; curr; curr = curr->next()) {
</span><span class="cx"> curr->m_xPosition = pattern->m_xPosition;
</span><del>- if (pattern->isBackgroundOriginSet()) {
</del><ins>+ if (pattern->isBackgroundXOriginSet())
</ins><span class="cx"> curr->m_backgroundXOrigin = pattern->m_backgroundXOrigin;
</span><ins>+ if (pattern->isBackgroundYOriginSet())
</ins><span class="cx"> curr->m_backgroundYOrigin = pattern->m_backgroundYOrigin;
</span><del>- }
</del><span class="cx"> pattern = pattern->next();
</span><span class="cx"> if (pattern == curr || !pattern)
</span><span class="cx"> pattern = this;
</span><span class="lines">@@ -187,10 +190,10 @@
</span><span class="cx"> // We need to fill in the remaining values with the pattern specified.
</span><span class="cx"> for (FillLayer* pattern = this; curr; curr = curr->next()) {
</span><span class="cx"> curr->m_yPosition = pattern->m_yPosition;
</span><del>- if (pattern->isBackgroundOriginSet()) {
</del><ins>+ if (pattern->isBackgroundXOriginSet())
</ins><span class="cx"> curr->m_backgroundXOrigin = pattern->m_backgroundXOrigin;
</span><ins>+ if (pattern->isBackgroundYOriginSet())
</ins><span class="cx"> curr->m_backgroundYOrigin = pattern->m_backgroundYOrigin;
</span><del>- }
</del><span class="cx"> pattern = pattern->next();
</span><span class="cx"> if (pattern == curr || !pattern)
</span><span class="cx"> pattern = this;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleFillLayerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/FillLayer.h (209558 => 209559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/FillLayer.h        2016-12-08 20:52:35 UTC (rev 209558)
+++ trunk/Source/WebCore/rendering/style/FillLayer.h        2016-12-08 20:57:59 UTC (rev 209559)
</span><span class="lines">@@ -89,7 +89,8 @@
</span><span class="cx"> bool isImageSet() const { return m_imageSet; }
</span><span class="cx"> bool isXPositionSet() const { return m_xPosSet; }
</span><span class="cx"> bool isYPositionSet() const { return m_yPosSet; }
</span><del>- bool isBackgroundOriginSet() const { return m_backgroundOriginSet; }
</del><ins>+ bool isBackgroundXOriginSet() const { return m_backgroundXOriginSet; }
+ bool isBackgroundYOriginSet() const { return m_backgroundYOriginSet; }
</ins><span class="cx"> bool isAttachmentSet() const { return m_attachmentSet; }
</span><span class="cx"> bool isClipSet() const { return m_clipSet; }
</span><span class="cx"> bool isOriginSet() const { return m_originSet; }
</span><span class="lines">@@ -103,8 +104,8 @@
</span><span class="cx"> void setImage(RefPtr<StyleImage>&& image) { m_image = WTFMove(image); m_imageSet = true; }
</span><span class="cx"> void setXPosition(Length length) { m_xPosition = WTFMove(length); m_xPosSet = true; }
</span><span class="cx"> void setYPosition(Length length) { m_yPosition = WTFMove(length); m_yPosSet = true; }
</span><del>- void setBackgroundXOrigin(Edge o) { m_backgroundXOrigin = static_cast<unsigned>(o); m_backgroundOriginSet = true; }
- void setBackgroundYOrigin(Edge o) { m_backgroundYOrigin = static_cast<unsigned>(o); m_backgroundOriginSet = true; }
</del><ins>+ void setBackgroundXOrigin(Edge o) { m_backgroundXOrigin = static_cast<unsigned>(o); m_backgroundXOriginSet = true; }
+ void setBackgroundYOrigin(Edge o) { m_backgroundYOrigin = static_cast<unsigned>(o); m_backgroundYOriginSet = true; }
</ins><span class="cx"> void setAttachment(EFillAttachment attachment) { m_attachment = attachment; m_attachmentSet = true; }
</span><span class="cx"> void setClip(EFillBox b) { m_clip = b; m_clipSet = true; }
</span><span class="cx"> void setOrigin(EFillBox b) { m_origin = b; m_originSet = true; }
</span><span class="lines">@@ -119,8 +120,8 @@
</span><span class="cx">
</span><span class="cx"> void clearImage() { m_image = nullptr; m_imageSet = false; }
</span><span class="cx">
</span><del>- void clearXPosition() { m_xPosSet = false; m_backgroundOriginSet = false; }
- void clearYPosition() { m_yPosSet = false; m_backgroundOriginSet = false; }
</del><ins>+ void clearXPosition() { m_xPosSet = false; m_backgroundXOriginSet = false; }
+ void clearYPosition() { m_yPosSet = false; m_backgroundYOriginSet = false; }
</ins><span class="cx">
</span><span class="cx"> void clearAttachment() { m_attachmentSet = false; }
</span><span class="cx"> void clearClip() { m_clipSet = false; }
</span><span class="lines">@@ -200,7 +201,8 @@
</span><span class="cx"> unsigned m_repeatYSet : 1;
</span><span class="cx"> unsigned m_xPosSet : 1;
</span><span class="cx"> unsigned m_yPosSet : 1;
</span><del>- unsigned m_backgroundOriginSet : 1;
</del><ins>+ unsigned m_backgroundXOriginSet : 1;
+ unsigned m_backgroundYOriginSet : 1;
</ins><span class="cx"> unsigned m_backgroundXOrigin : 2; // Edge
</span><span class="cx"> unsigned m_backgroundYOrigin : 2; // Edge
</span><span class="cx"> unsigned m_compositeSet : 1;
</span></span></pre>
</div>
</div>
</body>
</html>