W3C

- DRAFT -

Barcelona f2f

16 Sep 2014

Agenda

See also: IRC log

Attendees

Present
Vlad, David (kuettel), Kenji (kbx), nyshadh, RSheeter, sergeym (on phone), Behedad
Regrets
Raph, Jonathan, John Hudson
Chair
Vlad
Scribe
ChrisLilley, kbx, kuettel

Contents


<ChrisLilley> ScribeNick: ChrisLilley

Actions roundup

http://www.w3.org/Fonts/WG/track/actions/open

<Vlad> Open action items: http://www.w3.org/Fonts/WG/track/actions/open

<Vlad> actions pending review: http://www.w3.org/Fonts/WG/track/actions/pendingreview

action-166 mobile perf

Vlad: useful but not critical

kuettel: chrome on android is using woff2 without issue

kenji: several metrics, such as when font cant be used, was 30%
... now its 25% and its mostly because of woff2 as well as some other optimisations.
... also a metric for how long to display the text. was 630ms now 400ms so woff2 has improved things
... compared to woff1
... data is sent from chrome users who agree t send stats. these are from chrome 35
... compared to chrome 37 with woff2

rod: there was an issue about higher battery life

kuettel: prefer to keep this action open as we add more data

kenji: memory might be tricky, needs more analysis

action-122?

<trackbot> action-122 -- Raph Levien to Investigate the TTC support as part of the WOFF 2.0 pre-processing mechanism -- due 2013-10-30 -- OPEN

<trackbot> http://www.w3.org/Fonts/WG/track/actions/122

trackbot, status

(suggests adding Kenji as he is missing from trackbot users)

kuettel: was not clear what we decided earlier. css webfonts does not support ttc

behedad: its in the CSS3 spec but not implemented

kuettel: raph had suggested a way but it was not prototyped

Vlad: adobe has been active to extend TTC to OT collection with CFF fonts
... so guessing they see it as important

kuettel: christopher slye had been contacted to see if adobe was interested.

Vlad: christoopher stepped down, Adobe have another rep now

