[prev in list] [next in list] [prev in thread] [next in thread] 

List:       webkit-changes
Subject:    [webkit-changes] [31912] trunk
From:       hyatt () apple ! com
Date:       2008-04-15 18:15:15
Message-ID: 20080415181515.C7A86159BE9F () beta ! macosforge ! org
[Download RAW message or body]

[Attachment #2 (text/html)]

<!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" \
/><style type="text/css"><!-- #msg dl { border: 1px #006 solid; background: \
#369; padding: 6px; color: #fff; } #msg dt { float: left; width: 6em; \
font-weight: bold; } #msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer { 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, #msg p { overflow: auto; background: #ffc; \
border: 1px #fc0 solid; padding: 6px; } #msg ul { overflow: auto; }
#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>
<title>[31912] trunk</title>
</head>
<body>

<div id="msg">
<dl>
<dt>Revision</dt> <dd><a \
href="http://trac.webkit.org/projects/webkit/changeset/31912">31912</a></dd>
 <dt>Author</dt> <dd>hyatt@apple.com</dd>
<dt>Date</dt> <dd>2008-04-15 11:15:06 -0700 (Tue, 15 Apr 2008)</dd>
</dl>

<h3>Log Message</h3>
<pre>WebCore:

2008-04-15  Anatoli Papirovski  &lt;apapirovski@mac.com&gt;

        Reviewed by hyatt

        [CSS1, CSS3] Fixed the background-origin calculation for root \
elements  (background-size and background-position are affected), r10794
        [CSS3] Fixed the background-size transformation where width is \
specified in percentage and height is left to auto

        Test: fast/backgrounds/background-origin-root-element.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::calculateBackgroundSize):
        (WebCore::RenderBox::calculateBackgroundImageGeometry):

LayoutTests:

2008-04-15  Anatoli Papirovski  &lt;apapirovski@mac.com&gt;

        Reviewed by hyatt

        Added test case for background-origin calculation on root elements
        (background-repeat and background-size), r10794 [CSS1 + CSS3]

        * fast/backgrounds/background-origin-root-element.html: Added.
        * platform/mac/fast/backgrounds/background-origin-root-element-expected.checksum: \
                Added.
        * platform/mac/fast/backgrounds/background-origin-root-element-expected.png: \
                Added.
        * platform/mac/fast/backgrounds/background-origin-root-element-expected.txt: \
Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
 <li><a href="#trunkLayoutTestsplatformmacfastbackgroundssizebackgroundSize1 \
8expectedchecksum">trunk/LayoutTests/platform/mac/fast/backgrounds/size/backgroundSize18-expected.checksum</a></li>
 <li><a href="#trunkLayoutTestsplatformmacfastbackgroundssizebackgroundSize1 \
8expectedpng">trunk/LayoutTests/platform/mac/fast/backgrounds/size/backgroundSize18-expected.png</a></li>
 <li><a href="#trunkWebCoreChangeLog">trunk/WebCore/ChangeLog</a></li>
<li><a href="#trunkWebCorerenderingRenderBoxcpp">trunk/WebCore/rendering/RenderBox.cpp</a></li>
 </ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastbackgroundsbackgroundoriginrootelementhtml \
">trunk/LayoutTests/fast/backgrounds/background-origin-root-element.html</a></li>
 <li><a href="#trunkLayoutTestsplatformmacfastbackgroundsbackgroundoriginroo \
telementexpectedchecksum">trunk/LayoutTests/platform/mac/fast/backgrounds/background-origin-root-element-expected.checksum</a></li>
 <li><a href="#trunkLayoutTestsplatformmacfastbackgroundsbackgroundoriginroo \
telementexpectedpng">trunk/LayoutTests/platform/mac/fast/backgrounds/background-origin-root-element-expected.png</a></li>
 <li><a href="#trunkLayoutTestsplatformmacfastbackgroundsbackgroundoriginroo \
telementexpectedtxt">trunk/LayoutTests/platform/mac/fast/backgrounds/background-origin-root-element-expected.txt</a></li>
 </ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (31911 => \
31912)</h4> <pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog	2008-04-15 17:54:18 UTC \
                (rev 31911)
+++ trunk/LayoutTests/ChangeLog	2008-04-15 18:15:06 UTC (rev 31912)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2008-04-15  Anatoli Papirovski  &lt;apapirovski@mac.com&gt;
+
+        Reviewed by hyatt
+
+        Added test case for background-origin calculation on root elements
+        (background-repeat and background-size), r10794 [CSS1 + CSS3]
+
+        * fast/backgrounds/background-origin-root-element.html: Added.
+        * platform/mac/fast/backgrounds/background-origin-root-element-expected.checksum: \
Added. +        * platform/mac/fast/backgrounds/background-origin-root-element-expected.png: \
Added. +        * platform/mac/fast/backgrounds/background-origin-root-element-expected.txt: \
Added. +
</ins><span class="cx"> 2008-04-15  Brady Eidson  &lt;beidson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Reviewed by Anders
</span></span></pre></div>
<a id="trunkLayoutTestsfastbackgroundsbackgroundoriginrootelementhtml"></a>
<div class="addfile"><h4>Added: \
trunk/LayoutTests/fast/backgrounds/background-origin-root-element.html (0 \
=> 31912)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/LayoutTests/fast/backgrounds/background-origin-root-element.html	     \
                (rev 0)
+++ trunk/LayoutTests/fast/backgrounds/background-origin-root-element.html	2008-04-15 \
18:15:06 UTC (rev 31912) </span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML \
4.01//EN&quot;&gt; +
+&lt;html&gt;
+&lt;head&gt;
+&lt;title&gt;Root Element Background Origin&lt;/title&gt;
+&lt;style type=&quot;text/css&quot;&gt;
+   body { border: solid black; background: #fff \
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAIAAAC0Ujn1AAAAGX \
RFWHRTb2Z0d2FyZQBBZG9iZSBJ%20bWFnZVJlYWR5ccllPAAAAClJREFUeNrszEENAAAIBKDT/p21g5s/CEBl8qQTtVqtVqvVarX6agUY%20AOiTATvieSECAAAAAElFTkSuQmCC) \
no-repeat 50% 50%; color: #000; -webkit-background-size: 100% 100%;} +   \
html { border: solid blue; background: transparent; color: yellow; padding: \
1em;} +	* {margin: 1em; padding: 1em;}
+	p {margin: 0; padding: 0 0 5em;}
+&lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;The HTML box, the one with a blue border should be fully filled \
with lime green. The BODY box, the one with black border, should also be \
fully filled with lime green. The lime green color should not spill out \
outside the blue border.&lt;/p&gt; +&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span><span class="cx">Property changes on: \
trunk/LayoutTests/fast/backgrounds/background-origin-root-element.html \
</span><span class="cx">___________________________________________________________________
 </span><span class="cx">Name: allow-tabs
</span><span class="cx">   + true
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastbackgroundsbackgroundoriginrootelementexpectedchecksum"></a>
 <div class="addfile"><h4>Added: \
trunk/LayoutTests/platform/mac/fast/backgrounds/background-origin-root-element-expected.checksum \
(0 => 31912)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/LayoutTests/platform/mac/fast/backgrounds/background-origin-root-element-expected.checksum	 \
                (rev 0)
+++ trunk/LayoutTests/platform/mac/fast/backgrounds/background-origin-root-element-expected.checksum	2008-04-15 \
18:15:06 UTC (rev 31912) </span><span class="lines">@@ -0,0 +1 @@
</span><ins>+1759a97cc985fef5fc30fef9def8ebce
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastbackgroundsbackgroundoriginrootelementexpectedpng"></a>
 <div class="binary"><h4>Added: \
trunk/LayoutTests/platform/mac/fast/backgrounds/background-origin-root-element-expected.png</h4>
 <pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<span class="cx">Property changes on: \
trunk/LayoutTests/platform/mac/fast/backgrounds/background-origin-root-element-expected.png
 </span><span class="cx">___________________________________________________________________
 </span><span class="cx">Name: svn:mime-type
</span><span class="cx">   + application/octet-stream
</span><a id="trunkLayoutTestsplatformmacfastbackgroundsbackgroundoriginrootelementexpectedtxt"></a>
 <div class="addfile"><h4>Added: \
trunk/LayoutTests/platform/mac/fast/backgrounds/background-origin-root-element-expected.txt \
(0 => 31912)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/LayoutTests/platform/mac/fast/backgrounds/background-origin-root-element-expected.txt	 \
                (rev 0)
