Changeset 148949 in webkit


Ignore:
Timestamp:
Apr 23, 2013 1:17:05 AM (11 years ago)
Author:
allan.jensen@digia.com
Message:

Respect image-rendering setting for determing image-rendering quality
https://bugs.webkit.org/show_bug.cgi?id=113405

Reviewed by Benjamin Poulain.

Source/WebCore:

Remove the CSS4 values as they are not ready for implementation yet.
We still parse the -webkit-crisp-edges and SVG compatibility values to
be closer to the the partial support in Gecko and Presto.

Tests: fast/css/image-rendering-canvas.html

fast/css/image-rendering-parsing.html
fast/css/image-rendering.html
fast/css/optimize-contrast-image.html

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EImageRendering):

  • css/CSSValueKeywords.in:
  • css/SVGCSSParser.cpp:

(WebCore::CSSParser::parseSVGValue):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::ImageQualityController::shouldPaintAtLowQuality):

  • rendering/RenderHTMLCanvas.cpp:

(WebCore::RenderHTMLCanvas::paintReplaced):

  • rendering/style/RenderStyleConstants.h:

Tools:

Remove CSS4 Images option. It is not ready for implementation.

  • Scripts/webkitperl/FeatureList.pm:

LayoutTests:

Moved the two tests of image-rendering out of CSS3 since it was removed from the final recommendation.
Added tests of the supported values, and upgraded one test to a reference test so that it now tests
that -webkit-optimize-contrast gets converted to and treated as -webkit-crisp-edges.

Baselines for fast/css/image-rendering.html will be uploaded later when the bots have generated them.

  • css3/images/optimize-contrast-image-expected.png: Removed.
  • css3/images/optimize-contrast-image-expected.txt: Removed.
  • fast/css/image-rendering-canvas-expected.png: Renamed from LayoutTests/css3/images/optimize-contrast-canvas-expected.png.
  • fast/css/image-rendering-canvas-expected.txt: Renamed from LayoutTests/css3/images/optimize-contrast-canvas-expected.txt.
  • fast/css/image-rendering-canvas.html: Renamed from LayoutTests/css3/images/optimize-contrast-canvas.html.
  • fast/css/image-rendering-expected.txt: Added.
  • fast/css/image-rendering-parsing-expected.txt: Added.
  • fast/css/image-rendering-parsing.html: Renamed from LayoutTests/fast/css/image-set-parsing.html.
  • fast/css/image-rendering.html: Added.
  • fast/css/optimize-contrast-image-expected.html: Added.
  • fast/css/optimize-contrast-image.html: Renamed from LayoutTests/css3/images/optimize-contrast-image.html.
  • fast/css/script-tests/image-rendering-parsing.js: Added.

(testImageRendering):

