[webkit-changes] [WebKit/WebKit] 7bf0c3: [GTK][WPE] Regression: ot-svg font support lost in...

Adrian Perez noreply at github.com
Sun Dec 15 15:23:18 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7bf0c3997b61bfa7e3410d5452fd23d82b7570ab
      https://github.com/WebKit/WebKit/commit/7bf0c3997b61bfa7e3410d5452fd23d82b7570ab
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2024-12-15 (Sun, 15 Dec 2024)

  Changed paths:
    M Source/ThirdParty/skia/CMakeLists.txt
    M Source/WebKit/WebProcess/gtk/WebProcessMainGtk.cpp
    M Source/WebKit/WebProcess/wpe/WebProcessMainWPE.cpp
    M Source/cmake/OptionsGTK.cmake
    M Source/cmake/OptionsWPE.cmake
    M Tools/gtk/manifest.txt.in
    M Tools/wpe/manifest.txt.in

  Log Message:
  -----------
  [GTK][WPE] Regression: ot-svg font support lost in 2.46 with Skia
https://bugs.webkit.org/show_bug.cgi?id=283246

Reviewed by Michael Catanzaro.

Make Skia use its own SVG render module in order to support OpenType
fonts with SVG glyph data. A new USE_SKIA_OPENTYPE_SVG build option
may be used to toggle this feature, which is enabled by default.

While it would be tempting to use WebKit's SVG renderer to handle this
case, in practice it gets complicated because handling such fonts will
attempt to render SVG while holding font-related locks, and using a
WebKit document to render SVG will try to enumerate fonts, resulting in
deadlocks. Moreover, WebKit's SVG rendering support is oriented towards
inclusion of SVG content into Web content, and is more heavyweight than
the (relatively small) Skia SVG renderer.

Based on a patchset originally by Hin-Tak Leung <htl10 at users.sourceforge.net>.

* Source/ThirdParty/skia/CMakeLists.txt: Build SVG module and needed
  support files when the USE_SKIA_OPENTYPE_SVG option is enabled. This
  adds a new dependency on the Expat XML parser library. The symlinks
  to the include directories are rearranged in order to allow paths
  like <skia/modulename/file.h>.
* Source/WebKit/WebProcess/gtk/WebProcessMainGtk.cpp: Set the OpenType
  SVG decoder factory function to enable the OpenType-SVG support.
* Source/WebKit/WebProcess/wpe/WebProcessMainWPE.cpp: Ditto.
* Source/cmake/OptionsGTK.cmake: Add a new USE_SKIA_OPENTYPE_SVG option,
  enabled by default.
* Source/cmake/OptionsWPE.cmake: Ditto.
* Tools/gtk/manifest.txt.in: Include files from the Skia svg, skshaper,
  and skresources modules in tarballs.
* Tools/wpe/manifest.txt.in: Ditto.

Canonical link: https://commits.webkit.org/287859@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