- From: Cameron McCormack <cam@mcc.id.au>
- Date: Wed, 18 Mar 2015 18:00:59 +1100
- To: www-style@w3.org
One additional reason for moving away from “whenever” algorithms is that
it is possible for two different “whenever” algorithms to be triggered
at the same time, and it is not defined which order their steps are run.
For example, consider:
assert(document.fonts.status == "unloaded");
document.fonts.add(new FontFace("test", "url(some-font)");
When the font finishes downloading, we are in step 5 of
http://dev.w3.org/csswg/css-font-loading/#font-face-load. Step 5.2
updates the FontFace’s status attribute to “loaded”. At that moment,
both the
Whenever one or more available font faces for a given FontFaceSet
change their status attribute to “loaded” or “error”, …
and
Whenever a FontFaceSet goes from having possibly pending font loads to
having no pending font loads, …
conditions are triggered. Clearly, to get the expected behaviour of the
FontFace being exposed on the loadingdone event, you need to run the
former algorithm’s steps before the latter’s. But it’s not well
defined.
--
Cameron McCormack ≝ http://mcc.id.au/
Received on Wednesday, 18 March 2015 07:01:29 UTC