@@ -324,17 +324,35 @@ <h4 id=terminology-headers>Headers</h4>
324
324
< hr >
325
325
326
326
< p > A < dfn > simple header</ dfn > is a < span title =concept-header > header</ span > whose
327
- < span title =concept-header-name > name</ span > is `< code title > Accept</ code > `,
328
- `< code title > Accept-Language</ code > `, or `< code title > Content-Language</ code > `, or whose
329
- < span title =concept-header-name > name</ span > is `< code title > Content-Type</ code > ` and
330
- < span title =concept-header-value > value</ span > , < span title =concept-header-parse > once parsed</ span > ,
331
- has a MIME type (ignoring parameters) that is
332
- `< code title > application/x-www-form-urlencoded</ code > `, `< code title > multipart/form-data</ code > `, or
333
- `< code title > text/plain</ code > `.
327
+ < span title =concept-header-name > name</ span > is one of
328
+
329
+ < ul class =brief >
330
+ < li > `< code title > Accept</ code > `
331
+ < li > `< code title > Accept-Language</ code > `
332
+ < li > `< code title > Content-Language</ code > `
333
+ < li > `< code title > Content-Type</ code > ` and whose < span title =concept-header-value > value</ span > ,
334
+ < span title =concept-header-parse > once parsed</ span > , has a MIME type (ignoring parameters)
335
+ that is `< code title > application/x-www-form-urlencoded</ code > `,
336
+ `< code title > multipart/form-data</ code > `, or `< code title > text/plain</ code > `
337
+ </ ul >
338
+
334
339
<!-- XXX * needs better xref
335
340
* ignoring parameters has been the standard for a long time now
336
341
* interesting test: "Content-Type: text/plain;" -->
337
342
343
+ < p > or whose < span title =concept-header-name > name</ span > is one of
344
+
345
+ < ul class =brief >
346
+ < li > `< code title > < a href =http://httpwg.org/http-extensions/client-hints.html#dpr > DPR</ a > </ code > `
347
+ < li > `< code title > < a href =http://httpwg.org/http-extensions/client-hints.html#downlink > Downlink</ a > </ code > `
348
+ < li > `< code title > < a href =http://httpwg.org/http-extensions/client-hints.html#save-data > Save-Data</ a > </ code > `
349
+ < li > `< code title > < a href =http://httpwg.org/http-extensions/client-hints.html#viewport-width > Viewport-Width</ a > </ code > `
350
+ < li > `< code title > < a href =http://httpwg.org/http-extensions/client-hints.html#width > Width</ a > </ code > `
351
+ </ ul >
352
+
353
+ < p > and whose < span title =concept-header-value > value</ span > ,
354
+ < span title =concept-header-parse > once parsed</ span > , is not a failure.
355
+
338
356
< p > A < dfn > forbidden header name</ dfn > is a < span title =concept-header > header</ span >
339
357
< span title =concept-header-name > name</ span > that is one of
340
358
@@ -804,6 +822,17 @@ <h4>Requests</h4>
804
822
an < span data-anolis-spec =html > environment settings object</ span > .
805
823
< span data-anolis-ref > REFERRER</ span >
806
824
825
+ < p > A < span title =concept-request > request</ span > has an associated
826
+ < dfn title =concept-request-client-hints-list > client hints list</ dfn > , which is a
827
+ < span title =concept-client-hints-list > client-hints list</ span > . Unless stated otherwise, it is
828
+ the empty list.
829
+
830
+ < p class ="note no-backref "> This will be used to override a client hints list associated with
831
+ an < span data-anolis-spec =html > environment settings object</ span > .
832
+ < span data-anolis-ref > CLIENT-HINTS</ span >
833
+
834
+ <!-- XXX this needs to move to CLIENT-HINTS -->
835
+
807
836
< p > A < span title =concept-request > request</ span > has an associated
808
837
< dfn > synchronous flag</ dfn > . Unless stated otherwise it is unset.
809
838
@@ -1387,6 +1416,15 @@ <h3>Referrer policies</h3>
1387
1416
< span data-anolis-ref > REFERRER</ span >
1388
1417
1389
1418
1419
+ < h3 > Client hints list</ h3 >
1420
+
1421
+ < p > A < dfn title =concept-client-hints-list > client hints list</ dfn > is a list of
1422
+ < a href =http://httpwg.org/http-extensions/client-hints.html#accept-ch > Client hint tokens</ a > ,
1423
+ each of which is one of `< code title > dpr</ code > `,
1424
+ `< code title > save-data</ code > `, `< code title > viewport-width</ code > `, or
1425
+ `< code title > width</ code > `.
1426
+
1427
+
1390
1428
< h3 > Streams</ h3 >
1391
1429
1392
1430
< p class ="note no-backref "> This section might be integrated into other standards, such as IDL.
@@ -1888,10 +1926,59 @@ <h2>Fetching</h2>
1888
1926
for HTTP/2, and equivalent information used to prioritize dispatch and processing of
1889
1927
HTTP/1 fetches.
1890
1928
1929
+
1930
+ < li >
1931
+ < p > If < var > request</ var > is a < span > navigation request</ span > , a user agent should, for each
1932
+ < span title =concept-header > header</ span > < span title =concept-header-name > name</ span >
1933
+ (< var > hint-name</ var > ) in the first column of the following table, if < var > hint-name</ var >
1934
+ is not in < var > request</ var > 's < span title =concept-request-header-list > header list</ span > ,
1935
+ < span title =concept-header-list-append > append</ span >
1936
+ < var > hint-name</ var > /< var > hint-value</ var > given in the same row on the second column, to
1937
+ < var > request</ var > 's < span title =concept-request-header-list > header list</ span > .
1938
+
1939
+ < table >
1940
+ < tr >
1941
+ < th > < span title =hint-name > hint-name</ span >
1942
+ < th > < span title =hint-value > hint-value</ span >
1943
+ < tr >
1944
+ < td > `< code title =http-dpr > dpr</ a > </ code > `
1945
+ < td > a suitable < a href =http://httpwg.org/http-extensions/client-hints.html#dpr > dpr value</ a >
1946
+ < tr >
1947
+ < td > `< code title =http-save-data > save-data</ code > `
1948
+ < td > a suitable < a href =http://httpwg.org/http-extensions/client-hints.html#save-data > save-data value</ a >
1949
+ < tr >
1950
+ < td > `< code title =http-viewport-width > viewport-width</ code > `
1951
+ < td > a suitable < a href =http://httpwg.org/http-extensions/client-hints.html#viewport-width > viewport-width value</ a >
1952
+ </ table >
1953
+
1891
1954
< li >
1892
1955
< p > If < var > request</ var > is a < span > subresource request</ span > , run these substeps:
1893
1956
1894
1957
< ol >
1958
+ < li >
1959
+ < p > If the < var > request</ var > 's < span title =concept-client-hint-list > client hints list</ span > is not empty, run these substeps for each < var > hint-name</ var > in the list:
1960
+
1961
+ < ol >
1962
+ < li >
1963
+ < p > Set < var > value</ var > to the first matching statement, if any, switching on
1964
+ < var > hint-name</ var > :
1965
+
1966
+ < dl class =switch >
1967
+ < dt > "< code title > dpr</ code > "
1968
+ < dd > a suitable < a href =http://httpwg.org/http-extensions/client-hints.html#dpr > dpr value</ a >
1969
+ < dt > "< code title > save-data</ code > "
1970
+ < dd > a suitable < a href =http://httpwg.org/http-extensions/client-hints.html#save-data > save-data value</ a >
1971
+ < dt > "< code title > viewport-width</ code > "
1972
+ < dd > a suitable < a href =http://httpwg.org/http-extensions/client-hints.html#viewport-width > viewport-width value</ a >
1973
+ < dt > "< code title > width</ code > "
1974
+ < dd > a suitable < a href =http://httpwg.org/http-extensions/client-hints.html#width > width value</ a > </ code >
1975
+ </ dl >
1976
+
1977
+ < li > < p > < span title =concept-header-list-append > Append</ span >
1978
+ < var > hint-name</ var > /< var > value</ var > to < var > request</ var > 's
1979
+ < span title =concept-request-header-list > header list</ span > .
1980
+ </ ol >
1981
+
1895
1982
< li > < p > Let < var > record</ var > be a new
1896
1983
< span title =concept-fetch-record > fetch record</ span > consisting of
1897
1984
< var > request</ var > and this instance of the
0 commit comments