- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Wed, 8 Apr 2015 17:55:02 -0700
- To: John Daggett <jdaggett@mozilla.com>
- Cc: www-style <www-style@w3.org>
On Thu, Mar 26, 2015 at 7:35 PM, John Daggett <jdaggett@mozilla.com> wrote:
> I think it might be a good idea to add a note about the parsing of font
> family names in Section 2.1. The spec currently defines the parsing of
> the family argument to the FontFace constructor as:
>
> Parse the family argument, and the members of the descriptors
> argument, according to the grammars of the corresponding
> descriptors of the CSS @font-face rule.
>
> This is fine I think but the current Chrome implementation treats the
> family argument as if it was already quoted, such that the assertion
> below will fail:
>
> var f1 = new FontFace("@blah", "url(x)");
> assert(f1.status == "error"); // @blah is not a valid name unless quoted
>
> Suggested note:
>
> As with font family names within @font-face rules, the family argument
> is a single font family name. It can be unquoted or quoted and it cannot
> be a generic font family name (e.g. sans-serif).
>
> Test examples:
>
> var f2 = new FontFace("'simple'", "local(Georgia)");
> assert(f2.status == "unloaded");
>
> document.fonts.add(f2);
> document.fonts.load("simple");
> assert(f2.status != "unloaded"); // simple == 'simple' so f2 should be
> loading
Alternately, we could just define that the family argument is taken
literally (matching Chrome behavior). I don't think there's really
any need to invoke the weird parsing rules we have for family names.
~TJ
Received on Thursday, 9 April 2015 00:55:49 UTC