Re: [css-font-loading] FontFace objects and the FontFaceSet interface

Tab Atkins wrote:

> In particular, Array implies that there's a meaningful and
> relatively stable ordering, so that the index is meaningful.  Since
> that's not the case with FontFaceSet, I wanted to use Set.

That's a bug, the FontFaceSet needs to be ordered, otherwise the
unicode-range attribute won't be handled correctly.

Example:

  /* fallback face with wider coverage */
  @font-face {
    font-family: test;
    src: url(myfont-fallback.woff);
    unicode-range: u+0-10ffff;
  }

  /* latin face */
  @font-face {
    font-family: test;
    src: url(myfont-latin.woff);
    unicode-range: u+0-2ff;
  }

The ordering is important here, for Latin text the 'myfont-latin.woff'
will be downloaded first. Assuming this font has full coverage for the
u+0-2ff range, for Latin text this is the only font that would be
downloaded.

However, if you reverse the order of these two @font-face rules,
'myfont-fallback.woff' would be downloaed and 'myfont-latin.woff'
would be ignored.

Order is important and for the FontFaceSet needs to preserve some
ordering.

Cheers,

John

Received on Wednesday, 5 March 2014 00:00:53 UTC