Bug 57907 - Skia incorrectly draws fillRoundedRect
Summary: Skia incorrectly draws fillRoundedRect
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebCore Misc. (show other bugs)
Version: 528+ (Nightly build)
Hardware: All Windows XP
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-04-05 17:02 PDT by Adrienne Walker
Modified: 2011-04-05 22:12 PDT (History)
7 users (show)

See Also:


Attachments
Patch (1.27 KB, patch)
2011-04-05 17:16 PDT, Adrienne Walker
tony: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Adrienne Walker 2011-04-05 17:02:36 PDT
http://trac.webkit.org/changeset/82969/trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp turned on a new fast path for rendering rounded corners.  This broke a number of tests:

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#master=ChromiumWebkit&tests=fast/blockflow/border-radius-clipping-vertical-lr.html,fast/blockflow/box-shadow-horizontal-bt.html,fast/blockflow/box-shadow-vertical-lr.html,fast/blockflow/box-shadow-vertical-rl.html,fast/borders/border-radius-huge-assert.html,fast/borders/borderRadiusAllStylesAllCorners.html,fast/borders/borderRadiusArcs01.html,fast/borders/borderRadiusDashed01.html,fast/borders/borderRadiusDashed02.html,fast/borders/borderRadiusDashed03.html,fast/borders/borderRadiusDotted01.html,fast/borders/borderRadiusDotted02.html,fast/borders/borderRadiusDotted03.html,fast/borders/borderRadiusDouble01.html,fast/borders/borderRadiusDouble02.html,fast/borders/borderRadiusDouble03.html,fast/borders/borderRadiusGroove01.html,fast/borders/borderRadiusGroove02.html,fast/borders/borderRadiusInset01.html,fast/borders/borderRadiusInvalidColor.html,fast/borders/borderRadiusOutset01.html,fast/borders/borderRadiusRidge01.html,fast/borders/borderRadiusSolid01.html,fast/borders/borderRadiusSolid02.html,fast/borders/borderRadiusSolid03.html,fast/box-shadow/border-radius-big.html,fast/box-shadow/inset-with-extraordinary-radii-and-border.html,fast/box-shadow/inset.html,fast/box-shadow/spread-multiple-inset.html,fast/box-shadow/spread-multiple-normal.html,fast/box-shadow/spread.html,fast/css/text-input-with-webkit-border-radius.html,fast/forms/basic-selects.html,fast/layers/video-layer.html,fast/overflow/border-radius-clipping.html,fast/repaint/border-radius-repaint.html,fast/replaced/border-radius-clip.html,fast/transforms/shadows.html,media/audio-controls-rendering.html,media/controls-after-reload.html,media/controls-strict.html,media/controls-styling.html,media/controls-without-preload.html,media/media-document-audio-repaint.html,media/video-controls-rendering.html,media/video-display-toggle.html,media/video-empty-source.html,media/video-no-audio.html,media/video-volume-slider.html,media/video-zoom-controls.html,svg/custom/svg-fonts-in-html.html

It essentially ends up rendering the background color as black instead of the correct color.

This bug doesn't occur on Mac, just Windows and Linux, so seems likely a Skia bug.  If I use fillRect instead fillRoundedRect, the color is right (even if the dimensions are wrong).  So, it seems like a fillRoundedRect problem.

I'm going to #ifdef it out temporarily until this can get addressed.
Comment 1 Nico Weber 2011-04-05 17:04:36 PDT
GraphicsContext::fillRoundedRect() in GraphicsContextSkia.cpp ignores its |color| parameter, maybe that's why?
Comment 2 Nico Weber 2011-04-05 17:07:43 PDT
Does this help?


diff --git a/Source/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp b/Source/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp
index df680eb..6d57fb8 100644
--- a/Source/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp
+++ b/Source/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp
@@ -853,6 +853,7 @@ void GraphicsContext::fillRoundedRect(const IntRect& rect,
 
     SkPaint paint;
     platformContext()->setupPaintForFilling(&paint);
+    paint.setColor(color.rgb());
     platformContext()->canvas()->drawPath(path, paint);
 }
Comment 3 Adrienne Walker 2011-04-05 17:16:16 PDT
Created attachment 88339 [details]
Patch
Comment 4 Adrienne Walker 2011-04-05 17:28:41 PDT
Committed r83002: <http://trac.webkit.org/changeset/83002>
Comment 5 Kent Tamura 2011-04-05 22:12:29 PDT
Rebaseline by http://trac.webkit.org/changeset/83017