2011-05-12 Ben Wells <benwells@chromium.org>

        Reviewed by Simon Fraser.

        RGBA colors in outlines show overpainting at the corners
        https://bugs.webkit.org/show_bug.cgi?id=58999

        Converted the new tests to be text tests with pixel results
        (using dumpAsText(true)).
        Updated test_expectations comments to be more helpful and accurate and split
        new expectations into two groups for skia / chromium-mac as chromium-mac can be
        rebaselined now.

        * fast/borders/outline-alpha-block-expected.txt: Added.
        * fast/borders/outline-alpha-block.html:
        * fast/borders/outline-alpha-inline-expected.txt: Added.
        * fast/borders/outline-alpha-inline.html:
        * platform/chromium/test_expectations.txt:
        * platform/mac/fast/borders/outline-alpha-block-expected.txt: Removed.
        * platform/mac/fast/borders/outline-alpha-inline-expected.txt: Removed.
2011-05-12  Ben Wells  <benwells@chromium.org>

        Reviewed by Simon Fraser.

        RGBA colors in outlines show overpainting at the corners
        https://bugs.webkit.org/show_bug.cgi?id=58999

        Added FIXMEs near temporary $if !USE(SKIA)s, referencing bug 60342.

        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::paintOutline):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::paintOutline):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@86413 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent b10b1084
