bcc: net...@chromium.org
Contact emails
Engineering: eus...@chromium.org, {jyrki, szabadka, lode}@google.com
Spec
Summary
Brotli is used in WOFF 2.0 web fonts with great success.
This intent to ship is about making Brotli available as a Content-Encoding method, advertised via Accept-Encoding: br.
Important note: Brotli availability is restricted to HTTPS connections.
Advantages:
Brotli outperforms gzip for typical web assets (e.g. css, html, js) by 17–25 %.
Brotli -11 density compared to gzip -9:
html (multi-language corpus): 25 % savings
js (alexa top 10k): 17 % savings
minified js (alexa top 10k): 17 % savings
css (alexa top 10k): 20 % savings
More details in the white paper.
Link to “Intent to Implement” blink-dev discussion
Is this feature supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
Yes.
Demo link
Brotli can be enabled in Chrome Canary via chrome://flags#enable-brotli
Here are a few live instances that we are aware of:
Google Fonts API serves responses (CSS) compressed with Brotli to supporting browsers (observed a weighted average of 9% savings across the top 20 css requests with Brotli -6).
CloudFlare serve their blog on an experimental HTTP2 server that also supports Brotli.
Debuggability
DevTools correctly shows the size (compressed, uncompressed) as well as the right value for the content-encoding header.
Interoperability and Compatibility Risk
Low risk:
Developer interest is high: interest from CDN vendors, tier1 web properties, third parties, nginx modules (cloudflare, google)...
Brotli has been in use in WOFF2 web fonts for a while with no compatibility issues.
Supporting Brotli for content-encoding is rather straightforward when you already support WOFF2
WOFF2 is supported in Chrome, Opera, Firefox
support for WOFF2 in Safari has recently landed (My read of webkit#150830)
support for WOFF2 is under consideration for Edge.
Brotli is supported by Firefox since M44 (also restricted to HTTPS connections)
Brotli is under consideration by the Edge team (pending pull request by Kyle Pflug, Edge program manager)
Brotli support in Safari: no public signals other than upcoming WOFF2 support (with Brotli under the hood)
OWP launch tracking bug
Entry on the feature dashboard
https://www.chromestatus.com/feature/5420797577396224
--
You received this message because you are subscribed to the Google Groups "net-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to net-dev+u...@chromium.org.
To post to this group, send email to net...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/net-dev/CADWWn7WzCP_EpuY7eEDWA4%2BNOP1bmyxPyQozGwaBOhmLfnoYkQ%40mail.gmail.com.
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
This intent to ship is about making Brotli available as a Content-Encoding method, advertised via Accept-Encoding: br.
Important note: Brotli availability is restricted to HTTPS connections.
Brotli uses a pre-defined static dictionary of more than 13,000 strings to "warm up" its internal state
bcc: net...@chromium.org
Contact emails
Engineering: eus...@chromium.org, {jyrki, szabadka, lo...@google.com
You can see that it is a dictionary by reading the algorithm to see how it uses it. How else would you expect it to be presented? It isn't going to be human readable in any form; it's composed of substrings of a giant corpus mixed together in no really meaningful order.
from Wikipedia https://en.wikipedia.org/wiki/Brotli:Brotli uses a pre-defined static dictionary of more than 13,000 strings to "warm up" its internal stateOh -- never mind, that most likely precludes small/medium embedded devices. :-(
Flipside: If there's an error in the dictionary, how would you detect it?