Implement FT2 backend for the cross-process shared font list
Categories
(Core :: Layout: Text and Fonts, enhancement, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox70 | --- | fixed |
People
(Reporter: jfkthame, Assigned: jfkthame)
References
Details
(Whiteboard: [layout:backlog:2019q3])
Attachments
(6 files)
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review |
In bug 1514869, an initial implementation of the shared font list landed for desktop platforms. This bug is for adding support to gfxFT2FontList, so that it will be available in Fenix as well.
Updated•6 years ago
|
Assignee | ||
Comment 1•5 years ago
|
||
This isn't really specific to the FT2 fontlist, it's a general fixup that I noticed while
working on this. (The missing checks aren't crucial, but mean that we might re-read a cmap
when we shouldn't need to.)
Assignee | ||
Comment 2•5 years ago
|
||
A bit of cleanup of the existing code, before we start actually implementing new stuff.
Depends on D36106
Assignee | ||
Comment 3•5 years ago
|
||
This makes the functional structure a bit cleaner, so that it'll be easier to slip in the alternative
codepath for the shared font-list.
Depends on D36107
Assignee | ||
Comment 4•5 years ago
|
||
I'll need to add a couple of extra fields to the cache records, and realized that the current format
looks really fragile; in theory, it'd break if a font name ever contained a comma or semicolon
(unlikely though that may be). So let's fix it to be a bit more robust before we add to it further.
Using control characters from the C0 range to delimit fields/records, instead of ASCII punctuation,
removes the (tiny) risk of conflict with characters that actually occur in a name, and using
distinct field and record separators means that we can better check that the records we're loading
from the cache actually match the expected format.
(Given that the startup cache gets re-created when the build ID is updated, a change in the format
between versions wasn't going to cause problems for users; their old cache just gets blown away
when upgrading. Still, a little more robustness seems like a good thing.)
Depends on D36108
Assignee | ||
Comment 5•5 years ago
|
||
This is the main part of the implementation, except that it doesn't handle populating the
local names table (for @font-face src:local() lookups) with Full and PostScript names;
that follows in the next patch.
Depends on D36109
Assignee | ||
Comment 6•5 years ago
|
||
And with this, all tests pass on tryserver when the shared list is enabled.
Depends on D36110
Comment 8•5 years ago
|
||
Backed out 6 changesets (Bug 1554208) for reftest failures at font-sans-serif.html and geckoview failures at AccessibilityTest.testMoveByLine.
Backout: https://hg.mozilla.org/integration/autoland/rev/c91bf14c149c2fbb986910ffb479248151138f53
Push that started the failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=pending%2Crunning%2Csuccess%2Ctestfailed%2Cbusted%2Cexception&revision=14b2c3daeaf0d4e41fc9988ca1f62a711f7ad710&selectedJob=255327572
Failure log:
https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=255327572&repo=autoland&lineNumber=2009
https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=255326521&repo=autoland&lineNumber=1477
Assignee | ||
Updated•5 years ago
|
Comment 10•5 years ago
|
||
Assignee | ||
Comment 11•5 years ago
|
||
(In reply to Pulsebot from comment #10)
Pushed by archaeopteryx@coole-files.de:
https://hg.mozilla.org/integration/autoland/rev/ea16d55620de
update test expectations for unexpected passes on Android.
a=unexpected-pass-fixes
Thanks for this! So try with "-u all" doesn't run web-platform-tests on Android, huh?
(I assume the reason for the new passes here is that we now properly maintain the original form of the font-family name as declared in CSS, and hence "Ahem" now matches our special-case code for disabling antialiasing during these tests; previously it was getting lowercased and slipping through.)
Comment 12•5 years ago
|
||
Comment 13•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/58dce111eb0c
https://hg.mozilla.org/mozilla-central/rev/54c09f3cf6d6
https://hg.mozilla.org/mozilla-central/rev/0efb6fa15fb7
https://hg.mozilla.org/mozilla-central/rev/bb4682a23c79
https://hg.mozilla.org/mozilla-central/rev/8453b0c76891
https://hg.mozilla.org/mozilla-central/rev/3261c2a5d165
https://hg.mozilla.org/mozilla-central/rev/ea16d55620de
https://hg.mozilla.org/mozilla-central/rev/3e793ca066f2
Updated•5 years ago
|
Description
•