+++ trunk/LayoutTests/platform/mac/fast/backgrounds/background-origin-root-element-expected.txt	2008-04-15 \
18:15:06 UTC (rev 31912) </span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (16,16) size 768x242
+  RenderBlock {HTML} at (16,16) size 768x242 [color=#FFFF00] [border: (3px \
solid #0000FF)] +    RenderBody {BODY} at (35,35) size 698x172 \
[color=#000000] [bgcolor=#FFFFFF] [border: (3px solid #000000)] +      \
RenderBlock {P} at (19,19) size 660x134 +        RenderText {#text} at \
(0,0) size 651x54 +          text run at (0,0) width 651: &quot;The HTML \
box, the one with a blue border should be fully filled with lime green. The \
BODY box, the&quot; +          text run at (0,18) width 646: &quot;one with \
black border, should also be fully filled with lime green. The lime green \
color should not spill&quot; +          text run at (0,36) width 172: \
&quot;out outside the blue border.&quot; </ins></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastbackgroundssizebackgroundSize18expectedchecksum"></a>
 <div class="modfile"><h4>Modified: \
trunk/LayoutTests/platform/mac/fast/backgrounds/size/backgroundSize18-expected.checksum \
(31911 => 31912)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/LayoutTests/platform/mac/fast/backgrounds/size/backgroundSize18-expected.checksum	2008-04-15 \
                17:54:18 UTC (rev 31911)
+++ trunk/LayoutTests/platform/mac/fast/backgrounds/size/backgroundSize18-expected.checksum	2008-04-15 \
18:15:06 UTC (rev 31912) </span><span class="lines">@@ -1 +1 @@
</span><del>-3fc0e927df258ed742fa657acffba46d
</del><span class="cx">\ No newline at end of file
</span><ins>+2f70b81328f41ce5c03fc1753b70d817
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastbackgroundssizebackgroundSize18expectedpng"></a>
 <div class="binary"><h4>Modified: \
trunk/LayoutTests/platform/mac/fast/backgrounds/size/backgroundSize18-expected.png</h4>
 <pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="trunkWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/ChangeLog (31911 => \
31912)</h4> <pre class="diff"><span>
<span class="info">--- trunk/WebCore/ChangeLog	2008-04-15 17:54:18 UTC (rev \
                31911)
+++ trunk/WebCore/ChangeLog	2008-04-15 18:15:06 UTC (rev 31912)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2008-04-15  Anatoli Papirovski  &lt;apapirovski@mac.com&gt;
+
+        Reviewed by hyatt
+
+        [CSS1, CSS3] Fixed the background-origin calculation for root \
elements +        (background-size and background-position are affected), \
r10794 +        [CSS3] Fixed the background-size transformation where width \
is specified in percentage and height is left to auto +
+        Test: fast/backgrounds/background-origin-root-element.html
+
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::calculateBackgroundSize):
+        (WebCore::RenderBox::calculateBackgroundImageGeometry):
+
</ins><span class="cx"> 2008-04-15  Timothy Hatcher  \
&lt;timothy@apple.com&gt; </span><span class="cx"> 
</span><span class="cx">         Fixes the regression where the error and \
warning counts did not show up in the Resources </span></span></pre></div>
<a id="trunkWebCorerenderingRenderBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/rendering/RenderBox.cpp \
(31911 => 31912)</h4> <pre class="diff"><span>
<span class="info">--- trunk/WebCore/rendering/RenderBox.cpp	2008-04-15 \
                17:54:18 UTC (rev 31911)
+++ trunk/WebCore/rendering/RenderBox.cpp	2008-04-15 18:15:06 UTC (rev \
31912) </span><span class="lines">@@ -346,15 +346,14 @@
</span><span class="cx">         rh = view()-&gt;height();
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    // CSS2 14.2:
+    // The background of the box generated by the root element covers the \
entire canvas including +    // its margins.
</ins><span class="cx">     int bx = tx - marginLeft();
</span><span class="cx">     int by = ty - marginTop();
</span><span class="cx">     int bw = max(w + marginLeft() + marginRight() \
+ borderLeft() + borderRight(), rw); </span><span class="cx">     int bh = \
max(h + marginTop() + marginBottom() + borderTop() + borderBottom(), rh); \
</span><span class="cx">  </span><del>-    // CSS2 14.2:
-    // &quot; The background of the box generated by the root element \
                covers the entire canvas.&quot;
-    // hence, paint the background even in the margin areas (unlike for \
                every other element!)
-    // I just love these little inconsistencies .. :-( (Dirk)
</del><span class="cx">     int my = max(by, paintInfo.rect.y());
</span><span class="cx"> 
</span><span class="cx">     paintBackgrounds(paintInfo, bgColor, bgLayer, \
my, paintInfo.rect.height(), bx, by, bw, bh); </span><span class="lines">@@ \
-459,7 +458,7 @@ </span><span class="cx">             // If the height is \
auto and the width is not, we have to use the appropriate </span><span \
class="cx">             // scale to maintain our aspect ratio. </span><span \
class="cx">             if (bgWidth.isPercent()) </span><del>-              \
h = bg-&gt;imageSize(style()-&gt;effectiveZoom()).height() * scaledWidth / \
bg-&gt;imageSize(style()-&gt;effectiveZoom()).width(); </del><ins>+         \
h = bg-&gt;imageSize(style()-&gt;effectiveZoom()).height() * w / \
bg-&gt;imageSize(style()-&gt;effectiveZoom()).width(); </ins><span \
class="cx">             else if (bgWidth.isFixed()) </span><span \
class="cx">                 h = \
bg-&gt;imageSize(style()-&gt;effectiveZoom()).height() * bgWidth.value() / \
bg-&gt;imageSize(style()-&gt;effectiveZoom()).width(); </span><span \
class="cx">             else if (bgWidth.isAuto()) { </span><span \
class="lines">@@ -537,6 +536,8 @@ </span><span class="cx">     int bottom = \
0; </span><span class="cx">     int cx;
</span><span class="cx">     int cy;
</span><ins>+    int rw = 0;
+    int rh = 0;
</ins><span class="cx"> 
</span><span class="cx">     // CSS2 chapter 14.2.1
</span><span class="cx"> 
</span><span class="lines">@@ -554,6 +555,18 @@
</span><span class="cx">                 bottom += paddingBottom();
</span><span class="cx">             }
</span><span class="cx">         }
</span><ins>+        
+        // The background of the box generated by the root element covers \
the entire canvas including +        // its margins.  Since those were \
added in already, we have to factor them out when computing the +        // \
box used by background-origin/size/position. +        if (isRoot()) {
+            rw = width() - left - right;
+            rh = height() - top - bottom; 
+            left += marginLeft();
+            right += marginRight();
+            top += marginTop();
+            bottom += marginBottom();
+        }
</ins><span class="cx">         cx = tx;
</span><span class="cx">         cy = ty;
</span><span class="cx">         pw = w - left - right;
</span><span class="lines">@@ -572,13 +585,22 @@
</span><span class="cx">     int cw;
</span><span class="cx">     int ch;
</span><span class="cx"> 
</span><del>-    IntSize scaledImageSize = calculateBackgroundSize(bgLayer, \
pw, ph); </del><ins>+    IntSize scaledImageSize;
+    if (isRoot() &amp;&amp; bgLayer-&gt;backgroundAttachment())
+        scaledImageSize = calculateBackgroundSize(bgLayer, rw, rh);
+    else
+        scaledImageSize = calculateBackgroundSize(bgLayer, pw, ph);
+        
</ins><span class="cx">     int scaledImageWidth = scaledImageSize.width();
</span><span class="cx">     int scaledImageHeight = \
scaledImageSize.height(); </span><span class="cx"> 
</span><span class="cx">     EBackgroundRepeat backgroundRepeat = \
bgLayer-&gt;backgroundRepeat(); </span><span class="cx">     
</span><del>-    int xPosition = \
bgLayer-&gt;backgroundXPosition().calcMinValue(pw - scaledImageWidth, \
true); </del><ins>+    int xPosition;
+    if (isRoot() &amp;&amp; bgLayer-&gt;backgroundAttachment())
+        xPosition = bgLayer-&gt;backgroundXPosition().calcMinValue(rw - \
scaledImageWidth, true); +    else
+        xPosition = bgLayer-&gt;backgroundXPosition().calcMinValue(pw - \
scaledImageWidth, true); </ins><span class="cx">     if (backgroundRepeat \
== REPEAT || backgroundRepeat == REPEAT_X) { </span><span class="cx">       \
cw = pw + left + right; </span><span class="cx">         sx = \
scaledImageWidth ? scaledImageWidth - (xPosition + left) % scaledImageWidth \
: 0; </span><span class="lines">@@ -587,8 +609,12 @@
</span><span class="cx">         sx = -min(xPosition + left, 0);
</span><span class="cx">         cw = scaledImageWidth + min(xPosition + \
left, 0); </span><span class="cx">     }
</span><del>-
-    int yPosition = bgLayer-&gt;backgroundYPosition().calcMinValue(ph - \
scaledImageHeight, true); </del><ins>+    
+    int yPosition;
+    if (isRoot() &amp;&amp; bgLayer-&gt;backgroundAttachment())
+        yPosition = bgLayer-&gt;backgroundYPosition().calcMinValue(rh - \
scaledImageHeight, true); +    else 
+        yPosition = bgLayer-&gt;backgroundYPosition().calcMinValue(ph - \
scaledImageHeight, true); </ins><span class="cx">     if (backgroundRepeat \
== REPEAT || backgroundRepeat == REPEAT_Y) { </span><span class="cx">       \
ch = ph + top + bottom; </span><span class="cx">         sy = \
scaledImageHeight ? scaledImageHeight - (yPosition + top) % \
scaledImageHeight : 0; </span></span></pre>
</div>
</div>

</body>
</html>



_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic