- From: Roderick Sheeter <rsheeter@google.com>
- Date: Wed, 14 Aug 2019 10:07:18 -0700
- To: Garret Rieger <grieger@google.com>
- Cc: Ken Lunde <lunde@adobe.com>, Jonathan Kew <jfkthame@gmail.com>, "public-webfonts-wg@w3.org" <public-webfonts-wg@w3.org>
- Message-ID: <CABscrrEw6dmtqk46dy8ggydO=FxAbv77nOJB4+kPQBWGc90_qg@mail.gmail.com>
Regarding knowing early what codepoints are in the font that's not
necessarily today:
/* Must download to know what's here */
@font-face
font-family: 'Duck'
src: url(duck.woff2);
CSS already lets us tell the browser what characters are present via
unicode-range so, speculating wildly, what if streaming was activated via
src and unicode-range could still be used:
@font-face
font-family: 'Duck'
/* Progressively enrich if you support it, otherwise load the WOFF2 */
src: stream(<url to stream from),
url(duck.woff2);
/* Only try for these codepoints from Duck */
unicode-range: <the codepoints available overall>
On Tue, Aug 6, 2019 at 9:47 AM Garret Rieger <grieger@google.com> wrote:
> For both fontTools and harfbuzz we currently collect all glyphs that can
> be reached via any sequence of feature applications via the G* tables. In
> harfbuzz we don't yet do glyph closure for cmap 14, but I've added that to
> our task list. fontTools currently handles computing the closure for cmap
> 14:
> https://github.com/fonttools/fonttools/blob/master/Lib/fontTools/subset/__init__.py#L2139
> .
>
> On Tue, Aug 6, 2019 at 5:29 AM Ken Lunde <lunde@adobe.com> wrote:
>
>> Jonathan and others,
>>
>> Don't forget about sequences that resolve to glyphs, which can be
>> cultivated from 'ccmp' and other ligature-like features, along with the
>> Format 14 'cmap' subtable. Perhaps the most complex sequences are those
>> expressed via the 'ljmo', 'vjmo', and 'tjmo' features that are used for
>> combining jamo for which there are 11,875 two-character sequences (LV) and
>> 1,626,875 three-character ones (LVT). The Source Han / Noto CJK fonts can
>> serve as example implementations of everything I described above.
>>
>> -- Ken
>>
>> > On Aug 6, 2019, at 2:44 AM, Jonathan Kew <jfkthame@gmail.com> wrote:
>> >
>> > On 05/08/2019 23:35, Garret Rieger wrote:
>> >
>> >> This will of course add some extra size to the first response, but
>> having the client know in advance the specific code points in the source
>> font has value beyond compressing the sets. For example if the browser
>> knows which codepoints are in the font it doesn't need to waste
>> requests/bytes sending augmentation requests for codepoints that aren't
>> actually in the font.
>> >
>> > It's pretty important for the browser to know early on which codepoints
>> are in the font. It needs this in order to be able to appropriately fall
>> back to the next font in the font-family list (perhaps kicking off a new
>> font load for a different resource) for characters that aren't going to be
>> supported by this one even after it is fully loaded.
>> >
>> > Equally, if a given character *is* going to be supported by the current
>> font (even though it hasn't been fetched yet), we don't want the browser to
>> start loading further fonts in the stack.
>> >
>> > JK
>> >
>>
>>
>>
Received on Wednesday, 14 August 2019 17:07:54 UTC