(wg members https://www.w3.org/2000/09/dbwg/details?group=44556 )

kuettel: so we could prototype

rod: sure, could look at that. what was raph's suggestion?

kuettel: look at scope of changes, then consult with behedad and raph
... should not change wire format

(re-assigned to Rod with target 31 oct)

actoion-129?

action-129?

<trackbot> action-129 -- David Kuettel to Prepare a mime type application draft and justification for top-level "font" registration (with Vlad) -- due 2014-02-05 -- OPEN

<trackbot> http://www.w3.org/Fonts/WG/track/actions/129

kuettel: takes a long time, is not blocking

Vlad: as with woff1 we will register in application subtree
... spoke to some folks involved, and they said unless there is very compelling explanation for a separate top level type, then it will not be accepted
... but it is at least possible now

kuettel: target date Jan 31 2015

action-132?

<trackbot> action-132 -- David Kuettel to Track progress of Brotli specification to RFC -- due 2014-09-10 -- OPEN

<trackbot> http://www.w3.org/Fonts/WG/track/actions/132

zoltan says spec has been sent as ID, needs feedback, WG could help for review

action chrisl to use ietf-w3c liaison to get review and guidance for next steps on Brotli ID

<trackbot> Created ACTION-146 - Use ietf-w3c liaison to get review and guidance for next steps on brotli id [on Chris Lilley - due 2014-09-23].

kuettel: compression team thrilled to see brotli picked up and deployed in browsers

action-133?

<trackbot> action-133 -- Raph Levien to Review the spec edits and finalize the definition of the "nominal size" -- due 2014-08-20 -- OPEN

<trackbot> http://www.w3.org/Fonts/WG/track/actions/133

Vlad: raph still intends to clarify this, by early october
... critical, as little benefit and hard to implement
... not enough info for decoder to allocate memory with confidence

ChrisLilley: agree, its not like woff1 which had a guarantee due to bitwise identical, not the case here

Vlad: alternative is to specify an exact implementation but that constrains implementation

rod: its clear ppl have to manage memory themselves

Vlad: goal with mtx was optimal decompression
... original size may be a good estimate of required size but is not a guarantee
... keep action on raph

action-138?

<trackbot> action-138 -- Vladimir Levantovsky to Review conformance statements for woff 1.0 and transfer the applicable ones over -- due 2014-09-17 -- OPEN

<trackbot> http://www.w3.org/Fonts/WG/track/actions/138

Vlad: sent an email

http://lists.w3.org/Archives/Public/public-webfonts-wg/2014Sep/0016.html

Vlad: in woff1, we tried to reproduce same structure as sfnt so table directory was fixed size and padded. each table reference was uncompressed or separately compressed, and 4byte aligned, and end padded
... in woff2 alltable directory entires variable length, very small, one byte of flags plus up to 5 bytes of size, so padding removes that benefit
... thus anything about byte alignment and padding is not applicable
... so must parse whole set of enties for find where compressed stream starts
... table is not parsed until after header is decompressed. in multithread you conld decompress in anther thread

behedad: its such a small bit of data, not worth optimising for
... its like 20 bytes

Vlad: we have two byte reserved, not sure why

ChrisLilley: think it was for padding only

Vlad: could use them to hold table offset

behedad: require it to be zero for later expansion

Vlad: already discussed, file format requires zero but ua not required to fail on non-zero

behedad: first, throwing away an extension opportunity, and introduce twqo ways to compute same thing so you get platform variabilities. dont like the redundancy
... currently done by computing the offset by counting

ChrisLilley: could see that as a potential exploit

behedad: its using it as a cache, like TT did, with bad results

Vlad: already updated the spec to see what the wordin would look like
... added para that says it is different to sfnt; reflect exact order in compressed font stream
... theis was implied but not directly stated

ChrisLilley: good catch

close action-138

<trackbot> Closed action-138.

keep things as-is

action-143?

<trackbot> action-143 -- Vladimir Levantovsky to Update the spec in regards to the bug -- due 2014-09-17 -- OPEN

<trackbot> http://www.w3.org/Fonts/WG/track/actions/143

Vlad: in woff 1 there were some useful notes that could be copied over
... all the checksums are screwed up, I realised
... due to transforms. spec is silent thatthese need to be recomputed

kuettel: google implementation is recomputing the checksums already

Vlad: keep 143 open for now. used to have a definition of transformed glyph header, and assumed sequence of compressed data streams. so needs entire transformed glyph sequence explicitly spelled out
... so edit spec to clarify sequence of data fields

this relates to action-144

pending review actions

https://www.w3.org/Fonts/WG/track/actions/pendingreview

these are all reflected in the latests spec. so unless you saw an issue in the spec, they are done

action-140 causes a change in the google implementation

kuettel: we need to update for that
... we need to test that change

close action-125

<trackbot> Closed action-125.

action-126

<trackbot> action-126 -- David Kuettel to Check publication of security review -- due 2014-01-15 -- PENDINGREVIEW

<trackbot> http://www.w3.org/Fonts/WG/track/actions/126

kenji: fuzzer was used to make bad data, look for crashes. fixed, especially if it could be exploited. fuzzer is silent at this point. still running, but so far not found

close action-128

<trackbot> Closed action-128.

ChrisLilley: not enough svg in OT to form real conclusions

close action-126

<trackbot> Closed action-126.

kuettel: brotli is very good for general text not just fonts. works well on html and xml

behedad: suggested svgz in svg table, more for non-web use. but its redundant to gzip the svg and the brotli

Vlad: OT spec doesn't allow for gzip compressed svg

behedad: its part of the svg spec itself

Vlad: reasonable to allow either.
... for woff case it may be better to unzip and then brotli it
... ISO spec under final review, so not much time for comments

ChrisLilley: so its DIS now?
... changes are suggested bot blocking

(we will not require any SVG pre-processing)

http://dev.w3.org/webfonts/WOFF2/spec/#Metadata

close action-131

<trackbot> Closed action-131.

action-134?

<trackbot> action-134 -- Vladimir Levantovsky to - edit the spec to reflect the recommended changes -- due 2014-09-10 -- PENDINGREVIEW

<trackbot> http://www.w3.org/Fonts/WG/track/actions/134

see http://lists.w3.org/Archives/Public/public-webfonts-wg/2014Sep/0019.html

close action-134

<trackbot> Closed action-134.

action-135?

<trackbot> action-135 -- Roderick Sheeter to Check the current reference iomplementation to see what is currently implemented -- due 2014-09-10 -- PENDINGREVIEW

<trackbot> http://www.w3.org/Fonts/WG/track/actions/135

Vlad: can test with a special font that could trigger multiple encodings of same value

close action-135

<trackbot> Closed action-135.

action-136?

<trackbot> action-136 -- Vladimir Levantovsky to - edit the woff2 uintbase128 description to eliminate possible multiple encoded values and specify that any error conditions must invalidate the font file -- due 2014-09-10 -- PENDINGREVIEW

<trackbot> http://www.w3.org/Fonts/WG/track/actions/136

close action-136

<trackbot> Closed action-136.

action-137?

<trackbot> action-137 -- Chris Lilley to Edit the spec and implement the changes we agreed to during this call (see minutes on sep. 3, 2014) -- due 2014-09-10 -- CLOSED

<trackbot> http://www.w3.org/Fonts/WG/track/actions/137

Vlad: now says what we discuswd, FF requires zero, AT must accept any

close action-137

<trackbot> Closed action-137.

close action-138

<trackbot> Closed action-138.

action-139?

<trackbot> action-139 -- Vladimir Levantovsky to Update the disg wording per chris's recommendations (to always remove the table) -- due 2014-09-17 -- PENDINGREVIEW

<trackbot> http://www.w3.org/Fonts/WG/track/actions/139

Vlad: older windows used dsig to set the icon on the font

behedad: word only allows OT features if font has DSIG

<Vlad> sergey, are you there

sergeym, are you there?

Vlad: sergey checked and no impls rely on dsig, onlyolder windows version to select appropriate icon

<sergeym> I'm out of batery on my phone. Will call back as sson as possible

Vlad: we dedided that making an empty DSIG had no value. Jonathan suggested removing it
... discussing dsig changes, concern over empty DSIG table
... can you confirm no apps rely on DSIG?
... older Word versions to enable OT features?

sergeym: they do not depend on DSIG, they rely on cff vs TT

Vlad: so we required encoder to remove dsig

behedad: is decoder required to reject if DSIG present?

Vlad: no

behedad: ok

close action-139

<trackbot> Closed action-139.

action-140?

<trackbot> action-140 -- Vladimir Levantovsky to The woff 2.0 encoders must also set bit 11 of the 'flags' field -- due 2014-09-17 -- PENDINGREVIEW

<trackbot> http://www.w3.org/Fonts/WG/track/actions/140

Vlad: indicates font is preprocessed, in line with OT spec

close action-140

<trackbot> Closed action-140.

action-141?

<trackbot> action-141 -- Vladimir Levantovsky to Add a normative statement in the loca table section (to firm up) -- due 2014-09-17 -- PENDINGREVIEW

<trackbot> http://www.w3.org/Fonts/WG/track/actions/141

Vlad: stores glyph offsets
... in loca table, look in header for the values

close action-141

<trackbot> Closed action-141.

action-142

<trackbot> action-142 -- Vladimir Levantovsky to Update spec to require bounding box presence -- due 2014-09-17 -- PENDINGREVIEW

<trackbot> http://www.w3.org/Fonts/WG/track/actions/142

Vlad: requires explicit bbox. was already case, adeed conformance requiremrent as UA and FF.

close action-142

<trackbot> Closed action-142.

Vlad: google impl always drops bbox from simple glyph. ok if control points always on extrema

behedad: spec is not clear if they are not extrema points. best to have bbbox of hull of all listed coordinates

Vlad: (example where bbox is larger than the points)
... spec says that if bbox cannot be calcuilated from coord data, do not drop it

behedad: impls do not do a tight ink bbox, they do the bbox of all on- and 0ff-curve points]
... spec needs to say that

