Bug 199186

Summary: [WinCairo] fonts/use-typo-metrics-1.html is failing as ImageOnlyFailure
Product: WebKit Reporter: Fujii Hironori <Hironori.Fujii>
Component: PlatformAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: fred.wang
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=198909

Description Fujii Hironori 2019-06-25 01:07:11 PDT
[WinCairo] fonts/use-typo-metrics-1.html is failing as ImageOnlyFailure

It seems that GetOutlineTextMetrics doesn't preserve OS/2 USE_TYPO_METRICS flag for OpenType fonts.
fonts/lineheight5000-typolineheight2300.woff seems a WOFF generated from a OpenType font.
If I convert lineheight5000-typolineheight2300.woff to TTF, and converted back to WOFF, the test case will pass.

Firefox seems using HarfBuzz to get OS/2 section on Windows.
Comment 1 Frédéric Wang (:fredw) 2019-06-25 03:11:37 PDT
I wonder if the tools you use to convert to TTF and WOFF again might do extra sanitisation changes. 

Are you able to use the script to generate a TTF and then load directly the .ttf file with @font-face rule?
Comment 2 Fujii Hironori 2019-06-25 20:05:20 PDT
I created lineheight5000-typolineheight2300.ttf.
I confirmed USE_TYPO_METRICS flag is preserved, the test can pass.

diff --git a/mathml/tools/use-typo-lineheight.py b/mathml/tools/use-typo-lineheight.py
index 9768979f48..c98020868b 100644
--- a/mathml/tools/use-typo-lineheight.py
+++ b/mathml/tools/use-typo-lineheight.py
@@ -44,7 +44,7 @@ font.os2_windescent_add = False
 
 font.os2_use_typo_metrics = True
 
-path = "../../fonts/math/lineheight%d-typolineheight%d.woff" % (winHeight, typoLineHeight)
+path = "../../fonts/math/lineheight%d-typolineheight%d.ttf" % (winHeight, typoLineHeight)
 print("Generating %s..." % path, end="")
 font.generate(path)
 if font.validate() == 0:
Comment 3 Fujii Hironori 2024-06-28 15:08:08 PDT
280480@main added the USE_TYPO_METRICS support for some fonts for Windows port.
However, fonts/use-typo-metrics-1.html is still failing. This ticket keeps tracking the issue.