diff --git a/source b/source index d557d6bedb9..c2c3c19cbc8 100644 --- a/source +++ b/source @@ -2724,6 +2724,8 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
  • `Content-Language` header
  • `Last-Modified` header
  • `Referer` header
  • +
  • field-name
  • +
  • delta-seconds
  • The following terms are defined in the Cookie specification:

    @@ -2768,6 +2770,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
  • A network scheme
  • A fetch scheme
  • HTTPS state value
  • +
  • client-hints set
  • CORS protocol
  • default `User-Agent` value
  • extract a MIME type
  • @@ -2778,8 +2781,8 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
  • network error
  • `Origin` header
  • process response
  • -
  • set
  • -
  • terminate
  • +
  • setting a header
  • +
  • terminating a fetch
  • the RequestCredentials enumeration
  • the RequestDestination enumeration
  • the fetch() method
  • @@ -4000,6 +4003,17 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute +
    Client Hints
    + +
    +

    The following terms are defined in Client Hints:

    + + +
    Content Security Policy
    @@ -4062,6 +4076,18 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute +
    Structured Headers
    + +
    +

    The following terms are defined in Structured Headers:

    + + +
    + +
    Feature Policy
    @@ -4399,6 +4425,45 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
  • "document-domain", which has a default allowlist of *.
  • +
  • "ch-dpr", which + has a default allowlist of 'self'.
  • +
  • "ch-viewport-width", which + has a default allowlist of 'self'.
  • +
  • "ch-width", which + has a default allowlist of 'self'.
  • +
  • "ch-rtt", which + has a default allowlist of 'self'.
  • +
  • "ch-downlink", which + has a default allowlist of 'self'.
  • +
  • "ch-ect", which + has a default allowlist of 'self'.
  • +
  • "ch-save-data", which + has a default allowlist of 'self'.
  • +
  • "ch-device-memory", which + has a default allowlist of 'self'.
  • +
  • "ch-ua", which + has a default allowlist of 'self'.
  • +
  • "ch-arch", which + has a default allowlist of 'self'.
  • +
  • "ch-model", which + has a default allowlist of 'self'.
  • +
  • "ch-platform", which + has a default allowlist of 'self'.
  • +
  • "ch-lang", which + has a default allowlist of 'self'.
  • @@ -9242,6 +9307,11 @@ partial interface Document { empty string, which represents the default referrer policy used by fetches initiated by the Document.

    +

    The Document has a client-hints set (a client-hints set), initially the + empty set, which represents the default client hints used by fetches initiated by the Document.

    +

    The Document has a CSP list, which is a CSP list containing all of the Content Security Policy objects active for the document. The @@ -14408,6 +14478,14 @@ interface HTMLMetaElement : HTMLElement { Content security policy content-security-policy + + Accept-CH + accept-ch + + + Accept-CH-Lifetime + accept-ch-lifetime + + + + The header's value is a sh-float. + +

    Viewport-Width
    + The “Viewport-Width” request header field is a number that indicates the layout viewport width + in CSS pixels. Its value SHOULD be the viewport width excluding the size of a + rendered scroll bar (if any), rounded to the smallest following integer (i.e. ceiling value). + + The header's value is a sh-integer. + +
    Width
    + The “Width” request header field is a number that indicates the desired resource width in CSS + pixels. Its value should be the initiator element's source set's source size, if one exists, + rounded to the smallest following integer (i.e. ceiling value). + + + The header's value is a sh-integer. + +
    Image-related response headers
    +
    Content-DPR
    + The “Content-DPR” response header field is a number that indicates the received image's + current pixel density. + + The header's value is a sh-float. + + + The current pixel density affects the calculation of density corrected intrinsic + size of image resources. As a result, the server MUST explicitly indicate the DPR of the + selected image response whenever the DPR client hint was used, or when the server otherwise + modified the image dimensions to compensate for the device's screen density.
    Requirements for providing text to act as an alternative for images
    @@ -79422,6 +79635,15 @@ interface BarProp { policy.

    +
    The client-hints set
    +
    + +

    Return the client-hints set of + window's associated + Document.

    + +
    + @@ -82894,6 +83116,40 @@ interface Location { // but see also Document's CSP list given document, response, and request.

    +
  • Let settingsObject be the Document's + relevant settings object.

  • + +
  • Let clientHintsSet be the result of running retrieve the client-hints + set with settingsObject's origin.

  • + +
  • For each hint in clientHintsSet, append hint to the Document's client-hints set.

  • + +
  • Let callerIsSecureContext be the result of executing Is environment + settings object a secure context? on settingsObject.

  • + +
  • If response's `Accept-CH` header is present, and + callerIsSecureContext is true, parse the header field value according to the + `Accept-CH` header parsing rules, as a field-name. Add each parsed client hints token to the + Document's client-hints + set.

  • + +
  • Let topLevelOrigin be the origin of the top-level + browsing context's environment settings object's + origin.

  • + +
  • If response's `Accept-CH-Lifetime` header is present, + callerIsSecureContext is true, and the response's origin + is equal to topLevelOrigin, let max-age be the result of parsing the + header field value according to the `Accept-CH-Lifetime` header parsing rules, as + a delta-seconds. Add a new + Accept-CH-Lifetime cache entry with response's origin, + max-age, and the Document's client-hints set.

  • +
  • If request is non-null, then set document's referrer to the ApplicationCache : EventTarget { +

    Accept-CH-Lifetime cache

    + +

    An Accept-CH-Lifetime cache is owned by + the user agent and consists of a list of structs that + each have the following fields:

    +
      +
    • origin (an origin)
    • + +
    • max-age (a number of + seconds)
    • + +
    • client-hints set (a + client-hints set).
    • +
    + +

    Entries must be removed after the seconds specified in the max-age field have passed since storing + the entry. Entries may be removed before that.

    + +

    The Accept-CH lifetime cache can effectively act as an alternative cookie store, + since sites can use each of the hints as a bit set on the client, and that information will be + communicated to them on every request. As such, it is appropriate for user agents to evict that + cache whenever the user clears their cookies. + +

    + +
    + +

    To add a new Accept-CH-Lifetime cache entry to the Accept-CH-Lifetime cache, given + origin, max-age, and client-hints set, append a new struct with the following fields to the Accept-CH-Lifetime cache:

    + +
    +
    origin +
    origin + +
    max-age +
    max-age + +
    client-hints set +
    client-hints set +
    + +

    To retrieve the client-hints set given an origin:

    + +
      +
    1. Let client-hints set be an empty ordered + set.

    2. + +
    3. Let originMatchingEntries be the entries in the Accept-CH-Lifetime cache whose origin is same origin with + origin.

    4. +
    5. For each entry in originMatchingEntries, for each token in its client-hints set, append the token to client-hints set.

    6. + +
    7. Return client-hints set.

    8. +
    + +

    Web application APIs

    @@ -87014,6 +87334,13 @@ interface ApplicationCache : EventTarget { performed using this environment settings object as a request client. +
    A client-hints set
    + +

    A client-hints set used for fetches + performed using this environment settings object as a request client. +

    An environment settings object also has an outstanding rejected promises @@ -98181,6 +98508,10 @@ interface WorkerGlobalScope : EventTarget { data-dfn-for="WorkerGlobalScope" data-x="concept-WorkerGlobalScope-referrer-policy">referrer policy (a referrer policy). It is initially the empty string.

    +

    A WorkerGlobalScope object has an associated client-hints + set (a client-hints set). It is initially the empty set.

    +

    A WorkerGlobalScope object has an associated CSP list, which is a CSP list containing all of the Content Security @@ -98607,6 +98938,14 @@ interface SharedWorkerGlobalScope : WorkerGlobalScope { parsing the `Referrer-Policy` header of response.

  • +
  • Let clientHintsSet be the result of running retrieve the client-hints + set with inside settings's origin.

    + +
  • For each hint in in clientHintsSet, append hint to worker global scope's client-hints set.

  • +
  • Execute the Initialize a global object's CSP list algorithm on worker global scope and response.

  • @@ -98961,6 +99300,14 @@ interface SharedWorkerGlobalScope : WorkerGlobalScope { +
    The client-hints set
    +
    + +

    Return worker global scope's client-hints set.

    + +
    + @@ -119589,6 +119936,8 @@ interface External { "refresh"; "x-ua-compatible"; "content-security-policy" + "accept-ch" + "accept-ch-lifetime" id HTML elements @@ -121654,6 +122003,9 @@ INSERT INTERFACES HERE
    [CLDR]
    Unicode Common Locale Data Repository. Unicode.
    +
    [CLIENTHINTS]
    +
    Client Hints, I. Grigorik.
    +
    [COMPOSITE]
    Compositing and Blending, R. Cabanier, N. Andronikos. W3C.
    @@ -122045,6 +122397,10 @@ INSERT INTERFACES HERE
    [SRI]
    Subresource Integrity, D. Akhawe, F. Braun, F. Marier, J. Weinberger. W3C.
    +
    [STRUCTUREDHEADERS]
    +
    Structured Headers, M. Nottingham, P-H. Kamp.
    + +
    [SVG]
    Scalable Vector Graphics (SVG) 2, N Andronikos, R. Atanassov, T. Bah, B. Birtles, B. Brinza, C. Concolato, E. Dahlström, C. Lilley, C. McCormack, D. Schepers, R. Schwerdtfeger, D. Storey, S. Takagi, J. Watt. W3C.