<!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>[174543] 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/174543">174543</a></dd>
<dt>Author</dt> <dd>dino@apple.com</dd>
<dt>Date</dt> <dd>2014-10-09 17:19:03 -0700 (Thu, 09 Oct 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Computed style for clip is wrong with respect to auto
https://bugs.webkit.org/show_bug.cgi?id=137567
Reviewed by Simon Fraser.
Source/WebCore:
Make sure that the computed style of clip returns the
correct value when the input is "auto", or in this
case "rect(auto, auto, auto, auto)". Before this
patch it returned "rect(0px, 0px, 0px, 0px)" which
was completely wrong.
Test: fast/css/computed-clip-with-auto-rect.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::autoOrZoomAdjustedValue): Helper function to make the correct keyword or length.
(WebCore::specifiedValueForGridTrackBreadth): It can use the helper too.
(WebCore::ComputedStyleExtractor::propertyValue): If the
top/right/bottom/left is "auto", add that identifier
to the output rectangle.
LayoutTests:
Test that an input of clip: rect(auto, auto, auto, auto)
is the same on the way out.
* fast/css/computed-clip-with-auto-rect-expected.txt: Added.
* fast/css/computed-clip-with-auto-rect.html: Added.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorecssCSSComputedStyleDeclarationcpp">trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastcsscomputedclipwithautorectexpectedtxt">trunk/LayoutTests/fast/css/computed-clip-with-auto-rect-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastcsscomputedclipwithautorecthtml">trunk/LayoutTests/fast/css/computed-clip-with-auto-rect.html</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (174542 => 174543)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2014-10-09 23:55:40 UTC (rev 174542)
+++ trunk/LayoutTests/ChangeLog        2014-10-10 00:19:03 UTC (rev 174543)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2014-10-09 Dean Jackson <dino@apple.com>
+
+ Computed style for clip is wrong with respect to auto
+ https://bugs.webkit.org/show_bug.cgi?id=137567
+
+ Reviewed by Simon Fraser.
+
+ Test that an input of clip: rect(auto, auto, auto, auto)
+ is the same on the way out.
+
+ * fast/css/computed-clip-with-auto-rect-expected.txt: Added.
+ * fast/css/computed-clip-with-auto-rect.html: Added.
+
</ins><span class="cx"> 2014-10-09 Said Abou-Hallawa <sabouhallawa@apple.com>
</span><span class="cx">
</span><span class="cx"> RenderMathMLUnderOver adds spacing to the child operator indefinitely when zooming or resizing the window.
</span></span></pre></div>
<a id="trunkLayoutTestsfastcsscomputedclipwithautorectexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/computed-clip-with-auto-rect-expected.txt (0 => 174543)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/computed-clip-with-auto-rect-expected.txt         (rev 0)
+++ trunk/LayoutTests/fast/css/computed-clip-with-auto-rect-expected.txt        2014-10-10 00:19:03 UTC (rev 174543)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+rect(auto, auto, auto, auto)
+
+rect(5px, auto, auto, auto)
+
+rect(auto, 5px, auto, auto)
+
+rect(auto, auto, 5px, auto)
+
+rect(auto, auto, auto, 5px)
+
+rect(5px, auto, 5px, auto)
</ins><span class="cx">Property changes on: trunk/LayoutTests/fast/css/computed-clip-with-auto-rect-expected.txt
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svnmimetype"></a>
<div class="addfile"><h4>Added: svn:mime-type</h4></div>
<a id="svnkeywords"></a>
<div class="addfile"><h4>Added: svn:keywords</h4></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkLayoutTestsfastcsscomputedclipwithautorecthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/css/computed-clip-with-auto-rect.html (0 => 174543)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/computed-clip-with-auto-rect.html         (rev 0)
+++ trunk/LayoutTests/fast/css/computed-clip-with-auto-rect.html        2014-10-10 00:19:03 UTC (rev 174543)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+<style>
+div {
+ width: 10px;
+ height: 10px;
+ background-color: green;
+}
+</style>
+<div id="test1" style="clip: rect(auto, auto, auto, auto);">
+<div id="test2" style="clip: rect(5px, auto, auto, auto);">
+<div id="test3" style="clip: rect(auto, 5px, auto, auto);">
+<div id="test4" style="clip: rect(auto, auto, 5px, auto);">
+<div id="test5" style="clip: rect(auto, auto, auto, 5px);">
+<div id="test6" style="clip: rect(5px, auto, 5px, auto);">
+
+<script>
+
+if (window.testRunner)
+ testRunner.dumpAsText();
+
+function outputStyleForElement(id) {
+ var element = document.getElementById(id);
+ var clipStyle = getComputedStyle(element).clip;
+ var p = document.createElement("p");
+ p.innerText = clipStyle;
+ document.body.appendChild(p);
+}
+
+outputStyleForElement("test1");
+outputStyleForElement("test2");
+outputStyleForElement("test3");
+outputStyleForElement("test4");
+outputStyleForElement("test5");
+outputStyleForElement("test6");
+</script>
</ins><span class="cx">Property changes on: trunk/LayoutTests/fast/css/computed-clip-with-auto-rect.html
</span><span class="cx">___________________________________________________________________
</span></span></pre></div>
<a id="svnmimetype"></a>
<div class="addfile"><h4>Added: svn:mime-type</h4></div>
<a id="svnkeywords"></a>
<div class="addfile"><h4>Added: svn:keywords</h4></div>
<a id="svneolstyle"></a>
<div class="addfile"><h4>Added: svn:eol-style</h4></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (174542 => 174543)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-10-09 23:55:40 UTC (rev 174542)
+++ trunk/Source/WebCore/ChangeLog        2014-10-10 00:19:03 UTC (rev 174543)
</span><span class="lines">@@ -1,3 +1,25 @@
</span><ins>+2014-10-09 Dean Jackson <dino@apple.com>
+
+ Computed style for clip is wrong with respect to auto
+ https://bugs.webkit.org/show_bug.cgi?id=137567
+
+ Reviewed by Simon Fraser.
+
+ Make sure that the computed style of clip returns the
+ correct value when the input is "auto", or in this
+ case "rect(auto, auto, auto, auto)". Before this
+ patch it returned "rect(0px, 0px, 0px, 0px)" which
+ was completely wrong.
+
+ Test: fast/css/computed-clip-with-auto-rect.html
+
+ * css/CSSComputedStyleDeclaration.cpp:
+ (WebCore::autoOrZoomAdjustedValue): Helper function to make the correct keyword or length.
+ (WebCore::specifiedValueForGridTrackBreadth): It can use the helper too.
+ (WebCore::ComputedStyleExtractor::propertyValue): If the
+ top/right/bottom/left is "auto", add that identifier
+ to the output rectangle.
+
</ins><span class="cx"> 2014-10-09 Chris Dumez <cdumez@apple.com>
</span><span class="cx">
</span><span class="cx"> Use RenderObject::firstChildSlow() / lastChildSlow() less
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSComputedStyleDeclarationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (174542 => 174543)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2014-10-09 23:55:40 UTC (rev 174542)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2014-10-10 00:19:03 UTC (rev 174543)
</span><span class="lines">@@ -721,6 +721,14 @@
</span><span class="cx"> return zoomAdjustedPixelValue(valueForLength(length, 0), style);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+static PassRef<CSSPrimitiveValue> autoOrZoomAdjustedValue(Length length, const RenderStyle* style)
+{
+ if (length.isAuto())
+ return cssValuePool().createIdentifierValue(CSSValueAuto);
+
+ return zoomAdjustedPixelValue(valueForLength(length, 0), style);
+}
+
</ins><span class="cx"> static PassRef<CSSValueList> getBorderRadiusCornerValues(const LengthSize& radius, const RenderStyle* style)
</span><span class="cx"> {
</span><span class="cx"> auto list = CSSValueList::createSpaceSeparated();
</span><span class="lines">@@ -972,9 +980,7 @@
</span><span class="cx"> return cssValuePool().createValue(trackBreadth.flex(), CSSPrimitiveValue::CSS_FR);
</span><span class="cx">
</span><span class="cx"> const Length& trackBreadthLength = trackBreadth.length();
</span><del>- if (trackBreadthLength.isAuto())
- return cssValuePool().createIdentifierValue(CSSValueAuto);
- return zoomAdjustedPixelValueForLength(trackBreadthLength, style);
</del><ins>+ return autoOrZoomAdjustedValue(trackBreadthLength, style);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static PassRef<CSSValue> specifiedValueForGridTrackSize(const GridTrackSize& trackSize, const RenderStyle* style)
</span><span class="lines">@@ -2744,10 +2750,10 @@
</span><span class="cx"> if (!style->hasClip())
</span><span class="cx"> return cssValuePool().createIdentifierValue(CSSValueAuto);
</span><span class="cx"> RefPtr<Rect> rect = Rect::create();
</span><del>- rect->setTop(zoomAdjustedPixelValue(style->clip().top().value(), style.get()));
- rect->setRight(zoomAdjustedPixelValue(style->clip().right().value(), style.get()));
- rect->setBottom(zoomAdjustedPixelValue(style->clip().bottom().value(), style.get()));
- rect->setLeft(zoomAdjustedPixelValue(style->clip().left().value(), style.get()));
</del><ins>+ rect->setTop(autoOrZoomAdjustedValue(style->clip().top(), style.get()));
+ rect->setRight(autoOrZoomAdjustedValue(style->clip().right(), style.get()));
+ rect->setBottom(autoOrZoomAdjustedValue(style->clip().bottom(), style.get()));
+ rect->setLeft(autoOrZoomAdjustedValue(style->clip().left(), style.get()));
</ins><span class="cx"> return cssValuePool().createValue(rect.release());
</span><span class="cx"> }
</span><span class="cx"> case CSSPropertySpeak:
</span></span></pre>
</div>
</div>
</body>
</html>