Changeset 278262 in webkit


Ignore:
Timestamp:
May 30, 2021 5:52:19 PM (14 months ago)
Author:
weinig@apple.com
Message:

Add additional target luminance keywords for color-contrast() added for https://github.com/w3c/csswg-drafts/issues/6311
https://bugs.webkit.org/show_bug.cgi?id=226438

Reviewed by Chris Dumez.

Source/WebCore:

Add newly spec'd target luminance keywords.

  • css/CSSValueKeywords.in:

Add AAA and AAA-large keywords.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseColorContrastFunctionParameters):
Add target luminance mappings for "AAA" -> 7 and "AAA-large" -> 4.5

LayoutTests:

Update test and results for new AAA and AAA-large target luminance keywords.

  • fast/css/parsing-color-contrast-expected.txt:
  • fast/css/parsing-color-contrast.html:
Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r278261 r278262  
     12021-05-30  Sam Weinig  <weinig@apple.com>
     2
     3        Add additional target luminance keywords for color-contrast() added for https://github.com/w3c/csswg-drafts/issues/6311
     4        https://bugs.webkit.org/show_bug.cgi?id=226438
     5
     6        Reviewed by Chris Dumez.
     7
     8        Update test and results for new AAA and AAA-large target luminance keywords.
     9
     10        * fast/css/parsing-color-contrast-expected.txt:
     11        * fast/css/parsing-color-contrast.html:
     12
    1132021-05-30  Sam Weinig  <weinig@apple.com>
    214
  • trunk/LayoutTests/fast/css/parsing-color-contrast-expected.txt

    r275826 r278262  
    2121PASS computedStyle("background-color", "color-contrast(wheat vs bisque, darkgoldenrod, olive, sienna, darkgreen, maroon to AA)") is "rgb(0, 100, 0)"
    2222PASS computedStyle("background-color", "color-contrast(wheat vs bisque, darkgoldenrod, olive, sienna, darkgreen, maroon to AA-large)") is "rgb(128, 128, 0)"
     23PASS computedStyle("background-color", "color-contrast(wheat vs bisque, darkgoldenrod, olive, sienna, darkgreen, maroon to AAA)") is "rgb(128, 0, 0)"
     24PASS computedStyle("background-color", "color-contrast(wheat vs bisque, darkgoldenrod, olive, sienna, darkgreen, maroon to AAA-large)") is "rgb(0, 100, 0)"
    2325PASS computedStyle("background-color", "color-contrast(wheat vs bisque, darkgoldenrod, olive, sienna, darkgreen, maroon to 5.8)") is "rgb(128, 0, 0)"
    2426
  • trunk/LayoutTests/fast/css/parsing-color-contrast.html

    r275826 r278262  
    4848    testComputed(`color-contrast(wheat vs bisque, darkgoldenrod, olive, sienna, darkgreen, maroon to AA)`, `rgb(0, 100, 0)`); // darkgreen
    4949    testComputed(`color-contrast(wheat vs bisque, darkgoldenrod, olive, sienna, darkgreen, maroon to AA-large)`, `rgb(128, 128, 0)`); // olive
    50     testComputed(`color-contrast(wheat vs bisque, darkgoldenrod, olive, sienna, darkgreen, maroon to 5.8)`, `rgb(128, 0, 0)`); // olive maroon
     50    testComputed(`color-contrast(wheat vs bisque, darkgoldenrod, olive, sienna, darkgreen, maroon to AAA)`, `rgb(128, 0, 0)`); // maroon
     51    testComputed(`color-contrast(wheat vs bisque, darkgoldenrod, olive, sienna, darkgreen, maroon to AAA-large)`, `rgb(0, 100, 0)`); // darkgreen
     52    testComputed(`color-contrast(wheat vs bisque, darkgoldenrod, olive, sienna, darkgreen, maroon to 5.8)`, `rgb(128, 0, 0)`); // maroon
    5153   
    5254    debug('');
  • trunk/Source/WebCore/ChangeLog

    r278261 r278262  
     12021-05-30  Sam Weinig  <weinig@apple.com>
     2
     3        Add additional target luminance keywords for color-contrast() added for https://github.com/w3c/csswg-drafts/issues/6311
     4        https://bugs.webkit.org/show_bug.cgi?id=226438
     5
     6        Reviewed by Chris Dumez.
     7
     8        Add newly spec'd target luminance keywords.
     9
     10        * css/CSSValueKeywords.in:
     11        Add AAA and AAA-large keywords.
     12
     13        * css/parser/CSSPropertyParserHelpers.cpp:
     14        (WebCore::CSSPropertyParserHelpers::parseColorContrastFunctionParameters):
     15        Add target luminance mappings for "AAA" -> 7 and "AAA-large" -> 4.5
     16
    1172021-05-30  Sam Weinig  <weinig@apple.com>
    218
  • trunk/Source/WebCore/css/CSSValueKeywords.in

    r277949 r278262  
    14491449AA
    14501450AA-large
     1451AAA
     1452AAA-large
    14511453
    14521454// color-mix()
  • trunk/Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp

    r278261 r278262  
    17371737        return { };
    17381738
     1739    constexpr std::pair<CSSValueID, double> targetLuminanceMappings[] {
     1740        { CSSValueAA, 4.5 },
     1741        { CSSValueAALarge, 3.0 },
     1742        { CSSValueAAA, 7.0 },
     1743        { CSSValueAAALarge, 4.5 },
     1744    };
     1745
    17391746    if (consumedTo) {
    17401747        auto targetContrast = [&] () -> std::optional<double> {
    1741             if (consumeIdentRaw<CSSValueAA>(args))
    1742                 return 4.5;
    1743             if (consumeIdentRaw<CSSValueAALarge>(args))
    1744                 return 3.0;
     1748            if (args.peek().type() == IdentToken) {
     1749                auto id = args.consumeIncludingWhitespace().id();
     1750                for (auto& [identifier, luminance] : targetLuminanceMappings) {
     1751                    if (identifier == id)
     1752                        return luminance;
     1753                }
     1754                return std::nullopt;
     1755            }
    17451756            return consumeNumberRaw(args);
    17461757        }();
Note: See TracChangeset for help on using the changeset viewer.