⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 252701 in webkit


Ignore:
Timestamp:
Nov 20, 2019, 12:33:39 PM (7 years ago)
Author:
Simon Fraser
Message:

Turn off antialiasing when rendering with Ahem, for testing
​https://bugs.webkit.org/show_bug.cgi?id=204197
Source/WebCore:

<rdar://problem/57190712>

Reviewed by Myles C. Maxfield.

If the font family name matches "Ahem", turn off antialiasing when rendering text,
because many CSS tests assume that Ahem glyphs can be compared with positioned elements
in ref tests.

Since Ahem is a font only used for testing, I don't think this behavior needs to be
controlled by a setting.

  • platform/graphics/Font.cpp:

(WebCore::Font::Font):

  • platform/graphics/Font.h:

(WebCore::Font::allowsAntialiasing const):

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::drawGlyphs):

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::isAhemFont):
(WebCore::Font::platformInit):

LayoutTests:

Reviewed by Myles C. Maxfield.

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r252698 r252701  
     12019-11-20  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Turn off antialiasing when rendering with Ahem, for testing
     4        https://bugs.webkit.org/show_bug.cgi?id=204197
     5
     6        Reviewed by Myles C. Maxfield.
     7
     8        * TestExpectations:
     9
    1102019-11-20  Per Arne Vollan  <pvollan@apple.com>
    211
  • trunk/LayoutTests/TestExpectations

    r252598 r252701  
    18741874imported/w3c/web-platform-tests/css/css-multicol/columnfill-auto-max-height-002.html
    18751875imported/w3c/web-platform-tests/css/css-multicol/large-actual-column-count.html
    1876 imported/w3c/web-platform-tests/css/css-multicol/multicol-basic-001.html [ ImageOnlyFailure ]
    1877 imported/w3c/web-platform-tests/css/css-multicol/multicol-basic-002.html [ ImageOnlyFailure ]
    1878 imported/w3c/web-platform-tests/css/css-multicol/multicol-basic-003.html [ ImageOnlyFailure ]
    1879 imported/w3c/web-platform-tests/css/css-multicol/multicol-basic-004.html [ ImageOnlyFailure ]
    18801876imported/w3c/web-platform-tests/css/css-multicol/multicol-breaking-000.html
    18811877imported/w3c/web-platform-tests/css/css-multicol/multicol-breaking-001.html [ ImageOnlyFailure ]
    … …  
    19021898imported/w3c/web-platform-tests/css/css-multicol/multicol-nested-margin-004.xht [ ImageOnlyFailure ]
    19031899imported/w3c/web-platform-tests/css/css-multicol/multicol-nested-margin-005.xht [ ImageOnlyFailure ]
    1904 imported/w3c/web-platform-tests/css/css-multicol/multicol-rule-002.xht [ ImageOnlyFailure ]
    19051900webkit.org/b/148816 imported/w3c/web-platform-tests/css/css-multicol/multicol-rule-004.xht [ ImageOnlyFailure ]
    19061901imported/w3c/web-platform-tests/css/css-multicol/multicol-rule-color-inherit-002.xht [ ImageOnlyFailure ]
    1907 imported/w3c/web-platform-tests/css/css-multicol/multicol-rule-fraction-003.xht [ ImageOnlyFailure ]
    19081902imported/w3c/web-platform-tests/css/css-multicol/multicol-rule-nested-balancing-001.html
    19091903imported/w3c/web-platform-tests/css/css-multicol/multicol-rule-nested-balancing-002.html
    19101904imported/w3c/web-platform-tests/css/css-multicol/multicol-rule-nested-balancing-003.html
    19111905imported/w3c/web-platform-tests/css/css-multicol/multicol-rule-nested-balancing-004.html
    1912 imported/w3c/web-platform-tests/css/css-multicol/multicol-rule-px-001.xht [ ImageOnlyFailure ]
    1913 imported/w3c/web-platform-tests/css/css-multicol/multicol-rule-shorthand-2.xht [ ImageOnlyFailure ]
    1914 imported/w3c/web-platform-tests/css/css-multicol/multicol-rule-stacking-001.xht [ ImageOnlyFailure ]
    1915 imported/w3c/web-platform-tests/css/css-multicol/multicol-shorthand-001.xht [ ImageOnlyFailure ]
    19161906imported/w3c/web-platform-tests/css/css-multicol/multicol-span-all-004.html
    19171907imported/w3c/web-platform-tests/css/css-multicol/multicol-span-all-010.html
    1918 imported/w3c/web-platform-tests/css/css-multicol/multicol-span-all-block-sibling-003.xht [ ImageOnlyFailure ]
    19191908imported/w3c/web-platform-tests/css/css-multicol/multicol-span-all-button-001.html
    19201909imported/w3c/web-platform-tests/css/css-multicol/multicol-span-all-button-002.html
    … …  
    19241913imported/w3c/web-platform-tests/css/css-multicol/multicol-span-all-children-height-008.html
    19251914imported/w3c/web-platform-tests/css/css-multicol/multicol-span-all-margin-002.xht [ ImageOnlyFailure ]
    1926 imported/w3c/web-platform-tests/css/css-multicol/multicol-span-all-margin-bottom-001.xht [ ImageOnlyFailure ]
    19271915imported/w3c/web-platform-tests/css/css-multicol/multicol-span-all-margin-nested-001.xht [ ImageOnlyFailure ]
    19281916imported/w3c/web-platform-tests/css/css-multicol/multicol-span-all-margin-nested-002.xht [ ImageOnlyFailure ]
    19291917imported/w3c/web-platform-tests/css/css-multicol/multicol-span-all-margin-nested-003.xht [ ImageOnlyFailure ]
    1930 imported/w3c/web-platform-tests/css/css-multicol/multicol-span-all-margin-nested-firstchild-001.xht [ ImageOnlyFailure ]
    19311918imported/w3c/web-platform-tests/css/css-multicol/multicol-span-all-rule-001.html
    1932 imported/w3c/web-platform-tests/css/css-multicol/multicol-span-none-001.xht [ ImageOnlyFailure ]
    19331919imported/w3c/web-platform-tests/css/css-multicol/multicol-under-vertical-rl-scroll.html
    19341920imported/w3c/web-platform-tests/css/css-multicol/multicol-width-004.html
    … …  
    23002286webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/line-breaking/line-breaking-ic-002.html [ ImageOnlyFailure ]
    23012287webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/line-breaking/line-breaking-ic-003.html [ ImageOnlyFailure ]
    2302 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-001.html [ ImageOnlyFailure ]
    2303 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-002.html [ ImageOnlyFailure ]
    2304 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-003.html [ ImageOnlyFailure ]
    2305 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-004.html [ ImageOnlyFailure ]
    2306 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-005.html [ ImageOnlyFailure ]
    2307 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-006.html [ ImageOnlyFailure ]
    2308 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-007.html [ ImageOnlyFailure ]
    2309 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-008.html [ ImageOnlyFailure ]
    2310 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-009.html [ ImageOnlyFailure ]
    2311 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-010.html [ ImageOnlyFailure ]
    2312 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-014.html [ ImageOnlyFailure ]
    2313 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-015.html [ ImageOnlyFailure ]
    2314 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-016.html [ ImageOnlyFailure ]
    2315 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-017.html [ ImageOnlyFailure ]
    2316 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-001.html [ ImageOnlyFailure ]
    2317 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-002.html [ ImageOnlyFailure ]
    2318 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-003.html [ ImageOnlyFailure ]
    2319 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-004.html [ ImageOnlyFailure ]
    2320 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-005.html [ ImageOnlyFailure ]
    2321 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-006.html [ ImageOnlyFailure ]
    23222288webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-001.html [ ImageOnlyFailure ]
    23232289webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-002.html [ ImageOnlyFailure ]
    … …  
    23282294webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-010.html [ ImageOnlyFailure ]
    23292295webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-011.html [ ImageOnlyFailure ]
    2330 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-001.html [ ImageOnlyFailure ]
    2331 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-002.html [ ImageOnlyFailure ]
    2332 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-003.html [ ImageOnlyFailure ]
    2333 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-004.html [ ImageOnlyFailure ]
    2334 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-005.html [ ImageOnlyFailure ]
    2335 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-006.html [ ImageOnlyFailure ]
    2336 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-007.html [ ImageOnlyFailure ]
    2337 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-008.html [ ImageOnlyFailure ]
    2338 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-009.html [ ImageOnlyFailure ]
    2339 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-010.html [ ImageOnlyFailure ]
    2340 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-014.html [ ImageOnlyFailure ]
    2341 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-015.html [ ImageOnlyFailure ]
    2342 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-016.html [ ImageOnlyFailure ]
    2343 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-017.html [ ImageOnlyFailure ]
    23442296webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-indent/text-indent-percentage-001.xht [ ImageOnlyFailure ]
    23452297webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-001.html [ ImageOnlyFailure ]
  • trunk/Source/WebCore/ChangeLog

    r252696 r252701  
     12019-11-20  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Turn off antialiasing when rendering with Ahem, for testing
     4        https://bugs.webkit.org/show_bug.cgi?id=204197
     5        <rdar://problem/57190712>
     6
     7        Reviewed by Myles C. Maxfield.
     8
     9        If the font family name matches "Ahem", turn off antialiasing when rendering text,
     10        because many CSS tests assume that Ahem glyphs can be compared with positioned elements
     11        in ref tests.
     12
     13        Since Ahem is a font only used for testing, I don't think this behavior needs to be
     14        controlled by a setting.
     15
     16        * platform/graphics/Font.cpp:
     17        (WebCore::Font::Font):
     18        * platform/graphics/Font.h:
     19        (WebCore::Font::allowsAntialiasing const):
     20        * platform/graphics/cocoa/FontCascadeCocoa.mm:
     21        (WebCore::FontCascade::drawGlyphs):
     22        * platform/graphics/cocoa/FontCocoa.mm:
     23        (WebCore::isAhemFont):
     24        (WebCore::Font::platformInit):
     25
    1262019-11-20  Zalan Bujtas  <zalan@apple.com>
    227
  • trunk/Source/WebCore/platform/graphics/Font.cpp

    r251900 r252701  
    6363    , m_hasVerticalGlyphs(false)
    6464    , m_isUsedInSystemFallbackCache(false)
     65    , m_allowsAntialiasing(true)
    6566#if PLATFORM(IOS_FAMILY)
    6667    , m_shouldNotBeUsedForArabic(false)
  • trunk/Source/WebCore/platform/graphics/Font.h

    r250595 r252701  
    184184    bool isInterstitial() const { return m_isInterstitial; }
    185185    Visibility visibility() const { return m_visibility; }
     186    bool allowsAntialiasing() const { return m_allowsAntialiasing; }
    186187
    187188#if !LOG_DISABLED
    … …  
    311312
    312313    unsigned m_isUsedInSystemFallbackCache : 1;
     314   
     315    unsigned m_allowsAntialiasing : 1;
    313316
    314317#if PLATFORM(IOS_FAMILY)
  • trunk/Source/WebCore/platform/graphics/cocoa/FontCascadeCocoa.mm

    r252622 r252701  
    210210    bool shouldSmoothFonts = true;
    211211   
     212    if (!font.allowsAntialiasing())
     213        smoothingMode = FontSmoothingMode::NoSmoothing;
     214
    212215    switch (smoothingMode) {
    213216    case FontSmoothingMode::Antialiased:
  • trunk/Source/WebCore/platform/graphics/cocoa/FontCocoa.mm

    r245393 r252701  
    114114#endif
    115115
     116static bool isAhemFont(CFStringRef familyName)
     117{
     118    return familyName && caseInsensitiveCompare(familyName, CFSTR("Ahem"));
     119}
     120
    116121void Font::platformInit()
    117122{
    … …  
    142147
    143148    auto familyName = adoptCF(CTFontCopyFamilyName(m_platformData.font()));
     149
     150    // Disable antialiasing when rendering with Ahem because many tests require this.
     151    if (isAhemFont(familyName.get()))
     152        m_allowsAntialiasing = false;
     153
    144154#if PLATFORM(MAC)
    145155    // We need to adjust Times, Helvetica, and Courier to closely match the
Note: See TracChangeset for help on using the changeset viewer.