Changeset 120308 in webkit


Ignore:
Timestamp:
Jun 14, 2012 3:20:51 AM (12 years ago)
Author:
commit-queue@webkit.org
Message:

Add dpcm to css3-images image-resolution
https://bugs.webkit.org/show_bug.cgi?id=85442

Patch by David Barr <davidbarr@chromium.org> on 2012-06-14
Reviewed by Tony Chang.

Source/WebCore:

The css3-images module is at candidate recommendation.
http://www.w3.org/TR/2012/CR-css3-images-20120417/#the-image-resolution

No new tests; extended fast/css/image-resolution/image-resolution.html

  • css/CSSGrammar.y: Add DPCM token and unary term.
  • css/CSSParser.cpp: Extend range of units accepted for resolution and tokenize "dpcm".

(WebCore::CSSParser::validUnit): Accept CSSPrimitiveValue::CSS_DPCM.
(WebCore::CSSParser::createPrimitiveNumericValue): Accept CSSPrimitiveValue::CSS_DPCM.
(WebCore::unitFromString): Map "dpcm" to CSSPrimitiveValue::CSS_DPCM.
(WebCore::CSSParser::parseValidPrimitive): Accept CSSPrimitiveValue::CSS_DPCM.
(WebCore::CSSParser::detectNumberToken): Map "dpcm" to CSSPrimitiveValue::CSS_DPCM.

  • css/CSSPrimitiveValue.cpp: Add CSSPrimitiveValue::CSS_DPCM as a numeric unit.

(WebCore::isValidCSSUnitTypeForDoubleConversion): Accept CSSPrimitiveValue::CSS_DPCM.
(WebCore::unitCategory): Map CSSPrimitiveValue::CSS_DPCM to CSSPrimitiveValue::UResolution.
(WebCore::conversionToCanonicalUnitsScaleFactor): Scale CSSPrimitiveValue::CSS_DPCM to CSSPrimitiveValue::CSS_DPPX.
(WebCore::CSSPrimitiveValue::customCssText): Format CSSPrimitiveValue::CSS_DPCM as "<num>dpcm".
(WebCore::CSSPrimitiveValue::cloneForCSSOM): Accept CSSPrimitiveValue::CSS_DPCM as numeric unit.

  • css/CSSPrimitiveValue.h: Add CSSPrimitiveValue::CSS_DPCM.

