Title: [93850] trunk
- Revision
- 93850
- Author
- commit-qu...@webkit.org
- Date
- 2011-08-25 21:27:02 -0700 (Thu, 25 Aug 2011)
Log Message
Use PATH_BASED_BORDER_RADIUS_DRAWING for skia
https://bugs.webkit.org/show_bug.cgi?id=65583
Source/WebCore:
This change brings in the new border rendering for Skia. To support this without aliasing the skia
graphics context has been updated to support anti-aliased clipping around convex polygons and also
anti-aliased clipping outside a path.
Patch by Ben Wells <benwe...@chromium.org> on 2011-08-25
Reviewed by James Robinson.
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::clipConvexPolygon):
* platform/graphics/skia/PlatformContextSkia.cpp:
(WebCore::PlatformContextSkia::clipPathAntiAliased):
* rendering/RenderObject.h:
LayoutTests:
Patch by Ben Wells <benwe...@chromium.org> on 2011-08-25
Reviewed by James Robinson.
Update expectations: added failures for baselines to come. removed some
failure expectations for tests that now pass and moved some expectations
into the group of tests to be rebaselined.
* platform/chromium/test_expectations.txt:
Modified Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (93849 => 93850)
--- trunk/LayoutTests/ChangeLog 2011-08-26 02:54:09 UTC (rev 93849)
+++ trunk/LayoutTests/ChangeLog 2011-08-26 04:27:02 UTC (rev 93850)
@@ -1,3 +1,16 @@
+2011-08-25 Ben Wells <benwe...@chromium.org>
+
+ Use PATH_BASED_BORDER_RADIUS_DRAWING for skia
+ https://bugs.webkit.org/show_bug.cgi?id=65583
+
+ Reviewed by James Robinson.
+
+ Update expectations: added failures for baselines to come. removed some
+ failure expectations for tests that now pass and moved some expectations
+ into the group of tests to be rebaselined.
+
+ * platform/chromium/test_expectations.txt:
+
2011-08-25 Martin Robinson <mrobin...@igalia.com>
Skip some tests on GTK+ that are missing DRT functionality. Also
Modified: trunk/LayoutTests/platform/chromium/test_expectations.txt (93849 => 93850)
--- trunk/LayoutTests/platform/chromium/test_expectations.txt 2011-08-26 02:54:09 UTC (rev 93849)
+++ trunk/LayoutTests/platform/chromium/test_expectations.txt 2011-08-26 04:27:02 UTC (rev 93850)
@@ -1934,32 +1934,6 @@
BUGCR47826 SKIP MAC : fast/dom/HTMLMeterElement/meter-styles.html = FAIL
BUGCR47826 SKIP MAC : fast/dom/HTMLMeterElement/meter-styles-changing-pseudo.html = FAIL
-
-BUGWK41311 LINUX WIN : fast/borders/border-radius-circle.html = IMAGE
-BUGWK41311 LINUX WIN : fast/borders/border-radius-groove-01.html = IMAGE
-BUGWK41311 LINUX WIN : fast/borders/border-radius-groove-02.html = IMAGE
-BUGWK41311 LINUX WIN : fast/borders/border-radius-groove-03.html = IMAGE
-BUGWK41311 LINUX WIN : fast/borders/border-radius-wide-border-01.html = IMAGE
-BUGWK41311 LINUX WIN : fast/borders/border-radius-wide-border-02.html = IMAGE
-BUGWK41311 LINUX WIN : fast/borders/border-radius-wide-border-03.html = IMAGE
-BUGWK41311 LINUX WIN : fast/borders/border-radius-wide-border-04.html = IMAGE
-BUGWK41311 LINUX WIN : fast/borders/borderRadiusDashed04.html = IMAGE
-BUGWK41311 LINUX WIN : fast/borders/borderRadiusDashed05.html = IMAGE
-BUGWK41311 LINUX WIN : fast/borders/borderRadiusDashed06.html = IMAGE
-BUGWK41311 LINUX WIN : fast/borders/borderRadiusDotted04.html = IMAGE
-BUGWK41311 LINUX WIN : fast/borders/borderRadiusDotted05.html = IMAGE
-BUGWK41311 LINUX WIN : fast/borders/borderRadiusDotted06.html = IMAGE
-BUGWK41311 LINUX WIN : fast/borders/borderRadiusDouble04.html = IMAGE
-BUGWK41311 LINUX WIN : fast/borders/borderRadiusDouble05.html = IMAGE
-BUGWK41311 LINUX WIN : fast/borders/borderRadiusDouble06.html = IMAGE
-BUGWK41311 LINUX WIN : fast/borders/borderRadiusDouble07.html = IMAGE
-BUGWK41311 LINUX WIN : fast/borders/borderRadiusDouble08.html = IMAGE
-BUGWK41311 LINUX WIN : fast/borders/borderRadiusDouble09.html = IMAGE
-
-BUGWK41311 LINUX WIN : fast/borders/mixed-border-styles-radius.html = IMAGE+TEXT
-BUGWK41311 LINUX WIN : fast/borders/mixed-border-styles-radius2.html = IMAGE+TEXT
-BUGWK41311 LINUX WIN : fast/borders/mixed-border-styles.html = IMAGE+TEXT
-
// Flaky tests.
BUGCR44345 LINUX : svg/zoom/text/zoom-hixie-mixed-009.xml = PASS IMAGE
BUGCR44346 LINUX : svg/zoom/page/zoom-hixie-mixed-009.xml = PASS IMAGE
@@ -2997,19 +2971,11 @@
BUGCR79917 LINUX WIN : fast/repaint/layer-child-outline.html = IMAGE
BUGCR79917 LINUX WIN : fast/repaint/reflection-repaint-test.html = IMAGE
BUGCR79917 LINUX WIN : fast/repaint/table-cell-vertical-overflow.html = IMAGE
-BUGCR79917 LINUX WIN : fast/repaint/transform-absolute-child.html = IMAGE
-BUGCR79917 LINUX WIN : fast/repaint/transform-absolute-in-positioned-container.html = IMAGE
BUGCR79917 LINUX WIN : fast/repaint/transform-layout-repaint.html = IMAGE
-BUGCR79917 LINUX WIN : fast/repaint/transform-relative-position.html = IMAGE
-BUGCR79917 LINUX WIN : fast/repaint/transform-repaint-descendants.html = IMAGE
BUGCR79917 LINUX WIN : fast/table/border-collapsing/002-vertical.html = IMAGE
BUGCR79917 LINUX WIN : fast/table/border-collapsing/002.html = IMAGE
BUGCR79917 LINUX WIN : fast/table/empty-table-percent-height.html = IMAGE
BUGCR79917 LINUX WIN : fast/table/table-and-parts-outline.html = IMAGE
-BUGCR79917 LINUX WIN : fast/transforms/diamond.html = IMAGE
-BUGCR79917 LINUX WIN : fast/transforms/matrix-01.html = IMAGE
-BUGCR79917 LINUX WIN : fast/transforms/matrix-02.html = IMAGE
-BUGCR79917 LINUX WIN : fast/transforms/skew-with-unitless-zero.html = IMAGE
BUGCR79917 LINUX WIN : fast/transforms/transformed-caret.html = IMAGE
BUGCR79917 LINUX WIN : svg/custom/no-inherited-dashed-stroke.xhtml = IMAGE
BUGCR79917 LINUX WIN : svg/transforms/animated-path-inside-transformed-html.xhtml = IMAGE
@@ -3519,6 +3485,106 @@
BUGWK65462 VISTA : http/tests/cache/history-only-cached-subresource-loads-max-age-https.html = PASS TIMEOUT
+// Need new baselines due to border drawing now using the PATH_BASED_BORDER_RADIUS_DRAWING
+// code path.
+BUGWK65583 WIN LINUX : css2.1/t0805-c5517-brdr-s-00-c.html = IMAGE
+BUGWK65583 WIN LINUX : fast/backgrounds/border-radius-split-background-image.html = IMAGE
+BUGWK65583 WIN LINUX : fast/backgrounds/border-radius-split-background.html = IMAGE
+BUGWK65583 WIN LINUX : fast/backgrounds/gradient-background-leakage.html = IMAGE
+BUGWK65583 WIN LINUX : fast/backgrounds/repeat/negative-offset-repeat-transformed.html = IMAGE
+BUGWK65583 WIN LINUX : fast/writing-mode/border-radius-clipping-vertical-lr.html = IMAGE
+BUGWK65583 WIN LINUX : fast/writing-mode/box-shadow-horizontal-bt.html = IMAGE
+BUGWK65583 WIN LINUX : fast/writing-mode/box-shadow-vertical-lr.html = IMAGE
+BUGWK65583 WIN LINUX : fast/writing-mode/box-shadow-vertical-rl.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/border-antialiasing.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/border-radius-constraints.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/border-radius-huge-assert.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/border-radius-inline-flow.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/border-radius-split-inline.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/borderRadiusAllStylesAllCorners.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/borderRadiusArcs01.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/borderRadiusDashed02.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/borderRadiusDashed03.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/borderRadiusDotted01.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/borderRadiusDouble01.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/borderRadiusDouble02.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/borderRadiusDouble03.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/borderRadiusGroove01.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/borderRadiusGroove02.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/borderRadiusInset01.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/borderRadiusInvalidColor.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/borderRadiusOutset01.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/borderRadiusRidge01.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/borderRadiusSolid01.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/borderRadiusSolid02.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/borderRadiusSolid03.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/borderRadiusSolid04.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/different-color-borders.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/fieldsetBorderRadius.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/rtl-border-01.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/rtl-border-02.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/rtl-border-03.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/rtl-border-04.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/rtl-border-05.html = IMAGE
+BUGWK65583 WIN LINUX : fast/borders/table-borders.html = IMAGE
+BUGWK65583 WIN LINUX : fast/box-shadow/basic-shadows.html = IMAGE
+BUGWK65583 WIN LINUX : fast/box-shadow/border-radius-big.html = IMAGE
+BUGWK65583 WIN LINUX : fast/box-shadow/inset-box-shadow-radius.html = IMAGE
+BUGWK65583 WIN LINUX : fast/box-shadow/inset-box-shadows.html = IMAGE
+BUGWK65583 WIN LINUX : fast/box-shadow/inset-with-extraordinary-radii-and-border.html = IMAGE
+BUGWK65583 WIN LINUX : fast/box-shadow/inset.html = IMAGE
+BUGWK65583 WIN LINUX : fast/box-shadow/spread-multiple-normal.html = IMAGE
+BUGWK65583 WIN LINUX : fast/box-shadow/spread.html = IMAGE
+BUGWK65583 WIN LINUX : fast/css/box-shadow-and-border-radius.html = IMAGE
+BUGWK65583 WIN LINUX : fast/css/color-leakage.html = IMAGE
+BUGWK65583 WIN LINUX : fast/css/nested-rounded-corners.html = IMAGE
+BUGWK65583 WIN LINUX : fast/css/text-input-with-webkit-border-radius.html = IMAGE
+BUGWK65583 WIN LINUX : fast/forms/basic-selects.html = IMAGE
+BUGWK65583 WIN LINUX : fast/forms/validation-message-appearance.html = IMAGE
+BUGWK65583 WIN LINUX : fast/gradients/background-clipped.html = IMAGE
+BUGWK65583 WIN LINUX : fast/inline/inline-borders-with-bidi-override.html = IMAGE
+BUGWK65583 WIN LINUX : fast/multicol/client-rects.html = IMAGE
+BUGWK65583 WIN LINUX : fast/overflow/border-radius-clipping.html = IMAGE
+BUGWK65583 WIN LINUX : fast/repaint/border-radius-repaint.html = IMAGE
+BUGWK65583 WIN LINUX : fast/repaint/shadow-multiple-horizontal.html = IMAGE
+BUGWK65583 WIN LINUX : fast/repaint/shadow-multiple-strict-horizontal.html = IMAGE
+BUGWK65583 WIN LINUX : fast/repaint/shadow-multiple-strict-vertical.html = IMAGE
+BUGWK65583 WIN LINUX : fast/repaint/shadow-multiple-vertical.html = IMAGE
+BUGWK65583 WIN LINUX : fast/transforms/rotated-transform-affects-scrolling-1.html = IMAGE
+BUGWK65583 WIN LINUX : fast/transforms/rotated-transform-affects-scrolling-2.html = IMAGE
+BUGWK65583 WIN LINUX : fast/transforms/shadows.html = IMAGE
+BUGWK65583 WIN LINUX : media/video-layer-crash.html = IMAGE
+BUGWK65583 WIN LINUX : media/video-transformed.html = IMAGE
+
+BUGWK65583 LINUX WIN : fast/borders/border-radius-circle.html = IMAGE
+BUGWK65583 LINUX WIN : fast/borders/border-radius-groove-01.html = IMAGE
+BUGWK65583 LINUX WIN : fast/borders/border-radius-groove-02.html = IMAGE
+BUGWK65583 LINUX WIN : fast/borders/border-radius-groove-03.html = IMAGE
+BUGWK65583 LINUX WIN : fast/borders/border-radius-wide-border-01.html = IMAGE
+BUGWK65583 LINUX WIN : fast/borders/border-radius-wide-border-02.html = IMAGE
+BUGWK65583 LINUX WIN : fast/borders/border-radius-wide-border-03.html = IMAGE
+BUGWK65583 LINUX WIN : fast/borders/border-radius-wide-border-04.html = IMAGE
+BUGWK65583 LINUX WIN : fast/borders/borderRadiusDashed04.html = IMAGE
+BUGWK65583 LINUX WIN : fast/borders/borderRadiusDashed05.html = IMAGE
+BUGWK65583 LINUX WIN : fast/borders/borderRadiusDashed06.html = IMAGE
+BUGWK65583 LINUX WIN : fast/borders/borderRadiusDotted04.html = IMAGE
+BUGWK65583 LINUX WIN : fast/borders/borderRadiusDotted05.html = IMAGE
+BUGWK65583 LINUX WIN : fast/borders/borderRadiusDotted06.html = IMAGE
+BUGWK65583 LINUX WIN : fast/borders/borderRadiusDouble04.html = IMAGE
+BUGWK65583 LINUX WIN : fast/borders/borderRadiusDouble05.html = IMAGE
+BUGWK65583 LINUX WIN : fast/borders/borderRadiusDouble06.html = IMAGE
+BUGWK65583 LINUX WIN : fast/borders/borderRadiusDouble07.html = IMAGE
+BUGWK65583 LINUX WIN : fast/borders/borderRadiusDouble08.html = IMAGE
+BUGWK65583 LINUX WIN : fast/borders/borderRadiusDouble09.html = IMAGE
+
+BUGWK65583 LINUX WIN : fast/borders/mixed-border-styles-radius.html = IMAGE+TEXT
+BUGWK65583 LINUX WIN : fast/borders/mixed-border-styles-radius2.html = IMAGE+TEXT
+BUGWK65583 LINUX WIN : fast/borders/mixed-border-styles.html = IMAGE+TEXT
+
+BUGWK65583 LINUX WIN : fast/frames/iframe-scaling-with-scroll.html = IMAGE
+
+BUGWK65583 LINUX WIN : fast/css/border-radius-non-negative.html = IMAGE
+
// Introduced in r92298, which might cause another test crashing.
BUGZMO SKIP : fast/loader/reload-zero-byte-plugin.html = FAIL
Modified: trunk/Source/WebCore/ChangeLog (93849 => 93850)
--- trunk/Source/WebCore/ChangeLog 2011-08-26 02:54:09 UTC (rev 93849)
+++ trunk/Source/WebCore/ChangeLog 2011-08-26 04:27:02 UTC (rev 93850)
@@ -1,3 +1,21 @@
+2011-08-25 Ben Wells <benwe...@chromium.org>
+
+ Use PATH_BASED_BORDER_RADIUS_DRAWING for skia
+ https://bugs.webkit.org/show_bug.cgi?id=65583
+
+ This change brings in the new border rendering for Skia. To support this without aliasing the skia
+ graphics context has been updated to support anti-aliased clipping around convex polygons and also
+ anti-aliased clipping outside a path.
+
+ Reviewed by James Robinson.
+
+ * platform/graphics/skia/GraphicsContextSkia.cpp:
+ (WebCore::GraphicsContext::clipOut):
+ (WebCore::GraphicsContext::clipConvexPolygon):
+ * platform/graphics/skia/PlatformContextSkia.cpp:
+ (WebCore::PlatformContextSkia::clipPathAntiAliased):
+ * rendering/RenderObject.h:
+
2011-08-25 Luke Macpherson <macpher...@chromium.org>
Implement animation and transition properties in CSSStyleApplyProperty.
Modified: trunk/Source/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp (93849 => 93850)
--- trunk/Source/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp 2011-08-26 02:54:09 UTC (rev 93849)
+++ trunk/Source/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp 2011-08-26 04:27:02 UTC (rev 93850)
@@ -392,11 +392,12 @@
if (paintingDisabled())
return;
- const SkPath& path = *p.platformPath();
+ SkPath path = *p.platformPath();
if (!isPathSkiaSafe(getCTM(), path))
return;
- platformContext()->canvas()->clipPath(path, SkRegion::kDifference_Op);
+ path.toggleInverseFillType();
+ platformContext()->clipPathAntiAliased(path);
}
void GraphicsContext::clipPath(const Path& pathToClip, WindRule clipRule)
@@ -479,8 +480,14 @@
return;
SkPath path;
+ if (!isPathSkiaSafe(getCTM(), path))
+ return;
+
setPathFromConvexPoints(&path, numPoints, points);
- platformContext()->canvas()->clipPath(path);
+ if (antialiased)
+ platformContext()->clipPathAntiAliased(path);
+ else
+ platformContext()->canvas()->clipPath(path);
}
// This method is only used to draw the little circles used in lists.
Modified: trunk/Source/WebCore/platform/graphics/skia/PlatformContextSkia.cpp (93849 => 93850)
--- trunk/Source/WebCore/platform/graphics/skia/PlatformContextSkia.cpp 2011-08-26 02:54:09 UTC (rev 93849)
+++ trunk/Source/WebCore/platform/graphics/skia/PlatformContextSkia.cpp 2011-08-26 04:27:02 UTC (rev 93850)
@@ -283,7 +283,12 @@
if (!haveLayerOutstanding) {
SkRect bounds = clipPath.getBounds();
- canvas()->saveLayerAlpha(&bounds, 255, static_cast<SkCanvas::SaveFlags>(SkCanvas::kHasAlphaLayer_SaveFlag | SkCanvas::kFullColorLayer_SaveFlag | SkCanvas::kClipToLayer_SaveFlag));
+ // If we are doing a clip outside of clipPath our layer needs to be for the whole
+ // canvas, otherwise we can create a smaller layer.
+ SkRect* layerBounds = 0;
+ if (!clipPath.isInverseFillType())
+ layerBounds = &bounds;
+ canvas()->saveLayerAlpha(layerBounds, 255, static_cast<SkCanvas::SaveFlags>(SkCanvas::kHasAlphaLayer_SaveFlag | SkCanvas::kFullColorLayer_SaveFlag | SkCanvas::kClipToLayer_SaveFlag));
// Guards state modification during clipped operations.
// The state is popped in applyAntiAliasedClipPaths().
canvas()->save();
Modified: trunk/Source/WebCore/rendering/RenderObject.h (93849 => 93850)
--- trunk/Source/WebCore/rendering/RenderObject.h 2011-08-26 02:54:09 UTC (rev 93849)
+++ trunk/Source/WebCore/rendering/RenderObject.h 2011-08-26 04:27:02 UTC (rev 93850)
@@ -38,7 +38,7 @@
#include "TransformationMatrix.h"
#include <wtf/UnusedParam.h>
-#if USE(CG) || USE(CAIRO) || PLATFORM(QT)
+#if USE(CG) || USE(CAIRO) || USE(SKIA) || PLATFORM(QT)
#define HAVE_PATH_BASED_BORDER_RADIUS_DRAWING 1
#endif
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes