support WOFF2 fonts via @font-face

RESOLVED FIXED in mozilla35

Status

()

Core
Layout: Text
--
enhancement
RESOLVED FIXED
3 years ago
2 years ago

People

(Reporter: jfkthame, Assigned: jfkthame)

Tracking

({dev-doc-complete})

unspecified
mozilla35
dev-doc-complete
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(relnote-firefox 35+)

Details

Attachments

(4 attachments)

(Assignee)

Description

3 years ago
See http://dev.w3.org/webfonts/WOFF2/spec/ for current Editor's Draft of the spec.

WOFF2 offers tighter compression than WOFF 1.0, leading to faster load times for pages that use webfonts.

To use this, we'll need to build OTS with WOFF2 enabled in gfx/ots/src/moz.build, and support the WOFF2 format hint in nsUserFontSet. And in order to build OTS with WOFF2 support, we'll need to add the Brotli decoder to our build.

See https://code.google.com/p/font-compression-reference/source/browse/#git%2Fbrotli for Brotli source; also present in https://github.com/khaledhosny/ots/tree/master/third_party/brotli.
(Assignee)

Comment 1

3 years ago
Hmm -- looks like as of now, at least, the Brotli source in https://github.com/khaledhosny/ots/tree/master/third_party/brotli is not fully up-to-date with the upstream code.

We should import Brotli directly from Google's reference repository, separately from importing OTS from Khaled's github repo.
Severity: normal → enhancement
(Assignee)

Updated

3 years ago
Depends on: 1066160
(Assignee)

Comment 2

3 years ago
Created attachment 8488093 [details] [diff] [review]
pt 1 - enable WOFF2 support in OTS.

This includes WOFF2 support in our build of OTS. (I'll approach Khaled about upstreaming the added OTS_API annotation and a better way to handle the #include path, so we don't have to maintain long-term local patches for these issues.)
Attachment #8488093 - Flags: review?(jdaggett)
(Assignee)

Updated

3 years ago
Assignee: nobody → jfkthame
Status: NEW → ASSIGNED
(Assignee)

Comment 3

3 years ago
Created attachment 8488096 [details] [diff] [review]
pt 2 - support for WOFF2 as a webfont format.

WOFF2 support in gfx, under the control of a new pref "gfx.downloadable_fonts.woff2.enabled". Initially this defaults to false for release builds, true for nightlies.
Attachment #8488096 - Flags: review?(jdaggett)
(Assignee)

Comment 4

3 years ago
Created attachment 8488097 [details] [diff] [review]
pt 3 - read metadata from a WOFF2 font if present.
Attachment #8488097 - Flags: review?(jdaggett)
(Assignee)

Comment 5

3 years ago
Created attachment 8488098 [details] [diff] [review]
pt 4 - simple reftest for a WOFF2 font.
Attachment #8488098 - Flags: review?(jdaggett)
(Assignee)

Comment 6

3 years ago
Tryserver build with bug 1066160 and the patches here:
https://tbpl.mozilla.org/?tree=Try&rev=a5d2a853c4af

Updated

3 years ago
Attachment #8488093 - Flags: review?(jdaggett) → review+

Updated

3 years ago
Attachment #8488096 - Flags: review?(jdaggett) → review+

Updated

3 years ago
Attachment #8488097 - Flags: review?(jdaggett) → review+

Updated

3 years ago
Attachment #8488098 - Flags: review?(jdaggett) → review+
Keywords: dev-doc-needed
(Assignee)

Comment 7

3 years ago
Rebased (following bug 1028497) and pushed to inbound:

https://hg.mozilla.org/integration/mozilla-inbound/rev/689da8627d4d
https://hg.mozilla.org/integration/mozilla-inbound/rev/f9c7c0ea5570
https://hg.mozilla.org/integration/mozilla-inbound/rev/8845b784128a
https://hg.mozilla.org/integration/mozilla-inbound/rev/21e9a5b9a4e3
Target Milestone: --- → mozilla35
https://hg.mozilla.org/mozilla-central/rev/689da8627d4d
https://hg.mozilla.org/mozilla-central/rev/f9c7c0ea5570
https://hg.mozilla.org/mozilla-central/rev/8845b784128a
https://hg.mozilla.org/mozilla-central/rev/21e9a5b9a4e3
Status: ASSIGNED → RESOLVED
Last Resolved: 3 years ago
Resolution: --- → FIXED
Added information (mostly compat info) to:
https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face
and
https://developer.mozilla.org/en-US/docs/Web/Guide/WOFF

Updated:
https://developer.mozilla.org/en-US/Firefox/Releases/35


Release Note Request (optional, but appreciated)
[Why is this notable]: New font format supported, Web compat (Chromium support it)
[Suggested wording]: WOFF2 fonts are now supported.
[Links (documentation, blog post, etc)]: https://developer.mozilla.org/en-US/docs/Web/Guide/WOFF
relnote-firefox: --- → ?
Keywords: dev-doc-needed → dev-doc-complete
(Assignee)

Comment 10

3 years ago
Note that woff2 support is behind a runtime pref; it's currently enabled for prerelease (nightly/aurora) builds, but will default to disabled on release channels.

The intention is, of course, to enable this by default, but we may wish to do further security review and testing before that happens. So it's unclear to me at this point what Firefox version will ship with WOFF2 enabled by default on Release.

ni? :teoli (to consider how this status should be reflected in the documentation mentioned above).
Flags: needinfo?(jypenator)
Oh, thanks Jonathan I missed that point. Fixed.

By the way, when a bug about activating WOFF2 in release is created, please add dev-doc-needed to it so that we know to update the doc about it when it lands (we de-emphasize the versions where it is supported behind a pref only) :-)
Flags: needinfo?(jypenator)
(Assignee)

Updated

3 years ago
Blocks: 1084026
Have added this to Aurora notes for 35/36 while it's awaiting a move to release.
relnote-firefox: ? → 35+
You need to log in before you can comment on or make changes to this bug.