[webkit-changes] [WebKit/WebKit] 1db24f: Regression(279037 at main) Safari stopped rendering s...
Vitor Roriz
noreply at github.com
Tue Oct 29 16:55:13 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 1db24f6817a9f935c5e5cc8ccf1f740e40c6f285
https://github.com/WebKit/WebKit/commit/1db24f6817a9f935c5e5cc8ccf1f740e40c6f285
Author: Vitor Roriz <vitor.roriz at apple.com>
Date: 2024-10-29 (Tue, 29 Oct 2024)
Changed paths:
A LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-shadow/text-shadow-emoji-transparent-expected.html
A LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-shadow/text-shadow-emoji-transparent-ref.html
A LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-shadow/text-shadow-emoji-transparent.html
M Source/WebCore/platform/graphics/FontCascade.h
M Source/WebCore/platform/graphics/cairo/FontCairoHarfbuzzNG.cpp
M Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp
M Source/WebCore/platform/graphics/skia/FontCascadeSkia.cpp
M Source/WebCore/platform/graphics/win/FontWin.cpp
M Source/WebCore/rendering/TextBoxPainter.cpp
M Source/WebCore/rendering/TextPainter.cpp
M Source/WebCore/rendering/TextPainter.h
Log Message:
-----------
Regression(279037 at main) Safari stopped rendering shadow under emoji when color is set to transparent.
https://bugs.webkit.org/show_bug.cgi?id=282068
rdar://136067858
Reviewed by Simon Fraser.
The bug comes from the fact that invisible glyphs that are drawn
as an image won't be recorded into the glyph display list, even if
they have an associated shadow. When that happens we still try to
replay the cached DisplayList instead of drawing the glyph with the
appropriate mutated GraphicsContext.
CoreText won't call the drawImage delegate for glyphs that are invisible,
even if they have an associated shadow applied to its graphic context.
This would result in a glyph display list without the invisible glyph which
is drawn as image and we would not draw its associated shadow.
Therefore, we won't use a display list for runs that are invisible and have
an associated shadow for CoreText platorm use case.
* LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-shadow/text-shadow-emoji-transparent-expected.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-shadow/text-shadow-emoji-transparent-ref.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-shadow/text-shadow-emoji-transparent.html: Added.
* Source/WebCore/rendering/GlyphDisplayListCache.cpp:
(WebCore::GlyphDisplayListCache::getDisplayList):
Canonical link: https://commits.webkit.org/285870@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list