Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 41991eb66a3b02e8d7201e47a789bd2c2988591d
https://github.com/WebKit/WebKit/commit/41991eb66a3b02e8d7201e47a789bd2c2988591d
Author: Wenson Hsieh <[email protected]>
Date: 2023-12-15 (Fri, 15 Dec 2023)
Changed paths:
M Source/WebCore/editing/cocoa/HTMLConverter.mm
M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewGetContents.mm
A Tools/TestWebKitAPI/Tests/WebKitCocoa/text-with-web-font.webarchive
Log Message:
-----------
Avoid using .LastResort when converting custom fonts in web archives to
NSAttributedString
https://bugs.webkit.org/show_bug.cgi?id=266512
rdar://119679094
Reviewed by Tim Horton.
When converting web archives that contain web fonts to `NSAttributedString`
using various WebKit
SPIs and APIs that wrap `WebPageProxy::getContentsAsAttributedString`, text
rendered using these
web fonts currently end up with `NSFontAttributeName : '.LastResort'` in the
attributes dictionary.
This is because arbitrary web fonts are not (and, for various reasons, should
probably not be)
propagated across the process boundary to the recipient of the decoded
attributed string; however,
we'll continue to use the web font family name in the platform font, which
results in CoreText
falling back to `LastResort` and showing "�" for all characters in these fonts.
To improve on this, we explicitly fall back to the system font instead of
`LastResort` for all
remote fonts when converting to attributed string, to ensure that the text is
at least legible (even
if it's not in the original web font).
Test: WKWebView.TextWithWebFontAsAttributedString
* Source/WebCore/editing/cocoa/HTMLConverter.mm:
(_font):
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewGetContents.mm:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/text-with-web-font.webarchive: Added.
Canonical link: https://commits.webkit.org/272159@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes