- From: Roderick Sheeter <rsheeter@google.com>
- Date: Tue, 3 Mar 2015 20:44:07 -0800
- To: Vladimir Levantovsky <Vladimir.Levantovsky@monotype.com>
- Cc: WebFonts WG <public-webfonts-wg@w3.org>
- Message-ID: <CABscrrHQwGY5Y6pp2PbfAn-bQmfNG75CD1HgtStZOscize9UVw@mail.gmail.com>
My understanding is that Chrome currently takes the font and throws it directly - in woff2 or woff or whatever - to OTS and gets back a "safe" font, ready to use. I believe Firefox does something similar although I'm not sure whether it sends OTS the woff2 or decompresses first. As such, fails OTS == does not work in browser for the most part. On 3 Mar 2015 8:32 pm, "Levantovsky, Vladimir" < Vladimir.Levantovsky@monotype.com> wrote: > I am still puzzled by the role OTS plays in all this. WOFF2 encoder > takes the input TTF/OTF font and reorders/transforms/compresses the tables > packaging data into a single stream. The decoder is supposed to > decompress/restore/reorder tables and package them back into TTF/OTF > format. Where in this sequence of events does OTS play a role? > > > > Thank you, > > Vlad > > > > > > *From:* Roderick Sheeter [mailto:rsheeter@google.com] > *Sent:* Tuesday, March 03, 2015 11:24 PM > *To:* Levantovsky, Vladimir > *Cc:* WebFonts WG > *Subject:* RE: Pairing glyf/loca causes fonts to fail OTS and thus be > rejected by Chrome > > > > Interesting. Reference has not matched spec for a while if the intent was > loca follow immediately after glyf even before ttc. > > The reference implementation code predates me, but I would venture to > guess that "*The loca table MUST follow the glyf table in the table > directory*" was interpreted as being met even if there were other tables > in between. So, the encoder would just sort the tables (otspec style) and > thus loca would always "follow" glyf (since previously there would never be > >1 of each), although not necessarily immediately after. The TTC update > changed the reference to put loca immediately after glyf (for both > collections and individuals), and thus caused OTS to be unhappy where it > previously was not. > > If the tables are not sorted in a WOFF2 then OTS (until very recently at > least) rejects them and thus so will browsers that use it. That is, a table > directory (in a woff2) ordered similar to (glyf, loca, hmtx) rejects but > (glyf,hmtx,loca) does not. This may differ from the spec but it appears to > be the reality on the ground and the end result is fonts that don't work in > browser if the woff2 directory order has loca immediately after glyf. > > The upshot of all this is that if we could define the spec such that > encoding the woff2 table directory in otspec order for non-collections is > OK it would make life simpler. > > Clear as mud? :D > > On 3 Mar 2015 6:56 pm, "Levantovsky, Vladimir" < > Vladimir.Levantovsky@monotype.com> wrote: > > Hi Rod, all, > > > > I am not really sure I understand the problem in details yet, but as far > as the wire format is concerned – we didn’t really change anything. The > requirement for ‘loca’ table to follow the glyf table in WOFF2 table > directory has been in place from the early days of the WOFF2 draft and is > captured in subclause 5.4 as file format conformance case: > http://dev.w3.org/webfonts/WOFF2/spec/#table_order. > > Essentially, we just reiterated the same exact requirement when we added > the Collection directory format, with the only difference that if you have > more than one glyf/loca pair they should be ordered as pairs. > > > > This is nothing new as far as WOFF2 wire format is concerned and, like I > said, I don’t understand what exactly is different now compared to what it > used to be. WOFF2 table directory shouldn’t be ever visible to OTS that > deals with the decoded font where table directory entries should be ordered > by alphabetical tag order. > > > > Am I missing something here? Let’s discuss this tomorrow during the > telcon. BTW, I am just about to upload a new spec version with the media > type stuff added, stay tuned for the updates and the agenda for tomorrow > call. > > > > Thank you, > > Vlad > > > > > > *From:* Roderick Sheeter [mailto:rsheeter@google.com] > *Sent:* Tuesday, March 03, 2015 8:33 PM > *To:* WebFonts WG > *Subject:* Pairing glyf/loca causes fonts to fail OTS and thus be > rejected by Chrome > > > > I think I have hit a problem with the glyf/loca pairing (implemented in > woff2 HEAD). Currently HEAD pairs glyf/loca in the woff2 file and re-orders > (to otspec order) when decoding. > > > > The latest OTS re-orders tables and accepts this just fine. However, > legacy OTS (including version in browser) reject a woff2 encoded in the new > ordering (ERROR: table directory not correctly ordered). > > > > As a result, if you encode a woff2 using https://github.com/google/woff2 > at HEAD it will not render in Chrome. I think this means the ordering > effectively represents a breaking wire format change. > > > > Perhaps we should make the glyf/loca pairing requirement only for > collections and say regular woff2 table directories should order in the > otspec recommended order? Other ideas? > > > > >
Received on Wednesday, 4 March 2015 04:44:36 UTC