Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d621347fbb522a61863862482451ae76e47d696f https://github.com/WebKit/WebKit/commit/d621347fbb522a61863862482451ae76e47d696f Author: Elika Etemad <fantasai.b...@inkedblade.net> Date: 2024-07-16 (Tue, 16 Jul 2024)
Changed paths: A LayoutTests/fast/text/font-fallback-expected.html A LayoutTests/fast/text/font-fallback.html A LayoutTests/fast/text/postscript-bold-expected.html A LayoutTests/fast/text/postscript-bold.html M LayoutTests/platform/win/TestExpectations M Source/WebCore/platform/graphics/Font.h M Source/WebCore/platform/graphics/FontPlatformData.h M Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp M Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp M Source/WebCore/platform/graphics/coretext/FontCoreText.cpp M Source/WebCore/platform/graphics/coretext/FontPlatformDataCoreText.cpp M Source/WebCore/platform/graphics/mac/ComplexTextControllerCoreText.mm Log Message: ----------- Don't mix up glyph IDs when multiple installed fonts share a name https://bugs.webkit.org/show_bug.cgi?id=167068 rdar://129891005 Reviewed by Vitor Roriz. On CoreText platforms, we store two CTFontRefs for a given Font. If they end up pointing to different fonts, this causes major problems such as mixing up glyph IDs and rendering nonsense text. This patch merges them into a single object by * Dropping the LastResort CoreText fallback, which seems no longer needed. * Applying the width variants for all uses, which should be more correct anyway. * Updating all callers accordingly. * Source/WebCore/platform/graphics/Font.h: (WebCore::Font::getCTFont const): * Source/WebCore/platform/graphics/FontPlatformData.h: (WebCore::FontPlatformData::ctFont const): (WebCore::FontPlatformData::font const): Deleted. * Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::FontCache::systemFallbackForCharacterCluster): * Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp: (WebCore::FontCascade::primaryFontIsSystemFont const): * Source/WebCore/platform/graphics/coretext/FontCoreText.cpp: (WebCore::Font::platformInit): (WebCore::Font::platformCharWidthInit): (WebCore::Font::supportsSmallCaps const): (WebCore::Font::supportsAllSmallCaps const): (WebCore::Font::supportsPetiteCaps const): (WebCore::Font::supportsAllPetiteCaps const): (WebCore::Font::createFontWithoutSynthesizableFeatures const): (WebCore::Font::platformCreateScaledFont const): (WebCore::Font::platformWidthForGlyph const): (WebCore::Font::applyTransforms const): (WebCore::Font::determinePitch): (WebCore::Font::platformBoundsForGlyph const): (WebCore::Font::platformPathForGlyph const): (WebCore::Font::platformSupportsCodePoint const): (WebCore::Font::isProbablyOnlyUsedToRenderIcons const): (WebCore::Font::otSVGTable const): (WebCore::Font::hasComplexColorFormatTables const): * Source/WebCore/platform/graphics/coretext/FontPlatformDataCoreText.cpp: (WebCore::mapFontWidthVariantToCTFeatureSelector): (WebCore::FontPlatformData::FontPlatformData): (WebCore::FontPlatformData::updateSize): (WebCore::FontPlatformData::toIPCData const): (WebCore::cascadeToLastResortAttributesDictionary): Deleted. (WebCore::cascadeToLastResortAndVariationsFontDescriptor): Deleted. (WebCore::FontPlatformData::ctFont const): Deleted. * Source/WebCore/platform/graphics/mac/ComplexTextControllerCoreText.mm: (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Canonical link: https://commits.webkit.org/281022@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes