Contact emails

abote...@igalia.com, ri...@chromium.org


       Explainer

None


       Specification

https://fetch.spec.whatwg.org/#dom-headers-getsetcookie


       Design docs


https://github.com/whatwg/fetch/issues/973#issuecomment-902578584
https://github.com/whatwg/fetch/issues/973#issuecomment-954815921


       Summary

Adds a way to get the values of multiple Set-Cookie headers without combining them. In HTTP, Set-Cookie is a special header for historical reasons because it can appear multiple times in a response but cannot be combined, unlike other headers. Headers objects don't currently support having multiple values of the Set-Cookie header, and this feature adds that capability.



       Blink component

Blink>Network>FetchAPI <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink>Network>FetchAPI>


       Search tags

fetch <https://chromestatus.com/features#tags:fetch>, headers <https://chromestatus.com/features#tags:headers>, cookie <https://chromestatus.com/features#tags:cookie>, Set-Cookie <https://chromestatus.com/features#tags:Set-Cookie>


       TAG review



       TAG review status

Not applicable, since the specification has already been changed to include this feature


       Risks



       Interoperability and Compatibility

The interoperability risks are low, since this feature is currently being implemented in all browser engines. This feature introduces one change to the existing iteration behavior of Headers instances, in that they may now yield multiple entries for Set-Cookie headers, when previously all Set-Cookie headers were combined in a single iteration entry. Given that this is only observable with user-created Headers objects, rather than with ones associated with Request and Response objects, this risk can be considered negligible.



/Gecko/: In development (https://phabricator.services.mozilla.com/D167897)

/WebKit/: In development (https://github.com/WebKit/WebKit/pull/9490)

/Web developers/: No signals

/Other signals/: Server-side JavaScript runtimes have been pushing this proposal as part of the Web-interoperable Runtime Community Group (WinterCG), since it allows them to use fetch-compatible HTTP server APIs. In particular, Deno was involved in writing the spec change (https://github.com/whatwg/fetch/issues/973), and both Cloudflare Workers (https://github.com/whatwg/fetch/pull/1346#pullrequestreview-797738368) and Node.js (https://github.com/whatwg/fetch/pull/1346#issuecomment-1171502837) were supportive.


       Security

Set-Cookie headers are forbidden request and response headers (https://fetch.spec.whatwg.org/#forbidden-request-header, https://fetch.spec.whatwg.org/#forbidden-response-header-name), meaning that Set-Cookie headers are filtered off of Request and Response objects. This feature does not change that, and therefore does not introduce any possible information leaks.



       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?

N/A



       Debuggability

No DevTools support required, since this feature does not change the behavior of Set-Cookie headers in network requests/responses, or otherwise affect any aspect of the network stack.



       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


       Flag name



       Requires code in //chrome?

False


       Tracking bug

https://bugs.chromium.org/p/chromium/issues/detail?id=1409512


       Estimated milestones

No milestones specified



       Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way).

N/A


       Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5184534394437632

This intent message was generated by Chrome Platform Status <https://chromestatus.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+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/63b8727a-9f01-e69d-f9b9-c46c2e1a8cbb%40igalia.com.

Reply via email to