LayoutTests:

  • fast/css/image-resolution/image-resolution-expected.txt:
  • fast/css/image-resolution/image-resolution.html:
Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r120303 r120308  
     12012-06-14  David Barr  <davidbarr@chromium.org>
     2
     3        Add dpcm to css3-images image-resolution
     4        https://bugs.webkit.org/show_bug.cgi?id=85442
     5
     6        Reviewed by Tony Chang.
     7
     8        * fast/css/image-resolution/image-resolution-expected.txt:
     9        * fast/css/image-resolution/image-resolution.html:
     10
    1112012-06-14  Matt Falkenhagen  <falken@chromium.org>
    212
  • trunk/LayoutTests/fast/css/image-resolution/image-resolution-expected.txt

    r120194 r120308  
    5656PASS img.offsetWidth is 2
    5757PASS img.offsetHeight is 2
     58TEST "0dpcm"
     59PASS img.style.cssText is ""
     60TEST "37.7dpcm"
     61PASS img.style.cssText is "image-resolution: 37.7dpcm; "
     62PASS img.offsetWidth is 16
     63PASS img.offsetHeight is 16
     64TEST "75.5dpcm"
     65PASS img.style.cssText is "image-resolution: 75.5dpcm; "
     66PASS img.offsetWidth is 8
     67PASS img.offsetHeight is 8
     68TEST "113.3dpcm"
     69PASS img.style.cssText is "image-resolution: 113.3dpcm; "
     70PASS img.offsetWidth is 5
     71PASS img.offsetHeight is 5
     72TEST "151.1dpcm"
     73PASS img.style.cssText is "image-resolution: 151.1dpcm; "
     74PASS img.offsetWidth is 4
     75PASS img.offsetHeight is 4
    5876TEST ""
    5977PASS img.style.cssText is ""
  • trunk/LayoutTests/fast/css/image-resolution/image-resolution.html

    r120194 r120308  
    6262var resolutions = ['0dppx', '1dppx', '2dppx', '3dppx', '4dppx',
    6363                   '0dpi', '96dpi', '192dpi', '288dpi', '384dpi',
    64                    '150dpi', '300dpi', '450dpi', '600dpi', ''];
     64                   '150dpi', '300dpi', '450dpi', '600dpi',
     65                   '0dpcm', '37.7dpcm', '75.5dpcm', '113.3dpcm', '151.1dpcm', ''];
    6566
    6667img.onload = function() {
  • trunk/Source/WebCore/ChangeLog

    r120306 r120308  
     12012-06-14  David Barr  <davidbarr@chromium.org>
     2
     3        Add dpcm to css3-images image-resolution
     4        https://bugs.webkit.org/show_bug.cgi?id=85442
     5
     6        Reviewed by Tony Chang.
     7
     8        The css3-images module is at candidate recommendation.
     9        http://www.w3.org/TR/2012/CR-css3-images-20120417/#the-image-resolution
     10
     11        No new tests; extended fast/css/image-resolution/image-resolution.html
     12
     13        * css/CSSGrammar.y: Add DPCM token and unary term.
     14        * css/CSSParser.cpp: Extend range of units accepted for resolution and tokenize "dpcm".
     15        (WebCore::CSSParser::validUnit): Accept CSSPrimitiveValue::CSS_DPCM.
     16        (WebCore::CSSParser::createPrimitiveNumericValue): Accept CSSPrimitiveValue::CSS_DPCM.
     17        (WebCore::unitFromString): Map "dpcm" to CSSPrimitiveValue::CSS_DPCM.
     18        (WebCore::CSSParser::parseValidPrimitive): Accept CSSPrimitiveValue::CSS_DPCM.
     19        (WebCore::CSSParser::detectNumberToken): Map "dpcm" to CSSPrimitiveValue::CSS_DPCM.
     20        * css/CSSPrimitiveValue.cpp: Add CSSPrimitiveValue::CSS_DPCM as a numeric unit.
     21        (WebCore::isValidCSSUnitTypeForDoubleConversion): Accept CSSPrimitiveValue::CSS_DPCM.
     22        (WebCore::unitCategory): Map CSSPrimitiveValue::CSS_DPCM to CSSPrimitiveValue::UResolution.
     23        (WebCore::conversionToCanonicalUnitsScaleFactor): Scale CSSPrimitiveValue::CSS_DPCM to CSSPrimitiveValue::CSS_DPPX.
     24        (WebCore::CSSPrimitiveValue::customCssText): Format CSSPrimitiveValue::CSS_DPCM as "<num>dpcm".
     25        (WebCore::CSSPrimitiveValue::cloneForCSSOM): Accept CSSPrimitiveValue::CSS_DPCM as numeric unit.
     26        * css/CSSPrimitiveValue.h: Add CSSPrimitiveValue::CSS_DPCM.
     27
    1282012-06-14  Ilya Tikhonovsky  <loislo@chromium.org>
    229
  • trunk/Source/WebCore/css/CSSGrammar.y

    r120194 r120308  
    102102%}
    103103
    104 %expect 62
     104%expect 63
    105105
    106106%nonassoc LOWEST_PREC
     
    197197%token <number> DPPX
    198198%token <number> DPI
     199%token <number> DPCM
    199200
    200201%token <string> URI
     
    15001501  | DPPX maybe_space { $$.id = 0; $$.fValue = $1; $$.unit = CSSPrimitiveValue::CSS_DPPX; }
    15011502  | DPI maybe_space { $$.id = 0; $$.fValue = $1; $$.unit = CSSPrimitiveValue::CSS_DPI; }
     1503  | DPCM maybe_space { $$.id = 0; $$.fValue = $1; $$.unit = CSSPrimitiveValue::CSS_DPCM; }
    15021504  ;
    15031505
  • trunk/Source/WebCore/css/CSSParser.cpp

    r120194 r120308  
    13711371    case CSSPrimitiveValue::CSS_DPPX:
    13721372    case CSSPrimitiveValue::CSS_DPI:
     1373    case CSSPrimitiveValue::CSS_DPCM:
    13731374        b = (unitflags & FResolution);
    13741375        break;
     
    14011402           || (value->unit >= CSSPrimitiveValue::CSS_TURN && value->unit <= CSSPrimitiveValue::CSS_REMS)
    14021403           || (value->unit >= CSSPrimitiveValue::CSS_VW && value->unit <= CSSPrimitiveValue::CSS_VMIN)
    1403            || (value->unit >= CSSPrimitiveValue::CSS_DPPX && value->unit <= CSSPrimitiveValue::CSS_DPI));
     1404           || (value->unit >= CSSPrimitiveValue::CSS_DPPX && value->unit <= CSSPrimitiveValue::CSS_DPCM));
    14041405#else
    14051406    ASSERT((value->unit >= CSSPrimitiveValue::CSS_NUMBER && value->unit <= CSSPrimitiveValue::CSS_KHZ)
     
    14661467    if (equal(value->string, "dpi"))
    14671468        return CSSPrimitiveValue::CSS_DPI;
     1469    if (equal(value->string, "dpcm"))
     1470        return CSSPrimitiveValue::CSS_DPCM;
    14681471#endif
    14691472
     
    15211524        return createPrimitiveNumericValue(value);
    15221525#if ENABLE(CSS_IMAGE_RESOLUTION)
    1523     if (value->unit >= CSSPrimitiveValue::CSS_DPPX && value->unit <= CSSPrimitiveValue::CSS_DPI)
     1526    if (value->unit >= CSSPrimitiveValue::CSS_DPPX && value->unit <= CSSPrimitiveValue::CSS_DPCM)
    15241527        return createPrimitiveNumericValue(value);
    15251528#endif
     
    83788381#if ENABLE(CSS_IMAGE_RESOLUTION)
    83798382        else if (length > 2 && isASCIIAlphaCaselessEqual(type[1], 'p')) {
    8380             // There is a discussion about the name of this unit on www-style.
    8381             // Keep this compile time guard in place until that is resolved.
    8382             // http://lists.w3.org/Archives/Public/www-style/2012May/0915.html
    8383             if (length == 4 && isASCIIAlphaCaselessEqual(type[2], 'p') && isASCIIAlphaCaselessEqual(type[3], 'x'))
    8384                 m_token = DPPX;
    8385             else if (length == 3 && isASCIIAlphaCaselessEqual(type[2], 'i'))
    8386                 m_token = DPI;
     8383            if (length == 4) {
     8384                // There is a discussion about the name of this unit on www-style.
     8385                // Keep this compile time guard in place until that is resolved.
     8386                // http://lists.w3.org/Archives/Public/www-style/2012May/0915.html
     8387                if (isASCIIAlphaCaselessEqual(type[2], 'p') && isASCIIAlphaCaselessEqual(type[3], 'x'))
     8388                    m_token = DPPX;
     8389                else if (isASCIIAlphaCaselessEqual(type[2], 'c') && isASCIIAlphaCaselessEqual(type[3], 'm'))
     8390                    m_token = DPCM;
     8391            } else if (length == 3 && isASCIIAlphaCaselessEqual(type[2], 'i'))
     8392                    m_token = DPI;
    83878393        }
    83888394#endif
  • trunk/Source/WebCore/css/CSSPrimitiveValue.cpp

    r120194 r120308  
    6464    case CSSPrimitiveValue:: CSS_DPPX:
    6565    case CSSPrimitiveValue:: CSS_DPI:
     66    case CSSPrimitiveValue:: CSS_DPCM:
    6667#endif
    6768    case CSSPrimitiveValue:: CSS_EMS:
     
    9394    case CSSPrimitiveValue:: CSS_DPPX:
    9495    case CSSPrimitiveValue:: CSS_DPI:
     96    case CSSPrimitiveValue:: CSS_DPCM:
    9597#endif
    9698    case CSSPrimitiveValue:: CSS_IDENT:
     
    152154    case CSSPrimitiveValue:: CSS_DPPX:
    153155    case CSSPrimitiveValue:: CSS_DPI:
     156    case CSSPrimitiveValue:: CSS_DPCM:
    154157        return CSSPrimitiveValue::UResolution;
    155158#endif
     
    568571            factor = cssPixelsPerInch / 2.54; // (2.54 cm/in)
    569572            break;
     573        case CSSPrimitiveValue::CSS_DPCM:
     574            factor = 2.54 / cssPixelsPerInch; // (2.54 cm/in)
     575            break;
    570576        case CSSPrimitiveValue::CSS_MM:
    571577            factor = cssPixelsPerInch / 25.4;
     
    864870        case CSS_DPI:
    865871            text = formatNumber(m_value.num) + "dpi";
     872            break;
     873        case CSS_DPCM:
     874            text = formatNumber(m_value.num) + "dpcm";
    866875            break;
    867876#endif
     
    12081217    case CSS_DPPX:
    12091218    case CSS_DPI:
     1219    case CSS_DPCM:
    12101220#endif
    12111221        result = CSSPrimitiveValue::create(m_value.num, static_cast<UnitTypes>(m_primitiveUnitType));
  • trunk/Source/WebCore/css/CSSPrimitiveValue.h

    r120194 r120308  
    9898        CSS_DPPX = 29,
    9999        CSS_DPI = 30,
     100        CSS_DPCM = 31,
    100101        CSS_PAIR = 100, // We envision this being exposed as a means of getting computed style values for pairs (border-spacing/radius, background-position, etc.)
    101102        CSS_DASHBOARD_REGION = 101, // FIXME: Dashboard region should not be a primitive value.
Note: See TracChangeset for help on using the changeset viewer.