Log Message
Fonts lie about being monospaced https://bugs.webkit.org/show_bug.cgi?id=162546 <rdar://problem/28494654>
Reviewed by Darin Adler. Source/WebCore: When a font reports itself to be monospace, we use this as a signal that we can perform width computations by assuming all characters have the same width as the space character. However, some fonts erroneously claim to be monospaced. We can't know this ahead of time without measuring a bunch of characters at font load time, which would be too slow, so even though the optimization would be nice there is no practical way to do it correctly. Firefox and Chrome both do not use this signal, so therefore they both correctly render these fonts. We should ignore this bit in the font as well. Also, CJK fonts generally do not have this bit set (because they usually have at least one character which is not fullwidth) so this isn't a concern there. Our Page Load Test shows this is not a performance regression. Tests: fast/text/font-erroneous-monospace.html fast/text/font-monospaced-lie.html * rendering/RenderText.cpp: (WebCore::RenderText::widthFromCache const): LayoutTests: Add two tests for fonts which claim to be monospaced but actually aren't. * fast/text/font-erroneous-monospace-expected.html: Added. * fast/text/font-erroneous-monospace.html: Added. * fast/text/font-monospaced-lie-expected.txt: Added. * fast/text/font-monospaced-lie.html: Added. * fast/text/line-break-after-question-mark-expected.txt: * fast/text/line-break-after-question-mark.html: * fast/text/resources/Ahem-fixed-pitch.ttf: Added. * fast/text/resources/AhemErroneousMonospace.ttf: Added.
Modified Paths
- trunk/LayoutTests/ChangeLog
- trunk/LayoutTests/fast/text/line-break-after-question-mark-expected.txt
- trunk/LayoutTests/fast/text/line-break-after-question-mark.html
- trunk/Source/WebCore/ChangeLog
- trunk/Source/WebCore/rendering/RenderText.cpp
Added Paths
- trunk/LayoutTests/fast/text/font-erroneous-monospace-expected.html
- trunk/LayoutTests/fast/text/font-erroneous-monospace.html
- trunk/LayoutTests/fast/text/font-monospaced-lie-expected.txt
- trunk/LayoutTests/fast/text/font-monospaced-lie.html
- trunk/LayoutTests/fast/text/resources/Ahem-fixed-pitch.ttf
- trunk/LayoutTests/fast/text/resources/AhemErroneousMonospace.ttf
Diff
Modified: trunk/LayoutTests/ChangeLog (266117 => 266118)
--- trunk/LayoutTests/ChangeLog 2020-08-25 15:58:40 UTC (rev 266117)
+++ trunk/LayoutTests/ChangeLog 2020-08-25 16:03:00 UTC (rev 266118)
@@ -1,3 +1,22 @@
+2020-08-25 Myles C. Maxfield <mmaxfi...@apple.com>
+
+ Fonts lie about being monospaced
+ https://bugs.webkit.org/show_bug.cgi?id=162546
+ <rdar://problem/28494654>
+
+ Reviewed by Darin Adler.
+
+ Add two tests for fonts which claim to be monospaced but actually aren't.
+
+ * fast/text/font-erroneous-monospace-expected.html: Added.
+ * fast/text/font-erroneous-monospace.html: Added.
+ * fast/text/font-monospaced-lie-expected.txt: Added.
+ * fast/text/font-monospaced-lie.html: Added.
+ * fast/text/line-break-after-question-mark-expected.txt:
+ * fast/text/line-break-after-question-mark.html:
+ * fast/text/resources/Ahem-fixed-pitch.ttf: Added.
+ * fast/text/resources/AhemErroneousMonospace.ttf: Added.
+
2020-08-25 Youenn Fablet <you...@apple.com>
Add support for MediaRecorder bitrate options
Added: trunk/LayoutTests/fast/text/font-erroneous-monospace-expected.html (0 => 266118)
--- trunk/LayoutTests/fast/text/font-erroneous-monospace-expected.html (rev 0)
+++ trunk/LayoutTests/fast/text/font-erroneous-monospace-expected.html 2020-08-25 16:03:00 UTC (rev 266118)
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+@font-face {
+ font-family: "WebFontAhem";
+ src: url("../../resources/Ahem.ttf") format("truetype");
+}
+</style>
+</head>
+<body>
+The test passes if there is no red shown below.
+<div><span style="font: 50px 'WebFontAhem'; -webkit-font-smoothing: none;">aaaa</span></div>
+</body>
+</html>
Added: trunk/LayoutTests/fast/text/font-erroneous-monospace.html (0 => 266118)
--- trunk/LayoutTests/fast/text/font-erroneous-monospace.html (rev 0)
+++ trunk/LayoutTests/fast/text/font-erroneous-monospace.html 2020-08-25 16:03:00 UTC (rev 266118)
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+@font-face {
+ font-family: "AhemErroneousMonospace";
+ src: url("resources/AhemErroneousMonospace.ttf") format("truetype");
+}
+</style>
+</head>
+<body>
+The test passes if there is no red shown below.
+<div><span style="font: 50px 'AhemErroneousMonospace'; background: red; -webkit-font-smoothing: none;">aaaa</span></div>
+</body>
+</html>
Added: trunk/LayoutTests/fast/text/font-monospaced-lie-expected.txt (0 => 266118)
--- trunk/LayoutTests/fast/text/font-monospaced-lie-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/text/font-monospaced-lie-expected.txt 2020-08-25 16:03:00 UTC (rev 266118)
@@ -0,0 +1,5 @@
+PASS 180 is >= document.getElementById('target').offsetWidth
+PASS successfullyParsed is true
+
+TEST COMPLETE
+Hello World
Added: trunk/LayoutTests/fast/text/font-monospaced-lie.html (0 => 266118)
--- trunk/LayoutTests/fast/text/font-monospaced-lie.html (rev 0)
+++ trunk/LayoutTests/fast/text/font-monospaced-lie.html 2020-08-25 16:03:00 UTC (rev 266118)
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src=""
+<style>
+@font-face {
+ font-family: "WebFont";
+ src: url("resources/Ahem-fixed-pitch.ttf") format("truetype");
+}
+</style>
+</head>
+<body>
+<div style="font: 24px 'WebFont';"><span id="target"><span>Hello</span> <span>World</span></span></div>
+<script>
+window.jsTestIsAsync = true;
+document.fonts.values().next().value.load().then(function() {
+ shouldBeGreaterThanOrEqual("180", "document.getElementById('target').offsetWidth");
+ finishJSTest();
+}, function() {
+ finishJSTest();
+});
+</script>
+<script src=""
+</body>
+</html>
Modified: trunk/LayoutTests/fast/text/line-break-after-question-mark-expected.txt (266117 => 266118)
--- trunk/LayoutTests/fast/text/line-break-after-question-mark-expected.txt 2020-08-25 15:58:40 UTC (rev 266117)
+++ trunk/LayoutTests/fast/text/line-break-after-question-mark-expected.txt 2020-08-25 16:03:00 UTC (rev 266118)
@@ -9,7 +9,6 @@
PASS allowsBreakBefore(36) is true
PASS allowsBreakBefore(37) is true
PASS allowsBreakBefore(38) is true
-PASS allowsBreakBefore(39) is false
PASS allowsBreakBefore(40) is true
PASS allowsBreakBefore(41) is false
PASS allowsBreakBefore(42) is true
@@ -97,7 +96,6 @@
PASS allowsBreakBefore(124) is true
PASS allowsBreakBefore(125) is false
PASS allowsBreakBefore(126) is true
-PASS allowsBreakBefore(127) is true
PASS successfullyParsed is true
TEST COMPLETE
Modified: trunk/LayoutTests/fast/text/line-break-after-question-mark.html (266117 => 266118)
--- trunk/LayoutTests/fast/text/line-break-after-question-mark.html 2020-08-25 15:58:40 UTC (rev 266117)
+++ trunk/LayoutTests/fast/text/line-break-after-question-mark.html 2020-08-25 16:03:00 UTC (rev 266118)
@@ -20,8 +20,11 @@
var unallowedBreaks = [0x21, 0x22, 0x27, 0x29, 0x2c, 0x2e, 0x2f, 0x3a, 0x3b, 0x3f, 0x5d, 0x7d];
-for (var i = 33; i < 128; ++i)
+for (var i = 0x21; i < 0x27; ++i)
shouldBe("allowsBreakBefore(" + i + ")", unallowedBreaks.indexOf(i) >= 0 ? "false" : "true");
+// Ahem doesn't support U+0027
+for (var i = 0x28; i < 0x7F; ++i)
+ shouldBe("allowsBreakBefore(" + i + ")", unallowedBreaks.indexOf(i) >= 0 ? "false" : "true");
document.body.removeChild(div);
</script>
Added: trunk/LayoutTests/fast/text/resources/Ahem-fixed-pitch.ttf (0 => 266118)
--- trunk/LayoutTests/fast/text/resources/Ahem-fixed-pitch.ttf (rev 0)
+++ trunk/LayoutTests/fast/text/resources/Ahem-fixed-pitch.ttf 2020-08-25 16:03:00 UTC (rev 266118)
@@ -0,0 +1,44 @@
+\x800OS/2sf\xF8\xBC`cmap9\x96U\xEEgasp (glyfנ\xA9A8\xA8head\xDBP͵ \xE06hhea
+7!$hmtx_\xC2+!<Xloca\xBEԸ7%\x94.maxp '\xC4 name\xB8)\xC6'\xE4)\xA2postc\xA1[$Q\x88\xD6\x90\xBC\x8A\x8F\xBC\x8A\xC52\x80\xAF HW3C @ \xFE\xFF \xFF8 \xC8\xFF\xFC\xFF\xFF \xF8::&~\xA0\xA1\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCF\xD0\xD1\xD2\xD4\xD5\xD6\xD7\xD8\xD9\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEB\xEC\xED\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFC\xFD\xFE\xFF1Sx\x92\xC6\xC7\xC9\xDA\xDB\xDC\xDD\x94\xA5\xA7\xA9\xBC
\xC0 + " & 0 : D!"!&"""""""""+"H"`"e"\xF2%\xCA00NNN N]N\x8CN\x94Qk
QmSAV\xD7V\xDBWg(j*l4pk~\xB5\x91\xD1\xF0\xFE\xFF\xFF\xFF (\xA0\xA1\xA2\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xD0\xD1\xD2\xD3\xD5\xD6\xD7\xD8\xD9\xDA\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEC\xED\xEE\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFD\xFE\xFF1Rx\x92\xC6\xC7\xC9\xD8\xDB\xDC\xDD\x94\xA5\xA7\xA9\xBC\xC0 & 0 9 D!"!&"""""""""+"H"`"d"\xF2%\xCA00NNN N]N\x8CN\x94QkQmSAV\xD7V\xDBWg(j*l4pk~\xB5\x91\xD1\xF0\xFE\xFF\xFF\xFF\xFF\xE3\xFF\xE2\xFF\xF9\xFF\xF4\xFF\xE0\xFF\xFD\xFF\xE9\xFF\xDD\xFF\xE2\xFF\xDF\xFF\xE6\xFF\xEC\xFF\xEA
\xFF\xD9\xFF\xD1\xFF\xDC\xFF\xD5\xFF\xDA\xFF\xCF\xFF\xEB+\xFF\xD7\xFF\xDD+\xFF\xD
5\xFF\xDA\xFF\xE4\xFF\xE1\xFF\xD8\xFF\x9D\xFF\xC5\xFF\x9C\xFF\xDF\xFF\x9B\xFF\xDA\xFF\xDB\xFF\xDF\xFF\xDB\xFF\xEE\xFF\x94\xFF\xDC\xFF\xD9\xFF\xC7\xFF\x90\xFF\xEE\xFF\xB4\xFF\xD8\xFF\xD5\xFF\x8B\xFF\xE3\xFF\xE4\xFF\xA7\xFF\x89\xFF\x87\xFF\x88\xFF\x89\xFF\x87\xFF\x88\xFF\xAC\xFF\x87\xFF\x88\xFF\x86\xFF\x87\xFF\x88\xFF\x86\xFF\x87\xFF\xCF\xFF\x86\xFF\x87\xFF\x85\xFF\x86\xFF\x87\xFF\x85\xFF\xA8\xFF\x9B\xFF\x85\xFF\x83\xFF\x84\xFF\xC4\xFF\xC5\xFF\xA1\xFF\x81\xFF|\xFFX\xFF?\xFD\xED\xFD\xF5\xFD\xEC\xFD\xDE\xFD\xE0\xFD\xD8\xFD\xDD\xFD>\xFDo\xFDk\xFD*\xFC\xD3\xFD\xE0\xF4\xE0\xF2\xE0\xF3\xDF\xFF\xE0\xC2\xE0\x85\xE0\xBD\xE0\xBC\xE0\xBB\xE0\xB8\xE0\xAF\xE0\xA7\xE0\x9E\xDF\xC1߭\xDE\xE2\xDE\xCC\xDE\xD6\xDE\xD5މ\xDE\xCD\xDE\xCAޥފއ\xDD\xFB\xDB$\xD0\xFE\xD1\xB3\xB3\xB2\xFA\xB2\xAC\xB2v\xB2q\xAF\x9D\xAF\x99\xADɪ5\xAA)\xA9\xF2\x99\xE7\x96\xE9\x94ڐ\xA2\x82`o?\xEF\xF6
\xFF\xFF}k 3!%!!}\xEE\xFD\x8F\xF4\xFE \xFC\xE0}&\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8,
!!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\
xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8,
!!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC
\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!
,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF
8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8\xE81!!\xE8\xFC\xC8\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD
4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xE8 !!\xE8\xFC \xFC\xE0\xFF8,
!!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC
\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!
,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8
, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4
\xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8,
!!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC
\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xF
E\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8,
!!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC
\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !
!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF
8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\x
D4 \xFC\xFF8, !!,\xFE\xD4 \xFC\xFF8, !!,\xFE\xD4 \xFC\x90\xE8X!!\xE8\xFCX\xC8\x90\xE8X!!\xE8\xFCX\xC8\xC8\xFF8\x90 3#\xC8\xC8\xC8 \xFC\xC8\xFF8\x90 3#\xC8\xC8\xC8 \xFC\x80\xF9b\xDC_<\xF5 \xE8\xB3o_Y\xC4ݫ$\xFF8\xE8 \xFF8\xE8\xE8\xE8}\xE8\xE8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\xE8,
,,,,,,,,,,,,,,,,\xE8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,\xE8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\xF4\xE8M\xFA\xA7\xC8d\xE8,,,,,,,,,,,,,,,,,\xE8\xE8\xE8\xC8\xE8\xC8!.;HUbo|\x89\x96\xA3\xB0\xBD\xCA\xD7\xE4\xF1\xFE%2?LYfs\x80\x8D\x9A\xA7\xB4\xC1\xCE\xDB\xE8
\xF5)6CP]jw\x84\x91\x9E\xAB\xB8\xC5\xD2\xDF\xEC\xF9 -:GTan{\x88\x95\xA2\xAF\xBC\xC9\xD6\xE3\xF0\xFD
+#0=JWdq~\x8B\x98\xA5\xB2\xBF\xCC\xD9\xE6\xF3+'4AN[hu\x82\x8F\x9C\xA9\xB6\xC3\xD0\xDD\xEA\xF7+8ER_ly\x86\x93\xA0\xAD\xBA\xC7\xD4\xE1\xEE\xFB"/<IVcp}\x8A\x97\xA4\xA4\xB1\xBE\xCB\xD8\xE5\xF2\xFF&3@MZgt\x81\x8E\x9B\xA8\xB5\xC2\xCF\xDC\xE9\xF6 * 7 D Q ^ k x \x85 \x92 \x9F \xAC \xB9 \xC6 \xD3 \xE0 \xED \xFA
+
+
+!
+.
+;
+H
+U
+b
+o
+|
+\x89
+\x96
+\xA3
+\xB0
+\xBD
+\xCA
+\xD7
+\xE4
+\xF1
+\xFE%2?LYfs\x80\x8D\x9A\xA7\xB4\xC1\xCE\xDB\xE8\xF5)6CCCCCCCCCCCCCP]jw\x84\x91\x9E\xAB\xB8\xC5\xD2\xDF\xEC\xF9+++ +-+:+G+T$\xB6\xF0\xF0\xF8"(0H
+hP$\xB8R\xDC\xF8.&*1BFR
+VV)h\x91\x95\x9C \xF0\xA0 \x90 \x98 "\xA6 \xC8 \xD0 \xE8
+h\xF0 $'X R'| '\xCE '\xD6 '\xE4The Ahem font belongs to the public domain. In jurisdictions that do not recognize public domain ownership of these files, the following Creative Commons Zero declaration applies: http://labs.creativecommons.org/licenses/zero-waive/1.0/us/legalcodeAhemRegularVersion 1.50 AhemAhemVersion 1.50AhemThe
Ahem font was developed by Todd Fahrner and Myles C. Maxfield to help test writers develop predictable tests. The units per em is 1000, the advance is 800, and
the descent is 200, thereby making the em square exactly square. The glyphs for most characters is simply a box which fills this square. The codepoints mapped to this full square with a full advance are the following ranges: U+20-U+26, U+28-U+6F, U+71-U+7E, U+A0-U+C8, U+CA-U+FF, U+131, U+152-U+153, U+178, U+192, U+2C6-U+2C7, U+2C9,
U+2D8-U+2DD, U+394, U+3A5, U+3A7, U+3A9, U+3BC, U+3C0, U+2013-U+2014, U+2018-U+201A, U+201C-U+201E, U+2020-U+2022, U+2026, U+2030, U+2039-U+203A, U+2044, U+2122, U+2
126, U+2202, U+2206, U+220F, U+2211-U+2212, U+2219-U+221A, U+221E, U+222B, U+2248, U+2260, U+2264-U+2265, U+22F2, U+25CA, U+3007, U+4E00, U+4E03, U+4E09, U+4E5D, U+4E8C, U+4E94, U+516B, U+516D, U+5341, U+56D7, U+56DB, U+571F, U+6728, U+6C34, U+706B, U+91D1, U+F000-U+F002. The codepoints which are mapped to something else are the f
ollowing: " " (U+20): No path but full advance; "p" (U+70): Path has 0 ascent but full descent; "\xC9" (U+C9): Path has 0 descent but full ascent; Non-br
eaking space (U+A0): No path but full advance; Zero-width non-breaking space (U+FEFF): No path and 0 advance; En space (U+2002): No path and half advance; Em space (U+2003): No path but full advance; Three-per-em space (U+2004): No path and one third advance; Four-per-em space (U+2005): No path and one quarter advance; Six-per-em
space (U+2006): No path and one sixth advance; Thin space (U+2009): No path and one fifth advance; Hair space (U+200A): No path and one tenth advance; Zero width spac
e (U+200B): No path and no advance; Ideographic space (U+3000): No path but full advance; Zero width non-joiner (U+200C): No path and no advance; Zero width joiner (U+200D): No path and no advance; Greek capital letter Chi (U+3A7): Thin horizontal stripe and full advance; "j*" (U+6A2A): Thin horizontal stripe and full advance; Gr
eek capital letter Upsilon (U+3A5): Thin vertical stripe and full advance; "~\xB5" (U+7EB5): Thin vertical stripe and full advance.http://www.w3c.orghttp://dev.w
3.org/CSS/fonts/ahem/COPYING
+The Ahem font belongs to the public domain. In jurisdictions that do not recognize public domain ownership of these files, the following Creative Commons Zero declaration applies: http://labs.creativecommons.org/licenses/zero-waive/1.0/us/legalcodeAhemRegularVersion 1.50 AhemAhemVersion 1.50Ahemhttp://www.w3c.orghttp://dev.w3.org/CSS/fonts/ahem/COPYING
+AhemRegularAhemThe Ahem font belongs to the public domain. In jurisdictions that do not recognize public domain ownership of these files, the following Creative Commons Zero declaration applies: http://labs.creativecommons.org/licenses/zero-waive/1.0/us/legalcodeAhemRegularVersion 1.50 AhemAhemVersion 1.50AhemThe Ahem font was developed by
Todd Fahrner and Myles C. Maxfield to help test writers develop predictable tests. The units per em is 1000, the advance is 800, and the descent is 200, thereby mak
ing the em square exactly square. The glyphs for most characters is simply a box which fills this square. The codepoints mapped to this full square with a full advance are the following ranges: U+20-U+26, U+28-U+6F, U+71-U+7E, U+A0-U+C8, U+CA-U+FF, U+131, U+152-U+153, U+178, U+192, U+2C6-U+2C7, U+2C9, U+2D8-U+2DD, U+394, U+3A5, U+
3A7, U+3A9, U+3BC, U+3C0, U+2013-U+2014, U+2018-U+201A, U+201C-U+201E, U+2020-U+2022, U+2026, U+2030, U+2039-U+203A, U+2044, U+2122, U+2126, U+2202, U+2206, U+220F, U
+2211-U+2212, U+2219-U+221A, U+221E, U+222B, U+2248, U+2260, U+2264-U+2265, U+22F2, U+25CA, U+3007, U+4E00, U+4E03, U+4E09, U+4E5D, U+4E8C, U+4E94, U+516B, U+516D, U+5341, U+56D7, U+56DB, U+571F, U+6728, U+6C34, U+706B, U+91D1, U+F000-U+F002. The codepoints which are mapped to something else are the following: " " (U+20): No pa
th but full advance; "p" (U+70): Path has 0 ascent but full descent; "\xC9" (U+C9): Path has 0 descent but full ascent; Non-breaking space (U+A0): No path b
ut full advance; Zero-width non-breaking space (U+FEFF): No path and 0 advance; En space (U+2002): No path and half advance; Em space (U+2003): No path but full advance; Three-per-em space (U+2004): No path and one third advance; Four-per-em space (U+2005): No path and one quarter advance; Six-per-em space (U+2006): No path and one
sixth advance; Thin space (U+2009): No path and one fifth advance; Hair space (U+200A): No path and one tenth advance; Zero width space (U+200B): No path and no adva
nce; Ideographic space (U+3000): No path but full advance; Zero width non-joiner (U+200C): No path and no advance; Zero width joiner (U+200D): No path and no advance; Greek capital letter Chi (U+3A7): Thin horizontal stripe and full advance; "j*" (U+6A2A): Thin horizontal stripe and full advance; Greek capital letter Upsilon (U+
3A5): Thin vertical stripe and full advance; "~\xB5" (U+7EB5): Thin vertical stripe and full advance.http://www.w3c.orghttp://dev.w3.org/CSS/fonts/ahem/COPYING
+AhemRegularAhem\xFF{ + !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x80\x81\x83\x84\x85\x86\x88\x89\x8A\x8B\x8D\x8E\x90\x91\x93\x96\x97\x9D\x9E\xA0\xA1\xA2\xA3\xA4\xA9\xAA\xAC\xAD\xAE\xAF\xB6\xB7\xB8\xBA\xBD\xC3\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xB0\xB1\xBB\xA
6\xA8\x9F\x9B\xB2\xB3\xC4\xB4\xB5\xC5\x82\xC2\x87\xAB\xC6\xBE\xBF\xBC\x8C\x98\x9A\x99\xA5\x92\x9C\x8F\x94\x95\xA7\xB9\xD2\xC0\xC1
++ !"#$%&'(NULLglyph243glyph204glyph205HTDELuniFEFFuni2002uni2003uni2004uni2005uni2006uni2009uni200Auni200Buni3000 afii61664afii301uni4E00uni4E8Cuni4E09uni56DBuni4E94uni516Duni4E03uni516Buni4E5Duni5341uni3007uni56D7uni706Buni6C34uni6728uni91D1uni571Funi03A7uni6A2Auni03A5uni7EB5
\ No newline at end of file
Added: trunk/LayoutTests/fast/text/resources/AhemErroneousMonospace.ttf (0 => 266118)
--- trunk/LayoutTests/fast/text/resources/AhemErroneousMonospace.ttf (rev 0)
+++ trunk/LayoutTests/fast/text/resources/AhemErroneousMonospace.ttf 2020-08-25 16:03:00 UTC (rev 266118)
@@ -0,0 +1,47 @@
+\x800OS/2sf\xF8\xBC`cmapED\xB4l$gasp @glyf P\xF6head\xDBP͵!H6hhea
+"!\x80$hmtx(\xA6\x9D!\xA4dloca\xCCB\xD3&4maxp (< nameѰ+(\,.post@\xF5\x91\xF2T\x8C\x9D\xD6\x90\xBC\x8A\x8F\xBC\x8A\xC52\x80\xAF HW3C @ \xFE\xFF \xFF8 \xC8\xFF\xFC\xFF\xFF @@&~\xA0\xA1\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCF\xD0\xD1\xD2\xD4\xD5\xD6\xD7\xD8\xD9\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEB\xEC\xED\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFC\xFD\xFE\xFF1Sx\x92\xC6\xC7\xC9\xDA\xDB\xDC\xDD\x94\xA5\xA7
\xA9\xBC\xC0 + " & 0 : D!"!&"""""""""+"H"`"e"\xF2%\xCA00NNN N]N\x
8CN\x94QkQmSAV\xD7V\xDBWg(j*jkl4pk~&~1~\xB5\x91\xD1\xF0\xFE\xFF\xFF\xFF (\xA0\xA1\xA2\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xD0\xD1\xD2\xD3\xD5\xD6\xD7\xD8\xD9\xDA\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEC\xED\xEE\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFD\xFE\xFF1Rx\x92\xC6\xC7\xC9\xD8\xDB\xDC\xDD\x94\xA5\xA7\xA9\xBC\xC0 & 0 9 D!"!&"""""""""+"H"`"d"\xF2%\xCA00NNN N]N\x8CN\x94QkQmSAV\xD7V\xDBWg(j*jkl4pk~&~1~\xB5\x91\xD1\xF0\xFE\xFF\xFF\xFF\xFF\xE3\xFF\xE2\xFF\xF9\xFF\xF4\xFF\xE0\xFF\xFD\xFF\xE9\xFF\xDD\xFF\xE2\xFF\x
DF\xFF\xE6\xFF\xEC\xFF\xEA\xFF\xD9\xFF\xD1\xFF\xDC\xFF\xD5\xFF\xDA\xFF\xCF\xFF\xEB+\
xFF\xD7\xFF\xDD+\xFF\xD5\xFF\xDA\xFF\xE4\xFF\xE1\xFF\xD8\xFF\x9D\xFF\xC5\xFF\x9C\xFF\xDF\xFF\x9B\xFF\xDA\xFF\xDB\xFF\xDF\xFF\xDB\xFF\xEE\xFF\x94\xFF\xDC\xFF\xD9\xFF\xC7\xFF\x90\xFF\xEE\xFF\xB4\xFF\xD8\xFF\xD5\xFF\x8B\xFF\xE3\xFF\xE4\xFF\xA7\xFF\x89\xFF\x87\xFF\x88\xFF\x89\xFF\x87\xFF\x88\xFF\xAC\xFF\x87\xFF\x88\xFF\x86\xFF\x87\xFF\x88\xFF\x86\xFF\x87\xFF\xCF\xFF\x86\xFF\x87\xFF\x85\xFF\x86\xFF\x87\xFF\x85\xFF\xA8\xFF\x9B\xFF\x85\xFF\x83\xFF\x84\xFF\xC4\xFF\xC5\xFF\xA1\xFF\x81\xFF|\xFFX\xFF?\xFD\xED\xFD\xF5\xFD\xEC\xFD\xDE\xFD\xE0\xFD\xD8\xFD\xDD\xFD>\xFDp\xFDk\xFD*\xFC\xD3\xFD\xE0\xF4\xE0\xF2\xE0\xF3\xDF\xFF\xE0\xC2\xE0\x85\xE0\xBD\xE0\xBC\xE0\xBB\xE0\xB8\xE0\xAF\xE0\xA7\xE0\x9E\xDF\xC1߭\xDE\xE2\xDE\xCC\xDE\xD6\xDE\xD5މ\xDE\xCD\xDE\xCAޥފއ\xDD\xFB\xDB$\xD0\xFE\xD1\xB3\xB3\xB2\xFA\xB2\xAC\xB2v\xB2q\xAF\x9D\xAF\x99\xADɪ5\xAA)\xA9\xF2\x99\xE7\x96閩\x94ڐ\xA2\x82\xF1\x82\xE7\x82ao?\xEF\xF6
\xFF\xFF}k 3!%!!}\xEE\xFD\x8F\xF4\xFE \xFC\xE0}&\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8
!!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\x
FF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8
!!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8
!!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE
8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xF
C \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE81!!\xE8\xFC\xC8\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC
\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\x
FF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xE8 !!\xE8\xFC \xFC\xE0\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8
!!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8
!!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE
8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xF
C \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC
\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC
\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8
!!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8
!!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!
\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\
xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC
\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC
\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8\xE8 !!\xE8\xFC \xFC\xFF8
\xE8 !!\xE8\xFC \xFC\x90\xE8X!!\xE8\xFCX\xC8\x90\xE8X!!\xE8\xFCX\xC8\x90\xE8
X!!\xE8\xFCX\xC8\xC8\xFF8\x90 3#\xC8\xC8\xC8 \xFC\xC8\xFF8\x90 3#\xC8\xC8\xC8 \xFC\xC8\xFF8\x90 3#\xC8\xC8\xC8 \xFC\xC8\xFF8\x90 3#\xC8\xC8\xC8 \xFC\x80\xF6d\x82\xF8_<\xF5 \xE8\xB3o_Y\xC4ݫ$\xFF8\xE8 \xFF8\xD0\xE8\xE8}\xE8\xD0\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8
\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8
\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8
\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\
xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xF4\xE8M\xFA\xA7\xC8d\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xE8\xC8\xE8\xC8\xE8\xC8\xE8\xC8!.;HUbo|\x89\x96\xA3\xB0\xBD\xCA\xD7\xE4\xF1\xFE%2?LYfs\x80\x8D\x9A\xA7\xB4\xC1\xCE\xDB\xE8\xF5)6CP]jw\x84\x91\x9E\xAB\xB8\xC5\xD2\xDF\xEC\xF9 -:GTan{\x88\x95\xA2\xAF\xBC\xC9\xD6\xE3\xF0\xFD
+#0=JWdq~\x8B\x98\xA5\xB2\xBF\xCC\xD9\xE6\xF3+'4AN[hu\x82\x8F\x9C\xA9\xB6\xC3\xD0\xDD\xEA\xF7+8ER_ly\x86\x93\xA0\xAD\xBA\xC7\xD4\xE1\xEE\xFB"/<IVcp}\x8A\x97\xA4\xA4\xB1\xBE\xCB\xD8\xE5\xF2\xFF&3@MZgt\x81\x8E\x9B\xA8\xB5\xC2\xCF\xDC\xE9\xF6 * 7 D Q ^ k x \x85 \x92 \x9F \xAC \xB9 \xC6 \xD3 \xE0 \xED \xFA
+
+
+!
+.
+;
+H
+U
+b
+o
+|
+\x89
+\x96
+\xA3
+\xB0
+\xBD
+\xCA
+\xD7
+\xE4
+\xF1
+\xFE%2?LYfs\x80\x8D\x9A\xA7\xB4\xC1\xCE\xDB\xE8\xF5)6CCCCCCCCCCCCCP]jw\x84\x91\x9E\xAB\xB8\xC5\xD2\xDF\xEC\xF9+++ +-+:+G+T+a+n+{$\xB6\xF0\xF0\xF8"(0H
+\xAEP$\xFER"\xF8tlpw\x88\x8C\x98
+\x9C\x9C)\xAE\xD7\xDB\xE2 \xF0\xE6 \xD6 \xDE "\xEC .
+\xAE6 $)\xE4 R* *Z *b *pThe Ahem font belongs to the public domain. In jurisdictions that do not recognize public domain ownership of these files, the following Creative Commons Zero declaration applies: http://labs.creativecommons.org/licenses/zero-waive/1.0/us/legalcodeAhemRegularVersion 1.50 AhemAhemVersion 1.50AhemThe Ah
em font was developed by Todd Fahrner and Myles C. Maxfield to help test writers develop predictable tests. The units per em is 1000, the advance is 800, and the
descent is 200, thereby making the em square exactly square. The glyphs for most characters is simply a box which fills this square. The codepoints mapped to this full square with a full advance are the following ranges: U+20-U+26, U+28-U+6F, U+71-U+7E, U+A0-U+C8, U+CA-U+FF, U+131, U+152-U+153, U+178, U+192, U+2C6-U+2C7, U+2C9, U+
2D8-U+2DD, U+394, U+3A5, U+3A7, U+3A9, U+3BC, U+3C0, U+2013-U+2014, U+2018-U+201A, U+201C-U+201E, U+2020-U+2022, U+2026, U+2030, U+2039-U+203A, U+2044, U+2122, U+2126
, U+2202, U+2206, U+220F, U+2211-U+2212, U+2219-U+221A, U+221E, U+222B, U+2248, U+2260, U+2264-U+2265, U+22F2, U+25CA, U+3007, U+4E00, U+4E03, U+4E09, U+4E5D, U+4E8C, U+4E94, U+516B, U+516D, U+5341, U+56D7, U+56DB, U+571F, U+6728, U+6C34, U+706B, U+91D1, U+F000-U+F002. The codepoints which are mapped to something else are the foll
owing: " " (U+20): No path but full advance; "p" (U+70): Path has 0 ascent but full descent; "\xC9" (U+C9): Path has 0 descent but full ascent; Non-break
ing space (U+A0): No path but full advance; Zero-width non-breaking space (U+FEFF): No path and 0 advance; En space (U+2002): No path and half advance; Em space (U+2003): No path but full advance; Three-per-em space (U+2004): No path and one third advance; Four-per-em space (U+2005): No path and one quarter advance; Six-per-em spa
ce (U+2006): No path and one sixth advance; Thin space (U+2009): No path and one fifth advance; Hair space (U+200A): No path and one tenth advance; Zero width space (
U+200B): No path and no advance; Ideographic space (U+3000): No path but full advance; Zero width non-joiner (U+200C): No path and no advance; Zero width joiner (U+200D): No path and no advance; Greek capital letter Chi (U+3A7): Thin horizontal stripe and full advance; "j*" (U+6A2A): Thin horizontal stripe and full advance; "jk&qu
ot; (U+6A6B): Thin horizontal stripe and full advance; Greek capital letter Upsilon (U+3A5): Thin vertical stripe and full advance; "~\xB5" (U+7EB5): Thin vertic
al stripe and full advance; "~&" (U+7E26): Thin vertical stripe and full advance; "~1" (U+7E31): Thin vertical stripe and full advance.http://www.w3c.orghttp://dev.w3.org/CSS/fonts/ahem/COPYING
+The Ahem font belongs to the public domain. In jurisdictions that do not recognize public domain ownership of these files, the following Creative Commons Zero declaration applies: http://labs.creativecommons.org/licenses/zero-waive/1.0/us/legalcodeAhemRegularVersion 1.50 AhemAhemVersion 1.50Ahemhttp://www.w3c.orghttp://dev.w3.org/CSS/fonts/ahem/COPYING
+AhemRegularAhemThe Ahem font belongs to the public domain. In jurisdictions that do not recognize public domain ownership of these files, the following Creative Commons Zero declaration applies: http://labs.creativecommons.org/licenses/zero-waive/1.0/us/legalcodeAhemRegularVersion 1.50 AhemAhemVersion 1.50AhemThe Ahem font was developed by
Todd Fahrner and Myles C. Maxfield to help test writers develop predictable tests. The units per em is 1000, the advance is 800, and the descent is 200, thereby mak
ing the em square exactly square. The glyphs for most characters is simply a box which fills this square. The codepoints mapped to this full square with a full advance are the following ranges: U+20-U+26, U+28-U+6F, U+71-U+7E, U+A0-U+C8, U+CA-U+FF, U+131, U+152-U+153, U+178, U+192, U+2C6-U+2C7, U+2C9, U+2D8-U+2DD, U+394, U+3A5, U+
3A7, U+3A9, U+3BC, U+3C0, U+2013-U+2014, U+2018-U+201A, U+201C-U+201E, U+2020-U+2022, U+2026, U+2030, U+2039-U+203A, U+2044, U+2122, U+2126, U+2202, U+2206, U+220F, U
+2211-U+2212, U+2219-U+221A, U+221E, U+222B, U+2248, U+2260, U+2264-U+2265, U+22F2, U+25CA, U+3007, U+4E00, U+4E03, U+4E09, U+4E5D, U+4E8C, U+4E94, U+516B, U+516D, U+5341, U+56D7, U+56DB, U+571F, U+6728, U+6C34, U+706B, U+91D1, U+F000-U+F002. The codepoints which are mapped to something else are the following: " " (U+20): No pa
th but full advance; "p" (U+70): Path has 0 ascent but full descent; "\xC9" (U+C9): Path has 0 descent but full ascent; Non-breaking space (U+A0): No path b
ut full advance; Zero-width non-breaking space (U+FEFF): No path and 0 advance; En space (U+2002): No path and half advance; Em space (U+2003): No path but full advance; Three-per-em space (U+2004): No path and one third advance; Four-per-em space (U+2005): No path and one quarter advance; Six-per-em space (U+2006): No path and one
sixth advance; Thin space (U+2009): No path and one fifth advance; Hair space (U+200A): No path and one tenth advance; Zero width space (U+200B): No path and no adva
nce; Ideographic space (U+3000): No path but full advance; Zero width non-joiner (U+200C): No path and no advance; Zero width joiner (U+200D): No path and no advance; Greek capital letter Chi (U+3A7): Thin horizontal stripe and full advance; "j*" (U+6A2A): Thin horizontal stripe and full advance; "jk" (U+6A6B): Thin horizontal
stripe and full advance; Greek capital letter Upsilon (U+3A5): Thin vertical stripe and full advance; "~\xB5" (U+7EB5): Thin vertical stripe and full advance;
"~&" (U+7E26): Thin vertical stripe and full advance; "~1" (U+7E31): Thin vertical stripe and full advance.http://www.w3c.orghttp://dev.w3.org/CSS/fonts/ahem/COPYING
+AhemRegularAhem\xFF{ + !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x80\x81\x83\x84\x85\x86\x88\x89\x8A\x8B\x8D\x8E\x90\x91\x93\x96\x97\x9D\x9E\xA0\xA1\xA2\xA3\xA4\xA9\xAA\xAC\xAD\xAE\xAF\xB6\xB7\xB8\xBA\xBD\xC3\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xB0\xB1\xBB\xA
6\xA8\x9F\x9B\xB2\xB3\xC4\xB4\xB5\xC5\x82\xC2\x87\xAB\xC6\xBE\xBF\xBC\x8C\x98\x9A\x99\xA5\x92\x9C\x8F\x94\x95\xA7\xB9\xD2\xC0\xC1
++ !"#$%&'()*+NULLglyph243glyph204glyph205HTDELuniFEFFuni2002uni2003uni2004uni2005uni2006uni2009uni200Auni200Buni3000 afii61664afii301uni4E00uni4E8Cuni4E09uni56DBuni4E94uni516Duni4E03uni516Buni4E5Duni5341uni3007uni56D7uni706Buni6C34uni6728uni91D1uni571Funi03A7uni6A2Auni6A6Buni03A5uni7EB5uni7E26uni7E31
\ No newline at end of file
Modified: trunk/Source/WebCore/ChangeLog (266117 => 266118)
--- trunk/Source/WebCore/ChangeLog 2020-08-25 15:58:40 UTC (rev 266117)
+++ trunk/Source/WebCore/ChangeLog 2020-08-25 16:03:00 UTC (rev 266118)
@@ -1,3 +1,33 @@
+2020-08-25 Myles C. Maxfield <mmaxfi...@apple.com>
+
+ Fonts lie about being monospaced
+ https://bugs.webkit.org/show_bug.cgi?id=162546
+ <rdar://problem/28494654>
+
+ Reviewed by Darin Adler.
+
+ When a font reports itself to be monospace, we use this as a
+ signal that we can perform width computations by assuming all
+ characters have the same width as the space character. However,
+ some fonts erroneously claim to be monospaced. We can't know
+ this ahead of time without measuring a bunch of characters at
+ font load time, which would be too slow, so even though the
+ optimization would be nice there is no practical way to do it
+ correctly. Firefox and Chrome both do not use this signal, so
+ therefore they both correctly render these fonts. We should
+ ignore this bit in the font as well. Also, CJK fonts generally
+ do not have this bit set (because they usually have at least
+ one character which is not fullwidth) so this isn't a concern
+ there.
+
+ Our Page Load Test shows this is not a performance regression.
+
+ Tests: fast/text/font-erroneous-monospace.html
+ fast/text/font-monospaced-lie.html
+
+ * rendering/RenderText.cpp:
+ (WebCore::RenderText::widthFromCache const):
+
2020-08-25 Youenn Fablet <you...@apple.com>
Add support for MediaRecorder bitrate options
Modified: trunk/Source/WebCore/rendering/RenderText.cpp (266117 => 266118)
--- trunk/Source/WebCore/rendering/RenderText.cpp 2020-08-25 15:58:40 UTC (rev 266117)
+++ trunk/Source/WebCore/rendering/RenderText.cpp 2020-08-25 16:03:00 UTC (rev 266118)
@@ -487,36 +487,6 @@
return combineText.combinedTextWidth(f);
}
- if (f.isFixedPitch() && f.fontDescription().variantSettings().isAllNormal() && m_isAllASCII && (!glyphOverflow || !glyphOverflow->computeBounds)) {
- float monospaceCharacterWidth = f.spaceWidth();
- float w = 0;
- bool isSpace;
- for (unsigned i = start; i < start + len; i++) {
- char c = text()[i];
- if (c <= ' ') {
- if (c == ' ' || c == '\n') {
- w += monospaceCharacterWidth;
- isSpace = true;
- } else if (c == '\t') {
- if (style.collapseWhiteSpace()) {
- w += monospaceCharacterWidth;
- isSpace = true;
- } else {
- w += f.tabWidth(style.tabSize(), xPos + w);
- isSpace = false;
- }
- } else
- isSpace = false;
- } else {
- w += monospaceCharacterWidth;
- isSpace = false;
- }
- if (isSpace && i > start)
- w += f.wordSpacing();
- }
- return w;
- }
-
TextRun run = RenderBlock::constructTextRun(*this, start, len, style);
run.setCharacterScanForCodePath(!canUseSimpleFontCodePath());
run.setTabSize(!style.collapseWhiteSpace(), style.tabSize());
_______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes