0
Commit Graph

32 Commits

Author SHA1 Message Date
Keita Suzuki
44b2afc5c1 Add experiment doc for ServiceWorkerStaticRoutingTimingnfo
This CL adds an experiment doc for
`ServiceWorkerStaticRoutingTimingnfo` prior to starting an Origin Trial.

Change-Id: I19987fcdc2d891f0b662c79e68c6943e8eacdb96
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5998832
Reviewed-by: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
Reviewed-by: Shunya Shishido <sisidovski@chromium.org>
Commit-Queue: Keita Suzuki <suzukikeita@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1379628}
2024-11-07 12:46:35 +00:00
Mingyu Lei
3caacb1754 Prompt API: add chromium doc for prompt API in extension
Bug: 375959783
Change-Id: I33222b331a96b6b305005fb93b452ef198426f36
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5981554
Reviewed-by: Fergal Daly <fergal@chromium.org>
Commit-Queue: Fergal Daly <fergal@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1376775}
2024-11-01 07:18:55 +00:00
Tsuyoshi Horo
ceee8dbd0f Update compression-dictionary-transport.md
Bug: 1413922
Change-Id: I7b299dbea38711e25e092ed82058785a5e267262
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5561528
Reviewed-by: Patrick Meenan <pmeenan@chromium.org>
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1306016}
2024-05-25 00:39:53 +00:00
Tsuyoshi Horo
d934bf3745 Use the new "dcb" and "dcz" content encodings of Compressed Dictionary
The spec of Compression Dictionary Transport has been changed to use
new `dcb` and `dcz` content encodings.
https://github.com/httpwg/http-extensions/pull/2784

To follow the spec change, this CL changes the Chromium implementation
and tests as follows:

- Use "dcb" content encoding name instead of "br-d".
- Use "dcz" content encoding name instead of "zstd-d".
- Remove the "Content-Dictionary" response header.
- Check the magic number and the sha256 hash in the head of the
  Dictionary-Compressed streams using
  SharedDictionaryHeaderCheckerSourceStream.
- Re-generate test files using the new content encodings.

Bug: 1413922
Change-Id: I4f2f40c1f0c3666b4f0b54e34ad966ffccadd96b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5552563
Reviewed-by: Kenichi Ishibashi <bashi@chromium.org>
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Reviewed-by: Patrick Meenan <pmeenan@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1304826}
2024-05-23 02:02:45 +00:00
Tsuyoshi Horo
6ca3287f06 Use compression-dictionary for link rel attribute
Currently Chromium is using `dictionary` link rel attribute for fetching
compression dictionaries. But in the new spec of Compression Dictionary
Transport [1], `compression-dictionary` is used for link rel attribute.

So this CL changes the Chromium code to use `compression-dictionary` for
link rel attribute.

Note: This change is a breaking change. But this feature is not enabled
by default yet, and we are not conducting Origin Trial experiment now.

[1] https://datatracker.ietf.org/doc/draft-ietf-httpbis-compression-dictionary/04/

Bug: 40255884
Change-Id: Ie393e22c6b7411568406c55c7b16516f70040dd2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5550240
Reviewed-by: Patrick Meenan <pmeenan@chromium.org>
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1303739}
2024-05-21 14:43:55 +00:00
Alison Gale
59c007a7ad Migrate TODOs referencing old crbug IDs to the new issue tracker IDs
The canonical bug format is TODO(crbug.com/<id>). TODOs of the
following forms will all be migrated to the new format:

- TODO(crbug.com/<old id>)
- TODO(https://crbug.com/<old id>)
- TODO(crbug/<old id>)
- TODO(crbug/monorail/<old id>)
- TODO(<old id>)
- TODO(issues.chromium.org/<old id>)
- TODO(https://issues.chromium.org/<old id>)
- TODO(https://issues.chromium.org/u/1/issues/<old id>)
- TODO(bugs.chromium.org/<old id>)

Bug id mapping is sourced from go/chrome-on-buganizer-prod-issues.
See go/crbug-todo-migration for details.

#crbug-todo-migration

Bug: b/321899722
Change-Id: Ifd155bbeff882ea939f74cf8b8f847f42847940b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5468156
Reviewed-by: Darryl James <dljames@chromium.org>
Owners-Override: Alison Gale <agale@chromium.org>
Commit-Queue: Alison Gale <agale@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1290297}
2024-04-20 03:05:40 +00:00
Tsuyoshi Horo
42fb8d08a7 Introduce a flag to enable/disable compression dictionary over http2
This CL also enables CompressionDictionaryTransportOverHttp1 flag by
default.

Bug: 1413922
Change-Id: I3784c265ee91e4536dc2ecc816926eaa3233d058
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5437197
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Reviewed-by: Patrick Meenan <pmeenan@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1285570}
2024-04-11 01:47:55 +00:00
Tsuyoshi Horo
40d4e43a01 Remove V1 backend implementation of Compression Dictionary
We have completed the implementation of a new V2 backend for the
CompressionDictionaryTransport feature. And we don't need to keep the V1
backend. So this CL removes the V1 backend.

Bug: 1413922
Change-Id: Ifb8e59e9f617d67a9098adfce4f1b4f1b422d06b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5274982
Reviewed-by: Patrick Meenan <pmeenan@chromium.org>
Reviewed-by: Adam Rice <ricea@chromium.org>
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1257871}
2024-02-08 12:42:22 +00:00
Tsuyoshi Horo
d343478be1 Store match-dest and id of dictionary into the SQL database
After https://crrev.com/c/5248489, Chromium parses "id" and "match-dest"
option of "Use-As-Ditionary" response header. But those information is
not stored in the SQL database. This CL adds the support.

