This data structure represents the various optional descriptors that can be
applied to a @font-face rule in CSS. These are used to create a [FontTemplate]
from the given font data used as the source of the @font-face rule. If values
like weight, stretch, and style are not specified they are initialized based
on the contents of the font itself.
The FontContext represents the per-thread/thread state necessary for
working with fonts. It is the public API used by the layout and
paint code. It talks directly to the system font service where
required.
A data structure to store data for fonts. Data is stored internally in an
IpcSharedMemory handle, so that it can be sent without serialization
across IPC channels.
FontDescriptor describes the parameters of a Font. It represents rendering a given font
template at a particular size, with a particular font-variant-caps applied, etc. This contrasts
with FontTemplateDescriptor in that the latter represents only the parameters inherent in the
font data (weight, stretch, etc.).
A FontGroup is a prioritised list of fonts for a given set of font styles. It is used by
TextRun to decide which font to render a character with. If none of the fonts listed in the
styles are suitable, a fallback font may be used.
Describes how to select a font from a given family. This is very basic at the moment and needs
to be expanded or refactored when we support more of the font styling parameters.
The system font service. There is one of these for every Servo instance. This is a thread,
responsible for reading the list of system fonts, handling requests to match against
them, and ensuring that only one copy of system font data is loaded at a time.