kbx: should we display warning if not?
... is it a minor case?

Vlad: claim was that google drops all bboxes

kbx: can we show its uncommon

behedad: fontforge until recently did geometric bbox and truncating it, so they were all off
... but dropping is harmless, shifts by one unit

kbx: we could instrument chrome to see if this shows up

behedad: only reason there is this part of spec, is to accomodate fonts that are not correctly constructed

Vlad: but tt spec does not require correctness here

behedad: has beemn misinterpreted over time

ChrisLilley: possible to construct one where the glyph is clipped away

Vlad: (quotes, best if xmin is left side bearing) but not required

behedad: bt that refers to value from hmtx table

http://www.microsoft.com/typography/otspec/hmtx.htm

behedad: min and max of all coordinates (on and off)

<scribe> ACTION: vlad to update spec for bbox dropping criteria, min max of all coordinates [recorded in http://www.w3.org/2014/09/16-webfonts-minutes.html#action01]

<trackbot> Created ACTION-147 - Update spec for bbox dropping criteria, min max of all coordinates [on Vladimir Levantovsky - due 2014-09-23].

behedad: google impl normalizes and recomputes the bbox so a bad bbox never makes it through

<kbx> I'm back

<scribe> scribenick: kbx

W3C Process

Chris talking about the new process at w3c re last call / candidate recommendation

there used to be last call followed to CR.

problem is that if you made changes after last call, there could be some issues.

now the 2 stages are combined.

you can make changes. Major changes trigger another patent exclusion.

For 2 years, we can use the old approach or the new approach. After that it's only the new approach.

We need to decide which one.

We should also try to make a decision to go to last call and if needed determine what are the blocking items to get there.

<Vlad> sergey, are you ready to call in?

<ChrisLilley> faq https://www.w3.org/wiki/ProcessTransition2014

Vlad suggesting we go to last call as soon as the action items are closed.

in short, the old way seems more practical at this point.

open question about rejecting on invalid checksum

Chris / David: what did Woff 1 do in that case?

Vlad / Behdad: it should be a note, there doesn't seem to be any rendering engine that actually care about the checksum

Conformance test Suite

Vlad: would like to look at the different statement and outline a plan on how this could be tested

<ChrisLilley> https://www.w3.org/Fonts/WG/wiki/TestPlan20-UserAgent

<ChrisLilley> https://www.w3.org/Fonts/WG/wiki/TestPlan20-Format

<ChrisLilley> https://www.w3.org/Fonts/WG/wiki/TestPlan20-AuthoringTool

action vlad review and edit the conformance test for extraneous data

<trackbot> Created ACTION-148 - Review and edit the conformance test for extraneous data [on Vladimir Levantovsky - due 2014-09-23].

Chris: for uintbase128, need to hex edit the fonts as it probably would not be easy to produce all the specimen from regular authoring tools

Vlad: mustAccept255UInt16 is just a matter of producing the specimen fonts (3 possible encodings) and testing those.

Chris is editing the wiki

mustRejectInvalidUintBase128

is also doable, Chris is editing the wiki.

mustNotUseReservedValue is also easy, Chris is editing the wiki with the approach.

mustBeInvalidated-FailDecompress: a valid font, a corrupted font, a woff 2 font with gzip stream (see wiki for additional details)

mustBeInvalidated-FailSize: start from valid fonts and modify lengths (wiki edited)

boundingbox requirement should probably just be "MUST be calculated" instead of "MUST be calculated at the time of decoding" (so that UA have more freedom in terms of potential optimizations)

mustCalculateBBox: should be tested with a single glyph "PASS" font with no BBox.

Vlad: questions about a CTS for Brotli itself (input files that must be decompressed or failing)

David: any requirements from the IETF about this aspect?

Chris: need to confirm

action ChrisLilley to check expectations regarding CTF from IETF

<trackbot> Error finding 'ChrisLilley'. You can review and register nicknames at <http://www.w3.org/Fonts/WG/track/users>.

action ChrisL to check expectations regarding CTF from IETF

<trackbot> Created ACTION-149 - Check expectations regarding ctf from ietf [on Chris Lilley - due 2014-09-23].

shouldBeShort: can't be tested but is a sound recommendation.

action vlad make private data block section clear regarding compression

<trackbot> Created ACTION-150 - Make private data block section clear regarding compression [on Vladimir Levantovsky - due 2014-09-23].

afternoon (post4pm) discussions. File format conformance

<ChrisL> scribenick: kuettel

<Vlad> We are back from the lunch break

https://www.w3.org/Fonts/WG/wiki/TestPlan20-Format

<kuettel_> http://dev.w3.org/webfonts/WOFF2/spec/#conform-noextraneous

<kuettel_> vlad: three potential places where extra data could be added

<kuettel_> vlad: (1) end of header, beginning of table directory

<kuettel_> vlad: (2) gap between end of compressed font stream and extended metadata

<kuettel_> ACTION: vlad to change first paragraph of section 3 to remove reference to private data compression [recorded in http://www.w3.org/2014/09/16-webfonts-minutes.html#action02]

<trackbot> Created ACTION-151 - Change first paragraph of section 3 to remove reference to private data compression [on Vladimir Levantovsky - due 2014-09-23].

<kuettel_> (3) between extended metadata and private data

<kuettel_> (4) after private data

<kuettel_> vlad, chris: discussed whether there would be an opportunity for an exploit around private data. e.g. someone adds more data, but then adjusts the length such that the browser would not reject the file. Chris, shouldn't be as just transporting the data isn't enough -- someone would have to have access to it, which they wouldn't

<kuettel_> http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustSetReservedToZero

<kuettel_> (discussion around metadata and whether browsers should display it, whether browsers should reject font if not valid -- no, etc)

<kuettel_> http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustUseBrotli-FontData

<kuettel_> (captured a test for it)

<kuettel_> http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustMatchUncompressedSize

<kuettel_> (captured a test for it)

<kuettel_> http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustTransformTables

<kuettel_> (reviewing whether there should be assertions around supporting particular font formats, e.g. CFF, or whether the general sfnt language is sufficient)

<kuettel_> (Chris captured a test for it)

<kuettel_> http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustHaveCompositeBBox

<kuettel_> (Chris captured a test for it)

<kuettel_> http://dev.w3.org/webfonts/WOFF2/spec/#conform-transformedLocaMustBeZero

<kuettel_> http://dev.w3.org/webfonts/WOFF2/spec/#conform-OriginalLocaSize

<kuettel_> http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustTransformGlyfTable

<kuettel_> http://dev.w3.org/webfonts/WOFF2/spec/#conform-tableOrdering

<kuettel_> http://dev.w3.org/webfonts/WOFF2/spec/#conform-mustSpecifyGlyfTableSize

<kuettel_> Vlad: this could change based on what we decide to do with nominal size

<kuettel_> http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadataSeparatelyCompresssed

<kuettel_> http://dev.w3.org/webfonts/WOFF2/spec/#conform-metadata-afterfonttable

<ChrisL> someone said something important and we missed it ... Drinks! --Zaphod Beeblebrox

<RSheeter> at milliways?

<ChrisL> well, we HAVE dones six impossible things before, er, dinner

<ChrisL> (adjourned)

<RSheeter> ChrisL, make minutes :D

Summary of Action Items

[NEW] ACTION: vlad to change first paragraph of section 3 to remove reference to private data compression [recorded in http://www.w3.org/2014/09/16-webfonts-minutes.html#action02]
[NEW] ACTION: vlad to update spec for bbox dropping criteria, min max of all coordinates [recorded in http://www.w3.org/2014/09/16-webfonts-minutes.html#action01]
 
[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.139 (CVS log)
$Date: 2014/09/22 15:25:38 $