To store the information, the SQL database needs to be updated as
following:

- Change the existing `id` field to `primary_key`.
- Add a new `id` field to store the "id" option.
- Add a new `match_dest` field to store the "match-dest" option.
- Add the `match_dest` to the `unique_index` index.
- Change kCurrentVersionNumber and kCompatibleVersionNumber from 1 to 2.

As the existing database scheme (version 1) is used only for the first
Origin Trial (M119-M122), we don't need to migrate the data from version
1 to the new scheme (version 2). So `DoMigrateDatabaseSchema()` method
just deletes the existing table `dictionaries` and the `total_dict_size`
metadata.

Bug: 1413922
Change-Id: Ia2841e4f022cc48cf766b51639cd7047f6a1bc81
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5271881
Reviewed-by: Patrick Meenan <pmeenan@chromium.org>
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1257129}
2024-02-07 01:45:08 +00:00
Tsuyoshi Horo
cdb7dfa61e Use SimpleUrlPatternMatcher for dictionary matching
The spec of Compression Dictionary Transport has been changed by [1] to
use URLPattern [2] for the matching algorithm of dictionaries. Also [3]
changed the Use-As-Dictionary header’s "match" value to be parsed as a
constructor string of URLPattern.

This CL changes the behavior of Chromium to follow those spec changes
when V2 backend is enabled.

[1]: https://github.com/httpwg/http-extensions/pull/2646
[2]: https://urlpattern.spec.whatwg.org/
[3]: https://github.com/httpwg/http-extensions/pull/2689

Fuchsia-Binary-Size: Size increase is unavoidable.
Bug: 1413922
Change-Id: I6ffba1c8c016145822643a18bc4f18bb7f0ac35f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5232339
Reviewed-by: Patrick Meenan <pmeenan@chromium.org>
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1256029}
2024-02-05 01:35:01 +00:00
Tsuyoshi Horo
47afd65f83 Stop checking "expires" option in Use-As-Dictionary response header
Currently Chromium is using "expires" option in Use-As-Dictionary
response  header for the dictionary lifetime. The option name has been
renamed to "ttl" in the spec discussed in IETF HTTPWG.

And the new change in the spac [1] removed this, and the lifetime should
be calculated from the response's freshness [2].

After this CL, when V2 backend is enabled, Chromium will not check
"expires" option, and it will check the response's freshness.

[1]: https://github.com/httpwg/http-extensions/pull/2709
[2]: https://datatracker.ietf.org/doc/html/rfc9111#name-freshness

Bug: 1413922
Change-Id: Idd2cdeb526099a1f2854ea0094541cedc0a64af8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5227360
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Reviewed-by: Kenichi Ishibashi <bashi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1251343}
2024-01-24 11:47:09 +00:00
Tsuyoshi Horo
f236f82bd9 Check Content-Dictionary header when V2 backend is enabled.
A new "Content-Dictionary" response header was introduced by this spec
change [1].

When V2 backend is enabled, if the "Content-Encoding" response header
indicates that a dictionary is used, Chrome will check the
"Content-Dictionary" response header. And if there is no such header or
it doesn't match with the value of "Available-Dictionary" request
header, Chrome will treat the response as an error.

[1]: https://github.com/httpwg/http-extensions/pull/2680

Bug: 1413922
Change-Id: I37d09fad1201f4fb4b059d65c4aaee58cec788ac
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5226641
Reviewed-by: Kenichi Ishibashi <bashi@chromium.org>
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1251341}
2024-01-24 11:37:51 +00:00
Tsuyoshi Horo
1659f91a75 Use Available-Dictionary request header when V2 backend is enabled
The latest spec discussed in IETF HTTPWG is using `Available-Dictionary`
request header name instead of `Sec-Available-Dictionary`.
Also in the value is using a Structured Field sf-binary sha256 hash
of the dictionary after [1].

So after this CL, when V2 backend is enabled, Chrome will set
`Available-Dictionary` header with a Structured Field sf-binary sha256 hash of the dictionary.

