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

Reply via email to