Location:
trunk
Files:
7 added
3 deleted
11 edited
3 moved

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r148948 r148949  
     12013-04-23  Allan Sandfeld Jensen  <allan.jensen@digia.com>
     2
     3        Respect image-rendering setting for determing image-rendering quality
     4        https://bugs.webkit.org/show_bug.cgi?id=113405
     5
     6        Reviewed by Benjamin Poulain.
     7
     8        Moved the two tests of image-rendering out of CSS3 since it was removed from the final recommendation.
     9        Added tests of the supported values, and upgraded one test to a reference test so that it now tests
     10        that -webkit-optimize-contrast gets converted to and treated as -webkit-crisp-edges.
     11
     12        Baselines for fast/css/image-rendering.html will be uploaded later when the bots have generated them.
     13
     14        * css3/images/optimize-contrast-image-expected.png: Removed.
     15        * css3/images/optimize-contrast-image-expected.txt: Removed.
     16        * fast/css/image-rendering-canvas-expected.png: Renamed from LayoutTests/css3/images/optimize-contrast-canvas-expected.png.
     17        * fast/css/image-rendering-canvas-expected.txt: Renamed from LayoutTests/css3/images/optimize-contrast-canvas-expected.txt.
     18        * fast/css/image-rendering-canvas.html: Renamed from LayoutTests/css3/images/optimize-contrast-canvas.html.
     19        * fast/css/image-rendering-expected.txt: Added.
     20        * fast/css/image-rendering-parsing-expected.txt: Added.
     21        * fast/css/image-rendering-parsing.html: Renamed from LayoutTests/fast/css/image-set-parsing.html.
     22        * fast/css/image-rendering.html: Added.
     23        * fast/css/optimize-contrast-image-expected.html: Added.
     24        * fast/css/optimize-contrast-image.html: Renamed from LayoutTests/css3/images/optimize-contrast-image.html.
     25        * fast/css/script-tests/image-rendering-parsing.js: Added.
     26        (testImageRendering):
     27
    1282013-04-23  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
    229
  • trunk/LayoutTests/fast/css/image-rendering-canvas.html

    r148948 r148949  
    11<!DOCTYPE html>
     2<html>
     3<head>
    24<style>
    3         canvas {
    4                 display: block;
    5                 position: fixed;
    6                 left: 0px;
    7                 top: 0px;
    8                 right: 0px;
    9                 bottom: 0px;
    10                 border: none;
    11                 width: 100px;
    12                 height: 100px;
    13                 margin: 0px;
    14                 padding: 0px;
    15                 image-rendering: -webkit-optimize-contrast;
    16         }
     5    canvas {
     6        display: block;
     7        position: fixed;
     8        left: 0px;
     9        top: 0px;
     10        right: 0px;
     11        bottom: 0px;
     12        border: none;
     13        width: 100px;
     14        height: 100px;
     15        margin: 0px;
     16        padding: 0px;
     17        image-rendering: -webkit-crisp-edges;
     18    }
    1719</style>
     20</head>
    1821<body>
    1922    <!-- The resulting image should be 100x100, consisting of 4 50x50 blocks of solid color, with no blurring of edges -->
    20         <canvas width="2" height="2"></canvas>
     23    <canvas width="2" height="2"></canvas>
    2124</body>
    2225<script>
    2326    if (window.testRunner)
    2427        testRunner.dumpAsText(true);
    25        
    26         var canvas;
    27         var imageHandle;
    28         canvas = document.getElementsByTagName("canvas")[0].getContext("2d");
    29         canvas.width = 2;
    30         canvas.height = 2;
    31         imageHandle = canvas.createImageData(2, 2);
    3228
    33         var index = 0;
    34         var length = imageHandle.data.length;
     29    var canvas;
     30    var imageHandle;
     31    canvas = document.getElementsByTagName("canvas")[0].getContext("2d");
     32    canvas.width = 2;
     33    canvas.height = 2;
     34    imageHandle = canvas.createImageData(2, 2);
     35
     36    var index = 0;
     37    var length = imageHandle.data.length;
    3538
    3639    imageHandle.data[index++] = 255;
     
    5457    imageHandle.data[index++] = 255;
    5558
    56         canvas.putImageData(imageHandle, 0, 0);
     59    canvas.putImageData(imageHandle, 0, 0);
    5760</script>
     61</html>
  • trunk/Source/WebCore/ChangeLog

    r148947 r148949  
     12013-04-23  Allan Sandfeld Jensen  <allan.jensen@digia.com>
     2
     3        Respect image-rendering setting for determing image-rendering quality
     4        https://bugs.webkit.org/show_bug.cgi?id=113405
     5
     6        Reviewed by Benjamin Poulain.
     7
     8        Remove the CSS4 values as they are not ready for implementation yet.
     9        We still parse the -webkit-crisp-edges and SVG compatibility values to
     10        be closer to the the partial support in Gecko and Presto.
     11
     12        Tests: fast/css/image-rendering-canvas.html
     13               fast/css/image-rendering-parsing.html
     14               fast/css/image-rendering.html
     15               fast/css/optimize-contrast-image.html
     16
     17        * css/CSSParser.cpp:
     18        (WebCore::isValidKeywordPropertyAndValue):
     19        * css/CSSPrimitiveValueMappings.h:
     20        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
     21        (WebCore::CSSPrimitiveValue::operator EImageRendering):
     22        * css/CSSValueKeywords.in:
     23        * css/SVGCSSParser.cpp:
     24        (WebCore::CSSParser::parseSVGValue):
     25        * rendering/RenderBoxModelObject.cpp:
     26        (WebCore::ImageQualityController::shouldPaintAtLowQuality):
     27        * rendering/RenderHTMLCanvas.cpp:
     28        (WebCore::RenderHTMLCanvas::paintReplaced):
     29        * rendering/style/RenderStyleConstants.h:
     30
    1312013-04-23  Commit Queue  <rniwa@webkit.org>
    232
  • trunk/Source/WebCore/css/CSSParser.cpp

    r148852 r148949  
    728728            return true;
    729729        break;
    730     case CSSPropertyImageRendering: // auto | crisp-edges | pixelated | -webkit-smooth | optimizeSpeed | optimizeQuality | -webkit-optimize-contrast
    731 #if ENABLE(CSS4_IMAGES)
    732         if (valueID == CSSValueAuto || valueID == CSSValueCrispEdges || valueID == CSSValuePixelated
    733             || valueID == CSSValueWebkitSmooth || valueID == CSSValueWebkitOptimizeContrast
    734             || valueID == CSSValueOptimizespeed || valueID == CSSValueOptimizequality)
     730    case CSSPropertyImageRendering: // auto | optimizeSpeed | optimizeQuality | -webkit-crisp-edges | -webkit-optimize-contrast
     731        if (valueID == CSSValueAuto || valueID == CSSValueOptimizespeed || valueID == CSSValueOptimizequality
     732            || valueID == CSSValueWebkitCrispEdges || valueID == CSSValueWebkitOptimizeContrast)
    735733            return true;
    736 #else
    737         if (valueID == CSSValueAuto || valueID == CSSValueCrispEdges || valueID == CSSValueWebkitOptimizeContrast
    738             || valueID == CSSValueOptimizespeed || valueID == CSSValueOptimizequality)
    739             return true;
    740 #endif
    741734        break;
    742735    case CSSPropertyListStylePosition: // inside | outside | inherit
  • trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h

    r148619 r148949  
    40334033        break;
    40344034    case ImageRenderingCrispEdges:
    4035         m_value.ident = CSSValueCrispEdges;
    4036         break;
    4037     case ImageRenderingPixelated:
    4038         m_value.ident = CSSValuePixelated;
    4039         break;
    4040     case ImageRenderingSmooth:
    4041         m_value.ident = CSSValueWebkitSmooth;
     4035        m_value.ident = CSSValueWebkitCrispEdges;
    40424036        break;
    40434037    case ImageRenderingOptimizeSpeed:
     
    40564050        return ImageRenderingAuto;
    40574051    case CSSValueWebkitOptimizeContrast:
    4058     case CSSValueCrispEdges:
     4052    case CSSValueWebkitCrispEdges:
    40594053        return ImageRenderingCrispEdges;
    4060     case CSSValuePixelated:
    4061         return ImageRenderingPixelated;
    4062     case CSSValueWebkitSmooth:
    4063         return ImageRenderingSmooth;
    40644054    case CSSValueOptimizespeed:
    40654055        return ImageRenderingOptimizeSpeed;
  • trunk/Source/WebCore/css/CSSValueKeywords.in

    r148414 r148949  
    935935// auto
    936936// optimizeSpeed
    937 crisp-edges
    938 pixelated
    939 -webkit-smooth
    940937optimizeQuality
     938-webkit-crisp-edges
    941939-webkit-optimize-contrast
    942940
  • trunk/Source/WebCore/css/SVGCSSParser.cpp

    r147348 r148949  
    132132        break;
    133133
    134     case CSSPropertyImageRendering:  // auto | optimizeSpeed |
    135     case CSSPropertyColorRendering:  // optimizeQuality | inherit
     134    case CSSPropertyColorRendering: // auto | optimizeSpeed | optimizeQuality | inherit
    136135        if (id == CSSValueAuto || id == CSSValueOptimizespeed ||
    137136            id == CSSValueOptimizequality)
  • trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp

    r148208 r148949  
    165165    case ImageRenderingOptimizeSpeed:
    166166    case ImageRenderingCrispEdges:
    167     case ImageRenderingPixelated:
    168167        return true;
    169168    case ImageRenderingOptimizeQuality:
    170     case ImageRenderingSmooth:
    171169        return false;
    172170    case ImageRenderingAuto:
  • trunk/Source/WebCore/rendering/RenderHTMLCanvas.cpp

    r148208 r148949  
    6969    }
    7070
    71     bool useLowQualityScale = style()->imageRendering() == ImageRenderingPixelated || style()->imageRendering() == ImageRenderingCrispEdges || style()->imageRendering() == ImageRenderingOptimizeSpeed;
     71    bool useLowQualityScale = style()->imageRendering() == ImageRenderingCrispEdges || style()->imageRendering() == ImageRenderingOptimizeSpeed;
    7272    static_cast<HTMLCanvasElement*>(node())->paint(paintInfo.context, rect, useLowQualityScale);
    7373}
  • trunk/Source/WebCore/rendering/style/RenderStyleConstants.h

    r148414 r148949  
    480480enum TextOverflow { TextOverflowClip = 0, TextOverflowEllipsis };
    481481
    482 enum EImageRendering {
    483     ImageRenderingAuto, ImageRenderingOptimizeSpeed, ImageRenderingOptimizeQuality,
    484     ImageRenderingCrispEdges, ImageRenderingPixelated, ImageRenderingSmooth
    485 };
     482enum EImageRendering { ImageRenderingAuto = 0, ImageRenderingOptimizeSpeed, ImageRenderingOptimizeQuality, ImageRenderingCrispEdges };
    486483
    487484enum ImageResolutionSource { ImageResolutionSpecified = 0, ImageResolutionFromImage };
  • trunk/Tools/ChangeLog

    r148934 r148949  
     12013-04-23  Allan Sandfeld Jensen  <allan.jensen@digia.com>
     2
     3        Respect image-rendering setting for determing image-rendering quality
     4        https://bugs.webkit.org/show_bug.cgi?id=113405
     5
     6        Reviewed by Benjamin Poulain.
     7
     8        Remove CSS4 Images option. It is not ready for implementation.
     9
     10        * Scripts/webkitperl/FeatureList.pm:
     11
    1122013-04-22  Mark Rowe  <mrowe@apple.com>
    213
  • trunk/Tools/Scripts/webkitperl/FeatureList.pm

    r148208 r148949  
    200200      define => "ENABLE_CSS3_TEXT_LINE_BREAK", default => 0, value => \$css3TextLineBreakSupport },
    201201
    202     { option => "css4-images", desc => "Toggle CSS4 Images support",
    203       define => "ENABLE_CSS4_IMAGES", default => 0, value => \$css4ImagesSupport },
    204 
    205202    { option => "css-box-decoration-break", desc => "Toggle CSS box-decoration-break support",
    206203      define => "ENABLE_CSS_BOX_DECORATION_BREAK", default => 1, value => \$cssBoxDecorationBreakSupport },
Note: See TracChangeset for help on using the changeset viewer.