[1]: https://github.com/httpwg/http-extensions/pull/2680

Bug: 1413922
Change-Id: Ibb716ec27bb8f5d58a5266ad6ac3ec75ad643130
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5224886
Reviewed-by: Kenichi Ishibashi <bashi@chromium.org>
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1251259}
2024-01-24 06:30:03 +00:00
Tsuyoshi Horo
caa7330ecd Remove hash algorithm negotiation logic for use-as-dictionary header
Currently we check `algorithms` value of `use-as-dictionary` header. But
the algorithm negotiation logic is not implemented yet, and it was
removed from the spec [1]. So this CL removes the `algorithms` value
related codes.

[1]: https://github.com/httpwg/http-extensions/pull/2675

Bug: 1413922
Change-Id: I036d7facdc58c3a53ef3ccd283efba848c0b7fd4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5223985
Reviewed-by: Kenichi Ishibashi <bashi@chromium.org>
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1251257}
2024-01-24 06:19:50 +00:00
Ming-Ying Chung
251a52dcbd [docs] Update fetchLater API's OT documentation
Bug: 1465781
Change-Id: I38c59336269a2dd80dd25731a9c4302b92837ea7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5215810
Auto-Submit: Ming-Ying Chung <mych@chromium.org>
Reviewed-by: Fergal Daly <fergal@chromium.org>
Commit-Queue: Fergal Daly <fergal@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1249259}
2024-01-19 07:35:30 +00:00
Tsuyoshi Horo
37013fa45f Use "br-d" content encoding when V2 backend is enabled.
Bug: 1413922
Change-Id: I4c52dd78e4f23f5f8e37cd6a46db103cde5ddc02
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5185977
Reviewed-by: Takashi Toyoshima <toyoshim@chromium.org>
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Reviewed-by: Patrick Meenan <pmeenan@chromium.org>
Reviewed-by: Adam Rice <ricea@chromium.org>
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1247070}
2024-01-15 09:41:53 +00:00
Tsuyoshi Horo
02878d3cd5 Introduce a FeatureParam for new CompressionDictionaryTransportBackend
We will implement a new behavior of Compression Dictionary Transport
to catch up the spec changes under the new V2 FeatureParam.

Bug: 1413922
Change-Id: Ib7c42f1e9720df047149766b9f3dc155811e57a8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5188305
Reviewed-by: Patrick Meenan <pmeenan@chromium.org>
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1246260}
2024-01-12 05:21:57 +00:00
Tsuyoshi Horo
2cce8d5236 Introduce CompressionDictionaryTransportRequireKnownRootCert flag
We are observing potential issues with CompressionDictionaryTransport
feature that may be caused by network appliances that intercept network
traffic.

To investigate this issue, this CL introduces a new feature flag named
CompressionDictionaryTransportRequireKnownRootCert. If this feature is
enabled, Chromium will use stored shared dictionaries only when the
HTTPS connection's certificate is rooted by a well known root CA or when
the server is localhost.

Bug: 1413922
Change-Id: Iaaa9d4db9d335cde12632925c1e36b2a55a4cf9d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5028336
Reviewed-by: Kenichi Ishibashi <bashi@chromium.org>
Reviewed-by: Christian Dullweber <dullweber@chromium.org>
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1232707}
2023-12-04 15:07:05 +00:00
Tsuyoshi Horo
47cfd6ea72 Introduce CompressionDictionaryTransportOverHttp1 flag.
We are observing potential issues with CompressionDictionaryTransport
feature that may be caused by network appliances that intercept network
traffic.

To mitigate this issue, this CL introduces a new feature flag named
CompressionDictionaryTransportOverHttp1. If this feature is disabled,
Chrome will not use storead dictionary when the connection is using
HTTP/1 for non-localhost requests.

