On Wed, May 29, 2024 at 4:31 PM Mike Taylor <miketa...@chromium.org> wrote:
> Hi there, > > Would you mind commenting on progress for the following items, per OT > renewal guidelines: > <API owner hat off / feature champion hat on> > Draft spec (early draft is ok, but must be spec-like and associated with > the appropriate standardization venue, or WICG) > Recently published <https://datatracker.ietf.org/doc/draft-ietf-httpbis-compression-dictionary/> with above-mentioned changes. +Patrick Meenan <pmee...@google.com> can probably add precision there, but it's making good progress in the HTTPWG. TAG review (see exceptions) > https://github.com/w3ctag/design-reviews/issues/877 > bit.ly/blink-signals requests > Both Mozilla <https://github.com/mozilla/standards-positions/issues/771> and WebKit <https://github.com/WebKit/standards-positions/issues/160> are positive (with ongoing discussion about some details with Mozilla folks). > Outreach for feedback from the spec community > Regular HTTPWG and WebPerfWG engagement. > WPT tests > https://wpt.fyi/results/fetch/compression-dictionary?label=experimental&label=master&aligned > thanks, > Mike > On 5/28/24 5:59 AM, Tsuyoshi Horo wrote: > > Contact emails > > h...@chromium.org, pmee...@chromium.org, yoavwe...@chromium.org, > kenjibah...@chromium.org, denom...@chromium.org > > > Explainer > > https://github.com/WICG/compression-dictionary-transport > > > Specification > > https://datatracker.ietf.org/doc/draft-ietf-httpbis-compression-dictionary/ > > > Design docs > > > https://docs.google.com/document/d/1IcRHLv-e9boECgPA5J4t8NDv9FPHDGgn0C12kfBgANg/edit > > https://github.com/WICG/compression-dictionary-transport > > https://datatracker.ietf.org/doc/draft-ietf-httpbis-compression-dictionary/ > > > Summary > > We are running the second round of the Origin Trial until Chrome 125. The > design of the feature has also evolved during the origin trial and RFC > process. We’d like to run a third round of the Origin Trial to get more > feedback on the updated > <https://chromium.googlesource.com/chromium/src/+/d934bf37456735d9bc03107c577804f439f8a986/docs/experiments/compression-dictionary-transport.md#changes-in-m127> > design. > > > Blink component > > Blink>Network > <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ENetwork> > > > TAG review > > https://github.com/w3ctag/design-reviews/issues/877 > TAG review status > > Closed > Risks Interoperability and Compatibility > > Interoperability and Compatibility risk are low. This feature introduces a > new compression method for transporting resources over HTTP. Web sites can > know the browser support for the new feature by checking > `document.createElement('link').relList.supports('compression-dictionary')`. > The feature is a negotiation between servers and clients that involves a > server specifying that a resource should be used as a dictionary for future > requests with a ‘Use-As-Dictionary’ response header. Clients that don’t > support the feature will ignore the header and nothing further will happen. > > This feature is an opt-in feature. And the dictionary storage is isolated > using the top level site and the frame origin as the key. That means, if > there is no dictionary registered for the site, the behavior of Chrome will > not change while browsing the site. Also this feature is only usable within > a secure-context so this feature will not increase the risk of having > network proxies meddle with the content’s encoding. For enterprises that > have deployed HTTPS-intercepting proxies that do not properly handle > unknown encodings there is an enterprise policy exposed to disable the > feature. The feature is currently enabled only over connections using a > well-known trust root for the secure connection which eliminates the risk > of security devices and proxies breaking traffic. The roll-out plan for > production has steps to remove the trust root restriction and enable > support in enterprise environments where intercepting proxies are common. > > > Gecko: Positive (https://github.com/mozilla/standards-positions/issues/771 > ) > > > WebKit: Positive (https://github.com/WebKit/standards-positions/issues/160 > ) > > > Web developers: Positive > > > Other signals: > > > Ergonomics > > To reduce memory usage in network services, dictionary metadata is stored > in a database on disk. And to avoid performance degradation for normal > requests that do not use a dictionary, the reading of this metadata is > designed not to block network requests. In other words, if the reading of > metadata from the database is not completed before the request header is > ready to be sent to the server, the dictionary may not be used even if it > is already registered in the database. > > > > Activation > > To adopt this feature, web developers need to make changes in their web > servers or build processes for static resources. Currently there is no > major server software which directly supports compression dictionaries. > Some CDNs have shared interest in supporting shared dictionary compression > (e.g. publicly mentioned > <https://blog.cloudflare.com/this-is-brotli-from-origin/#:~:text=One%20development%20that%20we%27re%20particularly%20focused%20on%20is%20shared%20dictionaries%20with%20Brotli.> > in a blog post by Cloudflare). > > > > Security > > Chrome registers the response as a dictionary only when the response is > CORS-readable from the document origin. Also we use a registered dictionary > to decompress the response only when the response is CORS-readable from the > document origin. Additionally, the dictionary and the compressed resource > are required to be from the same origin as each other. So this should not > introduce any new attack vector of information leaks. The dictionaries > are partitioned with the storage cache and are cleared whenever cookies or > cache is cleared to ensure that the dictionaries can not be abused as a > tracking vector. > > > > WebView application risks > > Does this intent deprecate or change behavior of existing APIs, such that > it has potentially high risk for Android WebView-based applications? > > No > > > Goals for experimentation > > We would like to collect feedback on the updated API design of Compression > Dictionary Transport feature. Also, we would like to continue some > experiments using this feature to measure its performance impact. > > > The difference from the previous Origin Trial: > > - Renamed the link rel attribute for fetching the dictionary from > "dictionary" to "compression-dictionary". > > - Using "dcb" and "dcz" content encoding in place of "br-d" and "zstd-d". > The new encodings incorporate the dictionary hash. > > - Removed the dictionary hash check logic using the "Content-Dictionary" > response header, and instead checking the hash within the encoded response > body. > > > Ongoing technical constraints > > None > > > > Debuggability > > We have introduced chrome://net-internals/#sharedDictionary. Using it, > web developers can manage the registered dictionaries. Also web developers > can check the related HTTP request and response headers (Use-As-Dictionary, > Available-Dictionary, Accept-Encoding, Content-Encoding). > > Any errors in processing responses as a result of dictionary compression > issues are reported as issues in Dev Tools. This includes things like > dictionary hash mismatches and cors-readability failures. > > > > Will this feature be supported on all six Blink platforms (Windows, Mac, > Linux, Chrome OS, Android, and Android WebView)? > > Yes > > > Is this feature fully tested by web-platform-tests > <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> > ? > > Yes. https://wpt.fyi/results/fetch/compression-dictionary > > > Flag name on chrome://flags > > chrome://flags/#enable-compression-dictionary-transport-backend > chrome://flags/#enable-compression-dictionary-transport > > > Finch feature name > > CompressionDictionaryTransportBackend CompressionDictionaryTransport > > > Requires code in //chrome? > > True > > > Tracking bug > > https://crbug.com/1413922 > > > Launch bug > > https://launch.corp.google.com/launch/4266286 > > > Estimated milestones > > OriginTrial desktop last > > 129 > > OriginTrial desktop first > > 127 > > > OriginTrial Android last > > 129 > > OriginTrial Android first > > 127 > > > > Link to entry on the Chrome Platform Status > > https://chromestatus.com/feature/5124977788977152 > > > Links to previous Intent discussions > > Intent to prototype: > https://groups.google.com/a/chromium.org/g/blink-dev/c/-qYpLo9DTjw/m/JX6kbUOtBQAJ > > Intent to experiment: > https://groups.google.com/a/chromium.org/g/blink-dev/c/NgH-BeYO72E/m/oup5DpbxAAAJ > > Intent to extend Origin Trial: > https://groups.google.com/a/chromium.org/g/blink-dev/c/7YdP2YxRQn4/m/9oPxLDdjAAAJ > > > -- > 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+unsubscr...@chromium.org. > To view this discussion on the web visit > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADk0S-UpM8k_NGuqbuA%2BNuC%2BTdGDjGzUt0Fp05Y8pHROjH-WZA%40mail.gmail.com > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADk0S-UpM8k_NGuqbuA%2BNuC%2BTdGDjGzUt0Fp05Y8pHROjH-WZA%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > -- 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+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohS%2BSQdt%2BydMG2uywbxeqi6V95SP5k1s%3DHH7JYCWcBGCUuw%40mail.gmail.com.