- Revision
- 147533
- Author
- [email protected]
- Date
- 2013-04-03 02:48:04 -0700 (Wed, 03 Apr 2013)
Log Message
With borders of differing alpha, the corners become squared off
https://bugs.webkit.org/show_bug.cgi?id=113744
Reviewed by Simon Fraser.
Source/WebCore:
paintTranslucentBorderSides should pick up borders with common color
in order: top, bottom, left and right (not top, right, bottom and
left), because willBeOverdrawn depends on the assumption, borders are
drawn in order: top, bottom, left and right.
Test: fast/borders/border-left-right-same-bottom-different-color.html
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
LayoutTests:
* fast/borders/border-left-right-same-bottom-different-color-expected.txt: Added.
* fast/borders/border-left-right-same-bottom-different-color.html: Added.
* platform/chromium-linux/fast/borders/border-left-right-same-bottom-different-color-expected.png: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (147532 => 147533)
--- trunk/LayoutTests/ChangeLog 2013-04-03 09:45:49 UTC (rev 147532)
+++ trunk/LayoutTests/ChangeLog 2013-04-03 09:48:04 UTC (rev 147533)
@@ -1,3 +1,14 @@
+2013-04-03 Takashi Sakamoto <[email protected]>
+
+ With borders of differing alpha, the corners become squared off
+ https://bugs.webkit.org/show_bug.cgi?id=113744
+
+ Reviewed by Simon Fraser.
+
+ * fast/borders/border-left-right-same-bottom-different-color-expected.txt: Added.
+ * fast/borders/border-left-right-same-bottom-different-color.html: Added.
+ * platform/chromium-linux/fast/borders/border-left-right-same-bottom-different-color-expected.png: Added.
+
2013-04-03 Ádám Kallai <[email protected]>
[Qt] Unreviewed gardening. Updated platform specific expected files.
Added: trunk/LayoutTests/fast/borders/border-left-right-same-bottom-different-color-expected.txt (0 => 147533)
--- trunk/LayoutTests/fast/borders/border-left-right-same-bottom-different-color-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/borders/border-left-right-same-bottom-different-color-expected.txt 2013-04-03 09:48:04 UTC (rev 147533)
@@ -0,0 +1,6 @@
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x176
+ RenderBlock {HTML} at (0,0) size 800x176
+ RenderBody {BODY} at (8,8) size 784x160
+ RenderBlock {DIV} at (0,0) size 260x160 [bgcolor=#AAAAAA] [border: (30px solid #00A1007F) (30px solid #CCCCCC) (30px solid #00A100) (30px solid #CCCCCC)]
Added: trunk/LayoutTests/fast/borders/border-left-right-same-bottom-different-color.html (0 => 147533)
--- trunk/LayoutTests/fast/borders/border-left-right-same-bottom-different-color.html (rev 0)
+++ trunk/LayoutTests/fast/borders/border-left-right-same-bottom-different-color.html 2013-04-03 09:48:04 UTC (rev 147533)
@@ -0,0 +1,25 @@
+<!doctype html>
+<html>
+<head>
+<style>
+div {
+ width: 200px;
+ height: 100px;
+ background: #aaa;
+}
+#hasBorder {
+ border-top: 30px solid rgba(0, 161, 0, .5);
+ border-right: 30px solid #CCC;
+ border-bottom: 30px solid rgba(0, 161, 0, 1);
+ border-left: 30px solid #CCC;
+}
+</style>
+</head>
+<body>
+ <!-- [bug 113744] With borders of differing alpha, the corners become squared off -->
+ <!-- https://bugs.webkit.org/show_bug.cgi?id=113744 -->
+ <!-- A 45 degree angle (with an equal width border) should be expected -->
+ <!-- at the corners. If the corners become squared off, this test fails.-->
+ <div id="hasBorder"></div>
+</body>
+</html>
Added: trunk/LayoutTests/platform/chromium-linux/fast/borders/border-left-right-same-bottom-different-color-expected.png
(Binary files differ)
Property changes on: trunk/LayoutTests/platform/chromium-linux/fast/borders/border-left-right-same-bottom-different-color-expected.png
___________________________________________________________________
Added: svn:mime-type
Modified: trunk/Source/WebCore/ChangeLog (147532 => 147533)
--- trunk/Source/WebCore/ChangeLog 2013-04-03 09:45:49 UTC (rev 147532)
+++ trunk/Source/WebCore/ChangeLog 2013-04-03 09:48:04 UTC (rev 147533)
@@ -1,3 +1,20 @@
+2013-04-03 Takashi Sakamoto <[email protected]>
+
+ With borders of differing alpha, the corners become squared off
+ https://bugs.webkit.org/show_bug.cgi?id=113744
+
+ Reviewed by Simon Fraser.
+
+ paintTranslucentBorderSides should pick up borders with common color
+ in order: top, bottom, left and right (not top, right, bottom and
+ left), because willBeOverdrawn depends on the assumption, borders are
+ drawn in order: top, bottom, left and right.
+
+ Test: fast/borders/border-left-right-same-bottom-different-color.html
+
+ * rendering/RenderBoxModelObject.cpp:
+ (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
+
2013-04-03 Mihnea Ovidenie <[email protected]>
[New Multicolumn]Remove assert in RenderMultiColumnFlowThread::createAnonymous
Modified: trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp (147532 => 147533)
--- trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp 2013-04-03 09:45:49 UTC (rev 147532)
+++ trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp 2013-04-03 09:48:04 UTC (rev 147533)
@@ -1796,13 +1796,17 @@
void RenderBoxModelObject::paintTranslucentBorderSides(GraphicsContext* graphicsContext, const RenderStyle* style, const RoundedRect& outerBorder, const RoundedRect& innerBorder, const IntPoint& innerBorderAdjustment,
const BorderEdge edges[], BorderEdgeFlags edgesToDraw, BackgroundBleedAvoidance bleedAvoidance, bool includeLogicalLeftEdge, bool includeLogicalRightEdge, bool antialias)
{
+ // willBeOverdrawn assumes that we draw in order: top, bottom, left, right.
+ // This is different from BoxSide enum order.
+ static BoxSide paintOrder[] = { BSTop, BSBottom, BSLeft, BSRight };
+
while (edgesToDraw) {
// Find undrawn edges sharing a color.
Color commonColor;
BorderEdgeFlags commonColorEdgeSet = 0;
- for (int i = BSTop; i <= BSLeft; ++i) {
- BoxSide currSide = static_cast<BoxSide>(i);
+ for (size_t i = 0; i < sizeof(paintOrder) / sizeof(paintOrder[0]); ++i) {
+ BoxSide currSide = paintOrder[i];
if (!includesEdge(edgesToDraw, currSide))
continue;