Bug: 1413922
Change-Id: I8e2c8846c4a5b6b5b66e5c27473f1b86c7bd3e2d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5048575
Reviewed-by: Kenichi Ishibashi <bashi@chromium.org>
Reviewed-by: Christian Dullweber <dullweber@chromium.org>
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1229835}
2023-11-28 11:10:35 +00:00
Ming-Ying Chung
141600c51d [fetch-later] Add devtrial instructions
Bug: 1465781
Change-Id: Ic0d76f11a02a772fe1cb8fdf28510259ec8eebea
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5023547
Reviewed-by: Fergal Daly <fergal@chromium.org>
Commit-Queue: Ming-Ying Chung <mych@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1224061}
2023-11-14 03:12:41 +00:00
Nidhi Jaju
010e0bd827 Fix typos in Compression Dictionary Transport doc
Bug: 1479465, 1479809
Change-Id: If2ba94ec95cfdf43a2f39f5ed17984c6cc7a0984
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4852553
Commit-Queue: Nidhi Jaju <nidhijaju@chromium.org>
Reviewed-by: Tsuyoshi Horo <horo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1194766}
2023-09-11 11:05:36 +00:00
Tsuyoshi Horo
9a5c875c89 Mention about the large dictionary issues in .md
Bug: 1479465, 1479809
Change-Id: Id2afa94b5b9baa0798a2bcef721d6b5aa7beaf69
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4852547
Reviewed-by: Patrick Meenan <pmeenan@chromium.org>
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1194608}
2023-09-10 17:51:02 +00:00
Tsuyoshi Horo
27c43a3f52 Update compression-dictionary-transport.md for Shared Zstandard
Bug: 1462543
Change-Id: I4b6fd7895bf12ecf610fe9fbdb157b6acecba453
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4800750
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Reviewed-by: Nidhi Jaju <nidhijaju@chromium.org>
Reviewed-by: Tsuyoshi Horo <horo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1186327}
2023-08-22 07:36:14 +00:00
Tsuyoshi Horo
49d12a1e28 Mention about type option in compression-dictionary-transport.md
Bug: 1413922
Change-Id: If8b1f7f1cff5a8dae68569f3dd3d9a3e2005a786
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4769039
Reviewed-by: Patrick Meenan <pmeenan@chromium.org>
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1182299}
2023-08-10 21:42:03 +00:00
Tsuyoshi Horo
61d47db4c2 Add docs/experiments/compression-dictionary-transport.md
Bug: 1413922
Change-Id: Ib2ab82d92bafa78e53a3169060e130b82b22ce7a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4740988
Commit-Queue: Tsuyoshi Horo <horo@chromium.org>
Reviewed-by: Patrick Meenan <pmeenan@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1179323}
2023-08-03 23:02:25 +00:00
Yuzu Saijo
0a936704a1 [bfcache] Add a doc for NotRestoredReasonsAPI
This CL adds a document for NotRestoredReasons API, including how to
enable OT.

Change-Id: Ibcdb6d6a4ec4868538b1d039a3ddc2a0b79c96db
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3990299
Reviewed-by: Fergal Daly <fergal@chromium.org>
Commit-Queue: Yuzu Saijo <yuzus@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1069519}
2022-11-10 01:57:30 +00:00
Ming-Ying Chung
812643ecff [docs][beacon-api] Rename Page Unload Beacon to Pending Beacon
The [latest decision][1] is to consolidate everything to Pending Beacon.

[1]:  https://github.com/WICG/pending-beacon/issues/46

Bug: 1293679
Change-Id: I2425c4f0cbcfb155dfc49dd7426a3ab32a7cc1a6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3959395
Auto-Submit: Ming-Ying Chung <mych@chromium.org>
Commit-Queue: Fergal Daly <fergal@chromium.org>
Reviewed-by: Fergal Daly <fergal@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1060295}
2022-10-18 04:18:46 +00:00
Fergal Daly
a8e5ee957c Add link to OT registration page for Permissions-Policy: unload.
Bug: 1324111
Change-Id: I1aa92782fb3a05bee69e4f6a490e05102ddec0d1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3928524
Commit-Queue: Fergal Daly <fergal@chromium.org>
Reviewed-by: Ming-Ying Chung <mych@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1052932}
2022-09-29 12:59:42 +00:00
Ming-Ying Chung
728b5d2d87 [docs][beacon-api] Update OT doc to include missing limitations.
Bug: 1291435
Change-Id: I857a5db216ab48906a9feb64951c4e5dc800f9e6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3921294
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Commit-Queue: Ming-Ying Chung <mych@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1052337}
2022-09-28 11:51:48 +00:00
Fergal Daly
17b12d03f6 Add docs for Permissions-Policy: unload trial.
Bug: 1324111
Change-Id: Ie9223f4155e1f38ce41a85d230ef63623e64a184
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3901893
Reviewed-by: Yuzu Saijo <yuzus@chromium.org>
Commit-Queue: Fergal Daly <fergal@chromium.org>
Auto-Submit: Fergal Daly <fergal@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1050076}
2022-09-22 07:56:44 +00:00
Ming-Ying Chung
87589ac263 [docs][beacon-api] Update the landing docs for Origin Trial to reflect latest status
Bug: 1293679
Change-Id: I498eded635b98f389dcc155275909d9bf2ea76c8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3898514
Commit-Queue: Ming-Ying Chung <mych@chromium.org>
Reviewed-by: Fergal Daly <fergal@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1047870}
2022-09-16 07:32:28 +00:00
Ming-Ying Chung
1b15aba147 [beacon-api] Add a doc for Page Unload Beacon API
Bug: 1293679
Change-Id: I805dd7c3330170a58e3ee9ff3f39efcc162257b0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3867070
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Commit-Queue: Ming-Ying Chung <mych@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1041427}
2022-08-31 09:12:27 +00:00