w3c / IFT

W3C Incremental Font Transfer
Other
21 stars 11 forks source link

Document serializing/caching of patched font #196

Closed pmeenan closed 1 month ago

pmeenan commented 3 months ago

Maybe in non-normative notes but it might be useful to describe the process of caching the result of patching an incremental font and what the process would be in applying new patches to that file or if the patches always need to go back to the original any time a new patch needs to be added.

Just thinking through what the loading process would look like on repeat visits of a heavily patched font as a user navigates through a site.

svgeesus commented 3 months ago

Indeed that will be a pretty common scenario, and we should describe it more fully.

garretrieger commented 3 months ago

Agreed, we should add some text. As things are currently designed all state needed for IFT to operate is fully self contained in the current version of the font file, so a user agent needs to only keep a copy of the most recent font from the result of the patch application in the cache. It won't be necessary for a UA to go back to the initially loaded font.

svgeesus commented 3 months ago

a user agent needs to only keep a copy of the most recent font from the result of the patch application in the cache. It won't be necessary for a UA to go back to the initially loaded font.

Agree we should explicitly state that, rather than requiring the reader to infer it.

I guess this would go in 2.1. Offline Usage?

svgeesus commented 1 month ago

@pmeenan

Maybe in non-normative notes but it might be useful to describe the process of caching the result of patching an incremental font and what the process would be in applying new patches to that file or if the patches always need to go back to the original any time a new patch needs to be added.

Just thinking through what the loading process would look like on repeat visits of a heavily patched font as a user navigates through a site.

The specification now explicitly addresses this question:

Incremental fonts that have been extended contain all of the state needed to perform any future extension operations according to the procedures in this section. So if an incremental font needs to be stored or cached for future use by a client it is sufficient to store only the font binary produced by the most recent application of the extension algorithm. It is not necessary to retain the initial font or any versions produced by prior extensions.

Please confirm that this answers your original question (and, I guess, the performance worry that led to it)?

pmeenan commented 1 month ago

LGTM, thanks.