- From: John Daggett <jdaggett@mozilla.com>
- Date: Mon, 9 Sep 2013 18:26:01 -0700 (PDT)
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- Cc: www-style list <www-style@w3.org>
Tab Atkins wrote:
>> 2. side effects of 'new FontFace'
>> a. adds FontFace the FontFaceSet object?
>> b. adds a new CSSFontFaceRule when on main/Document thread?
>
> The spec doesn't define any additional side-effects for "new
> FontFace()", so nothing additional happens. Would you like an
> explicit note that nothing additional occurs?
Well, the implications are sort of funky I think. You force authors
to explicitly add it to the font set?
var f = new FontFace(...);
document.fonts.add(f);
When will a FontFace object be useful independent of the set of fonts
used to support font matching?
And what are the semantics of loading for fonts that don't belong to a
FontFaceSet?
var f = new FontFace(...);
f.load();
So none of the event handlers of FontFaceSet would fire on the load,
right? And this load would be outside of the promise fulfilled by
FontFaceSet.ready()?
>> The spec really needs to state more clearly both what happens with
>> a new @font-face rule is created and what happens when a new
>> FontFace object is created. It implies that the two are linked
>> ("CSS-connected") but the exact association isn't clearly spelled out.
>
> Ooh, you're right. I handle the case where you add a new stylesheet
> that contains @font-face rules, but not the case where you just add
> a new @font-face to an existing stylesheet. I'll take care of this.
I think there's an odd pair of dual OM's here and the spec needs to
spell out the details a bit more. That is, on the one hand you have a
set of @font-face rules in a stylesheet that can be manipulated using
CSSRule-derived objects and on the other hand you have a set of
FontFace objects. It's not just adding but any form of manipulation
and whether mutations are reflected from one to the other.
@font-face {
font-family: Whitney;
src: url(...);
}
fontFaceRule.src = "local(Whitney)," + fontFaceRule.src;
Based on what you've written so far, it seems that you're imagining
that the manipulations above are automagically reflected in the
FontFace object that represents the @font-face rule. But new FontFace
objects added to document.fonts are *not* automatically reflected in
the CSS OM?
Cheers,
John Daggett
Received on Tuesday, 10 September 2013 01:26:28 UTC