Title: [144196] trunk
Revision
144196
Author
[email protected]
Date
2013-02-27 08:48:03 -0800 (Wed, 27 Feb 2013)

Log Message

REGRESSION (r134631) of border-radius percentage with border pixel
https://bugs.webkit.org/show_bug.cgi?id=110889

Reviewed by Simon Fraser.

Source/WebCore:

Fixing background color filling to handle "non renderable" rounded
rectangles.

Test: fast/borders/border-radius-percent.html

* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):

LayoutTests:

Adding new pixel test to verify the correct rendering of
rounded rectangle backgrounds with inner border radii that
exceed the dimensions of the inner edge of the border.

* fast/borders/border-radius-percent-expected.txt: Added.
* fast/borders/border-radius-percent.html: Added.
* platform/chromium-linux/fast/borders/border-radius-percent-expected.png: Added.
* platform/chromium/TestExpectations:

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (144195 => 144196)


--- trunk/LayoutTests/ChangeLog	2013-02-27 16:45:06 UTC (rev 144195)
+++ trunk/LayoutTests/ChangeLog	2013-02-27 16:48:03 UTC (rev 144196)
@@ -1,3 +1,19 @@
+2013-02-27  Justin Novosad  <[email protected]>
+
+        REGRESSION (r134631) of border-radius percentage with border pixel
+        https://bugs.webkit.org/show_bug.cgi?id=110889
+
+        Reviewed by Simon Fraser.
+
+        Adding new pixel test to verify the correct rendering of
+        rounded rectangle backgrounds with inner border radii that
+        exceed the dimensions of the inner edge of the border.
+
+        * fast/borders/border-radius-percent-expected.txt: Added.
+        * fast/borders/border-radius-percent.html: Added.
+        * platform/chromium-linux/fast/borders/border-radius-percent-expected.png: Added.
+        * platform/chromium/TestExpectations:
+
 2013-02-27  Florin Malita  <[email protected]>
 
         [Chromium] Layout Test svg/custom/transform-with-shadow-and-gradient.svg is failing

Modified: trunk/LayoutTests/TestExpectations (144195 => 144196)


--- trunk/LayoutTests/TestExpectations	2013-02-27 16:45:06 UTC (rev 144195)
+++ trunk/LayoutTests/TestExpectations	2013-02-27 16:48:03 UTC (rev 144196)
@@ -2,5 +2,8 @@
 #
 # See http://trac.webkit.org/wiki/TestExpectations for more information on this file.
 
+# New test in need of pixel baselines
+webkit.org/b/110889 fast/borders/border-radius-percent.html [ ImageOnlyFailure Pass ]
+
 # pending functional patch and per-port verification
 webkit.org/b/109954 css3/line-break [ Skip ]

Added: trunk/LayoutTests/fast/borders/border-radius-percent-expected.txt (0 => 144196)


--- trunk/LayoutTests/fast/borders/border-radius-percent-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/borders/border-radius-percent-expected.txt	2013-02-27 16:48:03 UTC (rev 144196)
@@ -0,0 +1,3 @@
+Corners on top should be rounded and a border of 1px black on the bottom.
+
+Corners on top should be rounded and a border of 1px black all around.

Added: trunk/LayoutTests/fast/borders/border-radius-percent.html (0 => 144196)


--- trunk/LayoutTests/fast/borders/border-radius-percent.html	                        (rev 0)
+++ trunk/LayoutTests/fast/borders/border-radius-percent.html	2013-02-27 16:48:03 UTC (rev 144196)
@@ -0,0 +1,28 @@
+<!doctype html>
+<html>
+<head>
+<style type="text/css">
+    p{
+        text-align:center;
+        background:#ccc;
+        border-radius:50% 50% 0 0 / 100%;
+        width:300px;
+        height:150px;
+    }
+    p.all{
+        border:1px solid #000;
+    }
+    p.bottom{
+        border-bottom:1px solid #000;
+    }
+</style>
+<script>
+if (window.testRunner)
+    testRunner.dumpAsText(true);
+</script>
+</head>
+<body>
+<p class="bottom">Corners on top should be rounded and a border of 1px black on the bottom.</p>
+<p class="all">Corners on top should be rounded and a border of 1px black all around.</p>
+</body>
+</html>

Added: trunk/LayoutTests/platform/chromium-linux/fast/borders/border-radius-percent-expected.png


(Binary files differ)
Property changes on: trunk/LayoutTests/platform/chromium-linux/fast/borders/border-radius-percent-expected.png ___________________________________________________________________

Added: svn:mime-type

Modified: trunk/Source/WebCore/ChangeLog (144195 => 144196)


--- trunk/Source/WebCore/ChangeLog	2013-02-27 16:45:06 UTC (rev 144195)
+++ trunk/Source/WebCore/ChangeLog	2013-02-27 16:48:03 UTC (rev 144196)
@@ -1,3 +1,18 @@
+2013-02-27  Justin Novosad  <[email protected]>
+
+        REGRESSION (r134631) of border-radius percentage with border pixel
+        https://bugs.webkit.org/show_bug.cgi?id=110889
+
+        Reviewed by Simon Fraser.
+
+        Fixing background color filling to handle "non renderable" rounded
+        rectangles.
+
+        Test: fast/borders/border-radius-percent.html
+
+        * rendering/RenderBoxModelObject.cpp:
+        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
+
 2013-02-27  Florin Malita  <[email protected]>
 
         [Chromium] Layout Test svg/custom/transform-with-shadow-and-gradient.svg is failing

Modified: trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp (144195 => 144196)


--- trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp	2013-02-27 16:45:06 UTC (rev 144195)
+++ trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp	2013-02-27 16:48:03 UTC (rev 144196)
@@ -740,7 +740,14 @@
 
         if (hasRoundedBorder && bleedAvoidance != BackgroundBleedUseTransparencyLayer) {
             RoundedRect border = backgroundRoundedRectAdjustedForBleedAvoidance(context, rect, bleedAvoidance, box, boxSize, includeLeftEdge, includeRightEdge);
-            context->fillRoundedRect(border, bgColor, style()->colorSpace());
+            if (border.isRenderable())
+                context->fillRoundedRect(border, bgColor, style()->colorSpace());
+            else {
+                context->save();
+                clipRoundedInnerRect(context, rect, border);
+                context->fillRect(border.rect(), bgColor, style()->colorSpace());
+                context->restore();
+            }
         } else
             context->fillRect(pixelSnappedIntRect(rect), bgColor, style()->colorSpace());
         
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to