2011-05-12 Ben Wells <benwells@chromium.org>
Reviewed by Simon Fraser.
RGBA colors in outlines show overpainting at the corners
https://bugs.webkit.org/show_bug.cgi?id=58999
Converted the new tests to be text tests with pixel results
(using dumpAsText(true)).
Updated test_expectations comments to be more helpful and accurate and split
new expectations into two groups for skia / chromium-mac as chromium-mac can be
rebaselined now.
* fast/borders/outline-alpha-block-expected.txt: Added.
* fast/borders/outline-alpha-block.html:
* fast/borders/outline-alpha-inline-expected.txt: Added.
* fast/borders/outline-alpha-inline.html:
* platform/chromium/test_expectations.txt:
* platform/mac/fast/borders/outline-alpha-block-expected.txt: Removed.
* platform/mac/fast/borders/outline-alpha-inline-expected.txt: Removed.
2011-05-12 David Grogan <dgrogan@chromium.org>
Reviewed by Darin Adler.
The outlines should be a consistent color all the way around the outline. There should be no dark pixels or blocks at corners.
solid
double
dotted
dashed
ridge
groove
inset
outset
......@@ -127,3 +127,7 @@ inset<br><br>
<div class="outset"></div>
outset
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText(true);
</script>
The outlines should be a consistent color all the way around the outline. There should be no dark pixels or blocks at corners or between lines.
Text spanning more than one line. solid Text spanning more than one line. double
Text spanning more than one line. dotted Text spanning more than one line. dashed
Text spanning more than one line. ridge Text spanning more than one line. groove
Text spanning more than one line. inset Text spanning more than one line. outset
......@@ -89,3 +89,8 @@ inset
<span class="outset">Text spanning more than one line.</span>
</div>
outset
<script>
if (window.layoutTestController)
layoutTestController.dumpAsText(true);
</script>
......@@ -4031,9 +4031,15 @@ BUGANTONM DEBUG : html5lib/runner.html = PASS TIMEOUT
BUGCR82419 : svg/custom/fill-opacity-update.svg = IMAGE
// New pixel tests added for bug 58999, rebaseline when webkit 58999 rolls.
BUGWK58999 WIN LINUX MAC : fast/borders/outline-alpha-block.html = IMAGE+TEXT IMAGE
BUGWK58999 WIN LINUX MAC : fast/borders/outline-alpha-inline.html = IMAGE+TEXT IMAGE
// New pixel tests added for bug 58999. These will fail on windows and linux until bug
// 60342 is fixed and the 58999 fix enabled for skia.
BUGWK58999 WIN LINUX : fast/borders/outline-alpha-block.html = IMAGE
BUGWK58999 WIN LINUX : fast/borders/outline-alpha-inline.html = IMAGE
// New pixel tests added for bug 58999. These should be rebaselined for chromium-mac
// as the bug fix is available on that platform but there are image differences due to fonts
BUGWK58999 MAC : fast/borders/outline-alpha-block.html = IMAGE
BUGWK58999 MAC : fast/borders/outline-alpha-inline.html = IMAGE
BUGWK60738 LINUX WIN : compositing/color-matching/image-color-matching.html = IMAGE+TEXT IMAGE
BUGWK60738 LINUX WIN : compositing/layers-inside-overflow-scroll.html = IMAGE+TEXT IMAGE
......
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x338
RenderBlock {HTML} at (0,0) size 800x338
RenderBody {BODY} at (8,8) size 784x322
RenderText {#text} at (0,0) size 781x18
text run at (0,0) width 781: "The outlines should be a consistent color all the way around the outline. There should be no dark pixels or blocks at corners."
RenderBR {BR} at (781,0) size 0x18
RenderBR {BR} at (0,18) size 0x18
RenderBlock {DIV} at (20,38) size 20x4
RenderText {#text} at (60,38) size 4x18
text run at (60,38) width 4: " "
RenderBlock {DIV} at (84,38) size 20x4
RenderText {#text} at (124,38) size 4x18
text run at (124,38) width 4: " "
RenderBlock {DIV} at (148,38) size 20x4
RenderText {#text} at (188,38) size 4x18
text run at (188,38) width 4: " "
RenderBlock {DIV} at (212,38) size 20x4
RenderText {#text} at (252,38) size 4x18
text run at (252,38) width 4: " "
RenderBlock {DIV} at (276,38) size 20x4
RenderText {#text} at (316,38) size 4x18
text run at (316,38) width 4: " "
RenderBlock {DIV} at (340,38) size 20x4
RenderText {#text} at (380,38) size 4x18
text run at (380,38) width 4: " "
RenderBlock {DIV} at (404,38) size 20x4
RenderText {#text} at (444,38) size 4x18
text run at (444,38) width 4: " "
RenderBlock {DIV} at (468,38) size 20x4
RenderText {#text} at (508,38) size 34x18
text run at (508,38) width 34: " solid"
RenderBR {BR} at (542,38) size 0x18
RenderBR {BR} at (0,56) size 0x18
RenderBlock {DIV} at (20,76) size 20x4
RenderText {#text} at (60,76) size 4x18
text run at (60,76) width 4: " "
RenderBlock {DIV} at (84,76) size 20x4
RenderText {#text} at (124,76) size 4x18
text run at (124,76) width 4: " "
RenderBlock {DIV} at (148,76) size 20x4
RenderText {#text} at (188,76) size 4x18
text run at (188,76) width 4: " "
RenderBlock {DIV} at (212,76) size 20x4
RenderText {#text} at (252,76) size 4x18
text run at (252,76) width 4: " "
RenderBlock {DIV} at (276,76) size 20x4
RenderText {#text} at (316,76) size 4x18
text run at (316,76) width 4: " "
RenderBlock {DIV} at (340,76) size 20x4
RenderText {#text} at (380,76) size 4x18
text run at (380,76) width 4: " "
RenderBlock {DIV} at (404,76) size 20x4
RenderText {#text} at (444,76) size 4x18
text run at (444,76) width 4: " "
RenderBlock {DIV} at (468,76) size 20x4
RenderText {#text} at (508,76) size 47x18
text run at (508,76) width 47: " double"
RenderBR {BR} at (555,76) size 0x18
RenderBR {BR} at (0,94) size 0x18
RenderBlock {DIV} at (20,114) size 20x4
RenderText {#text} at (60,114) size 4x18
text run at (60,114) width 4: " "
RenderBlock {DIV} at (84,114) size 20x4
RenderText {#text} at (124,114) size 4x18
text run at (124,114) width 4: " "
RenderBlock {DIV} at (148,114) size 20x4
RenderText {#text} at (188,114) size 4x18
text run at (188,114) width 4: " "
RenderBlock {DIV} at (212,114) size 20x4
RenderText {#text} at (252,114) size 4x18
text run at (252,114) width 4: " "
RenderBlock {DIV} at (276,114) size 20x4
RenderText {#text} at (316,114) size 4x18
text run at (316,114) width 4: " "
RenderBlock {DIV} at (340,114) size 20x4
RenderText {#text} at (380,114) size 4x18
text run at (380,114) width 4: " "
RenderBlock {DIV} at (404,114) size 20x4
RenderText {#text} at (444,114) size 4x18
text run at (444,114) width 4: " "
RenderBlock {DIV} at (468,114) size 20x4
RenderText {#text} at (508,114) size 43x18
text run at (508,114) width 43: " dotted"
RenderBR {BR} at (551,114) size 0x18
RenderBR {BR} at (0,132) size 0x18
RenderBlock {DIV} at (20,152) size 20x4
RenderText {#text} at (60,152) size 4x18
text run at (60,152) width 4: " "
RenderBlock {DIV} at (84,152) size 20x4
RenderText {#text} at (124,152) size 4x18
text run at (124,152) width 4: " "
RenderBlock {DIV} at (148,152) size 20x4
RenderText {#text} at (188,152) size 4x18
text run at (188,152) width 4: " "
RenderBlock {DIV} at (212,152) size 20x4
RenderText {#text} at (252,152) size 4x18
text run at (252,152) width 4: " "
RenderBlock {DIV} at (276,152) size 20x4
RenderText {#text} at (316,152) size 4x18
text run at (316,152) width 4: " "
RenderBlock {DIV} at (340,152) size 20x4
RenderText {#text} at (380,152) size 4x18
text run at (380,152) width 4: " "
RenderBlock {DIV} at (404,152) size 20x4
RenderText {#text} at (444,152) size 4x18
text run at (444,152) width 4: " "
RenderBlock {DIV} at (468,152) size 20x4
RenderText {#text} at (508,152) size 48x18
text run at (508,152) width 48: " dashed"
RenderBR {BR} at (556,152) size 0x18
RenderBR {BR} at (0,170) size 0x18
RenderBlock {DIV} at (20,190) size 20x4
RenderText {#text} at (60,190) size 4x18
text run at (60,190) width 4: " "
RenderBlock {DIV} at (84,190) size 20x4
RenderText {#text} at (124,190) size 4x18
text run at (124,190) width 4: " "
RenderBlock {DIV} at (148,190) size 20x4
RenderText {#text} at (188,190) size 4x18
text run at (188,190) width 4: " "
RenderBlock {DIV} at (212,190) size 20x4
RenderText {#text} at (252,190) size 4x18
text run at (252,190) width 4: " "
RenderBlock {DIV} at (276,190) size 20x4
RenderText {#text} at (316,190) size 4x18
text run at (316,190) width 4: " "
RenderBlock {DIV} at (340,190) size 20x4
RenderText {#text} at (380,190) size 4x18
text run at (380,190) width 4: " "
RenderBlock {DIV} at (404,190) size 20x4
RenderText {#text} at (444,190) size 4x18
text run at (444,190) width 4: " "
RenderBlock {DIV} at (468,190) size 20x4
RenderText {#text} at (508,190) size 36x18
text run at (508,190) width 36: " ridge"
RenderBR {BR} at (544,190) size 0x18
RenderBR {BR} at (0,208) size 0x18
RenderBlock {DIV} at (20,228) size 20x4
RenderText {#text} at (60,228) size 4x18
text run at (60,228) width 4: " "
RenderBlock {DIV} at (84,228) size 20x4
RenderText {#text} at (124,228) size 4x18
text run at (124,228) width 4: " "
RenderBlock {DIV} at (148,228) size 20x4
RenderText {#text} at (188,228) size 4x18
text run at (188,228) width 4: " "
RenderBlock {DIV} at (212,228) size 20x4
RenderText {#text} at (252,228) size 4x18
text run at (252,228) width 4: " "
RenderBlock {DIV} at (276,228) size 20x4
RenderText {#text} at (316,228) size 4x18
text run at (316,228) width 4: " "
RenderBlock {DIV} at (340,228) size 20x4
RenderText {#text} at (380,228) size 4x18
text run at (380,228) width 4: " "
RenderBlock {DIV} at (404,228) size 20x4
RenderText {#text} at (444,228) size 4x18
text run at (444,228) width 4: " "
RenderBlock {DIV} at (468,228) size 20x4
RenderText {#text} at (508,228) size 48x18
text run at (508,228) width 48: " groove"
RenderBR {BR} at (556,228) size 0x18
RenderBR {BR} at (0,246) size 0x18
RenderBlock {DIV} at (20,266) size 20x4
RenderText {#text} at (60,266) size 4x18
text run at (60,266) width 4: " "
RenderBlock {DIV} at (84,266) size 20x4
RenderText {#text} at (124,266) size 4x18
text run at (124,266) width 4: " "
RenderBlock {DIV} at (148,266) size 20x4
RenderText {#text} at (188,266) size 4x18
text run at (188,266) width 4: " "
RenderBlock {DIV} at (212,266) size 20x4
RenderText {#text} at (252,266) size 4x18
text run at (252,266) width 4: " "
RenderBlock {DIV} at (276,266) size 20x4
RenderText {#text} at (316,266) size 4x18
text run at (316,266) width 4: " "
RenderBlock {DIV} at (340,266) size 20x4
RenderText {#text} at (380,266) size 4x18
text run at (380,266) width 4: " "
RenderBlock {DIV} at (404,266) size 20x4
RenderText {#text} at (444,266) size 4x18
text run at (444,266) width 4: " "
RenderBlock {DIV} at (468,266) size 20x4
RenderText {#text} at (508,266) size 33x18
text run at (508,266) width 33: " inset"
RenderBR {BR} at (541,266) size 0x18
RenderBR {BR} at (0,284) size 0x18
RenderBlock {DIV} at (20,304) size 20x4
RenderText {#text} at (60,304) size 4x18
text run at (60,304) width 4: " "
RenderBlock {DIV} at (84,304) size 20x4
RenderText {#text} at (124,304) size 4x18
text run at (124,304) width 4: " "
RenderBlock {DIV} at (148,304) size 20x4
RenderText {#text} at (188,304) size 4x18
text run at (188,304) width 4: " "
RenderBlock {DIV} at (212,304) size 20x4
RenderText {#text} at (252,304) size 4x18
text run at (252,304) width 4: " "
RenderBlock {DIV} at (276,304) size 20x4
RenderText {#text} at (316,304) size 4x18
text run at (316,304) width 4: " "
RenderBlock {DIV} at (340,304) size 20x4
RenderText {#text} at (380,304) size 4x18
text run at (380,304) width 4: " "
RenderBlock {DIV} at (404,304) size 20x4
RenderText {#text} at (444,304) size 4x18
text run at (444,304) width 4: " "
RenderBlock {DIV} at (468,304) size 20x4
RenderText {#text} at (508,304) size 41x18
text run at (508,304) width 41: " outset"
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x500
RenderBlock {HTML} at (0,0) size 800x500
RenderBody {BODY} at (8,8) size 784x484
RenderText {#text} at (0,0) size 777x36
text run at (0,0) width 777: "The outlines should be a consistent color all the way around the outline. There should be no dark pixels or blocks at corners"
text run at (0,18) width 107: "or between lines."
RenderBR {BR} at (107,18) size 0x18
RenderBR {BR} at (0,36) size 0x18
RenderBlock {DIV} at (20,74) size 100x54
RenderInline {SPAN} at (0,0) size 90x54
RenderText {#text} at (0,0) size 90x54
text run at (0,0) width 90: "Text spanning"
text run at (0,18) width 90: "more than one"
text run at (0,36) width 27: "line."
RenderText {#text} at (0,0) size 0x0
RenderText {#text} at (140,110) size 38x18
text run at (140,110) width 38: " solid "
RenderBlock {DIV} at (198,74) size 100x54
RenderInline {SPAN} at (0,0) size 90x54
RenderText {#text} at (0,0) size 90x54
text run at (0,0) width 90: "Text spanning"
text run at (0,18) width 90: "more than one"
text run at (0,36) width 27: "line."
RenderText {#text} at (0,0) size 0x0
RenderText {#text} at (318,110) size 47x18
text run at (318,110) width 47: " double"
RenderBR {BR} at (365,110) size 0x18
RenderBR {BR} at (0,148) size 0x18
RenderBlock {DIV} at (20,186) size 100x54
RenderInline {SPAN} at (0,0) size 90x54
RenderText {#text} at (0,0) size 90x54
text run at (0,0) width 90: "Text spanning"
text run at (0,18) width 90: "more than one"
text run at (0,36) width 27: "line."
RenderText {#text} at (0,0) size 0x0
RenderText {#text} at (140,222) size 47x18
text run at (140,222) width 47: " dotted "
RenderBlock {DIV} at (207,186) size 100x54
RenderInline {SPAN} at (0,0) size 90x54
RenderText {#text} at (0,0) size 90x54
text run at (0,0) width 90: "Text spanning"
text run at (0,18) width 90: "more than one"
text run at (0,36) width 27: "line."
RenderText {#text} at (0,0) size 0x0
RenderText {#text} at (327,222) size 48x18
text run at (327,222) width 48: " dashed"
RenderBR {BR} at (375,222) size 0x18
RenderBR {BR} at (0,260) size 0x18
RenderBlock {DIV} at (20,298) size 100x54
RenderInline {SPAN} at (0,0) size 90x54
RenderText {#text} at (0,0) size 90x54
text run at (0,0) width 90: "Text spanning"
text run at (0,18) width 90: "more than one"
text run at (0,36) width 27: "line."
RenderText {#text} at (0,0) size 0x0
RenderText {#text} at (140,334) size 40x18
text run at (140,334) width 40: " ridge "
RenderBlock {DIV} at (200,298) size 100x54
RenderInline {SPAN} at (0,0) size 90x54
RenderText {#text} at (0,0) size 90x54
text run at (0,0) width 90: "Text spanning"
text run at (0,18) width 90: "more than one"
text run at (0,36) width 27: "line."
RenderText {#text} at (0,0) size 0x0
RenderText {#text} at (320,334) size 48x18
text run at (320,334) width 48: " groove"
RenderBR {BR} at (368,334) size 0x18
RenderBR {BR} at (0,372) size 0x18
RenderBlock {DIV} at (20,410) size 100x54
RenderInline {SPAN} at (0,0) size 90x54
RenderText {#text} at (0,0) size 90x54
text run at (0,0) width 90: "Text spanning"
text run at (0,18) width 90: "more than one"
text run at (0,36) width 27: "line."
RenderText {#text} at (0,0) size 0x0
RenderText {#text} at (140,446) size 37x18
text run at (140,446) width 37: " inset "
RenderBlock {DIV} at (197,410) size 100x54
RenderInline {SPAN} at (0,0) size 90x54
RenderText {#text} at (0,0) size 90x54
text run at (0,0) width 90: "Text spanning"
text run at (0,18) width 90: "more than one"
text run at (0,36) width 27: "line."
RenderText {#text} at (0,0) size 0x0
RenderText {#text} at (317,446) size 41x18
text run at (317,446) width 41: " outset"
2011-05-12 Ben Wells <benwells@chromium.org>
Reviewed by Simon Fraser.
RGBA colors in outlines show overpainting at the corners
https://bugs.webkit.org/show_bug.cgi?id=58999
Added FIXMEs near temporary $if !USE(SKIA)s, referencing bug 60342.
* rendering/RenderInline.cpp:
(WebCore::RenderInline::paintOutline):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::paintOutline):
2011-05-12 Adele Peterson <adele@apple.com>
Reviewed by Darin Adler and Adam Barth.
......@@ -1398,6 +1398,8 @@ void RenderInline::paintOutline(GraphicsContext* graphicsContext, int tx, int ty
rects.append(IntRect());
Color outlineColor = styleToUse->visitedDependentColor(CSSPropertyOutlineColor);
// FIXME: Using a transparency layer for rgba outlines exacerbates an existing SKIA bug. The #if
// below prevents this; it should be removed when https://bugs.webkit.org/show_bug.cgi?id=60342 is fixed.
#if !USE(SKIA)
bool useTransparencyLayer = outlineColor.hasAlpha();
if (useTransparencyLayer) {
......@@ -1409,6 +1411,8 @@ void RenderInline::paintOutline(GraphicsContext* graphicsContext, int tx, int ty
for (unsigned i = 1; i < rects.size() - 1; i++)
paintOutlineForLine(graphicsContext, tx, ty, rects.at(i - 1), rects.at(i), rects.at(i + 1), outlineColor);
// FIXME: Using a transparency layer for rgba outlines exacerbates an existing SKIA bug. The #if
// below prevents this; it should be removed when https://bugs.webkit.org/show_bug.cgi?id=60342 is fixed.
#if !USE(SKIA)
if (useTransparencyLayer)
graphicsContext->endTransparencyLayer();
......
......@@ -1049,6 +1049,8 @@ void RenderObject::paintOutline(GraphicsContext* graphicsContext, const IntRect&
if (adjustedPaintRec.isEmpty())
return;
// FIXME: Using a transparency layer for rgba outlines exacerbates an existing SKIA bug. The #if
// below prevents this; it should be removed when https://bugs.webkit.org/show_bug.cgi?id=60342 is fixed.
#if !USE(SKIA)
bool useTransparencyLayer = outlineColor.hasAlpha();
if (useTransparencyLayer) {
......@@ -1071,6 +1073,8 @@ void RenderObject::paintOutline(GraphicsContext* graphicsContext, const IntRect&
drawLineForBoxSide(graphicsContext, rightInner, topOuter, rightOuter, bottomOuter, BSRight, outlineColor, outlineStyle, outlineWidth, outlineWidth);
drawLineForBoxSide(graphicsContext, leftOuter, bottomInner, rightOuter, bottomOuter, BSBottom, outlineColor, outlineStyle, outlineWidth, outlineWidth);
// FIXME: Using a transparency layer for rgba outlines exacerbates an existing SKIA bug. The #if
// below prevents this; it should be removed when https://bugs.webkit.org/show_bug.cgi?id=60342 is fixed.
#if !USE(SKIA)
if (useTransparencyLayer)
graphicsContext->endTransparencyLayer();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment