Just to close the loop on this, the rename landed and was back-merged into 140. No flags required. Mozilla similarly renamed their implementation.
On Wed, Aug 20, 2025 at 4:44 PM Mike Taylor <miketa...@chromium.org> wrote: > On 8/20/25 10:42 a.m., Yoav Weiss (@Shopify) wrote: > > > > On Wed, Aug 20, 2025 at 4:35 PM Mike Taylor <miketa...@chromium.org> > wrote: > >> On 8/11/25 5:27 a.m., Yoav Weiss (@Shopify) wrote: >> >> Reviving this thread, as while talking to folks about deploying this I >> realized we should name `__HostHttp-` to be `__Host-Http-`. >> That makes sure that deploying __Host-Http- prefixed cookies maintains >> host semantics in non-supporting browsers and makes for a progressive >> enhancement. (rather than requiring complex server side logic to determine >> the cookie name based on browser and version) >> >> I discussed the rename with WebKit, Mozilla and Chrome engineers on the >> #cookies matrix channel and everyone seemed on board with it. >> I also filed spec <https://github.com/httpwg/http-extensions/pull/3153> >> PRs <https://github.com/whatwg/cookiestore/pull/286> as well as WPT >> <https://github.com/web-platform-tests/wpt/pull/54226>. >> >> Since this never hit stable (it landed in 140, which is still in Beta), I >> suggest to: >> * Turn off the feature flag >> <https://source.chromium.org/chromium/chromium/src/+/main:net/base/features.h;l=184?q=hosthttp%20f:feature&ss=chromium%2Fchromium%2Fsrc> >> in >> 140 (either in code with back-merges or on the server-side if Google folks >> are interested in helping with that). >> * Rename the prefix in 141 and enable the flag there. >> >> That would mean that the __Http- prefix would ship in 140 and __HostHttp- >> ships in 141, but I think that's perfectly fine. >> >> What do y'all think? >> >> Makes sense to me! >> >> >> P.S. Another thing that seems important for ease of deployment is that >> supporting browsers would apply the prefix rules to cookies already in >> their stores when they are upgraded. >> I'm planning to change Chromium's implementation to support that, but >> that doesn't seem extremely web-exposed. Let me know if you think otherwise. >> >> Will you make sure the RFC is updated to reflect this change? >> > > There's an ongoing discussion at > https://github.com/httpwg/http-extensions/pull/3156 > > Perfect, thanks. > > >> On Mon, Jun 30, 2025 at 4:36 PM Yoav Weiss (@Shopify) < >> yoavwe...@chromium.org> wrote: >> >>> Just to close the loop, the PR has landed, and the feature is now enabled >>> by default >>> <https://chromium-review.googlesource.com/c/chromium/src/+/6683341>. >>> Thanks all!! >>> >>> On Wed, Jun 25, 2025 at 8:59 PM PhistucK <phist...@gmail.com> wrote: >>> >>>> I asked Copilot there and it went over the results itself and found >>>> nothing, too. Handy (even if not 100% reliable). :) >>>> >>>> >>>> ☆*PhistucK* >>>> >>>> >>>> On Wed, Jun 25, 2025 at 7:57 PM Yoav Weiss (@Shopify) < >>>> yoavwe...@chromium.org> wrote: >>>> >>>>> >>>>> >>>>> On Wed, Jun 25, 2025 at 7:37 PM PhistucK <phist...@gmail.com> wrote: >>>>> >>>>>> Have you tried searching GitHub with a regular expression? Seems not >>>>>> to ignore anything. :) >>>>>> https://github.com/search?q=%2F__Http-%2F&type=code >>>>>> >>>>> >>>>> Thanks!! Going over the results, it seems like there's nothing there >>>>> related to cookies (other than the WPT that testing this very feature). >>>>> >>>>> >>>>>> >>>>>> >>>>>> ☆*PhistucK* >>>>>> >>>>>> >>>>>> On Wed, Jun 25, 2025 at 6:00 AM Yoav Weiss (@Shopify) < >>>>>> yoavwe...@chromium.org> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> On Wed, Jun 25, 2025 at 4:18 AM Vladimir Levin <vmp...@chromium.org> >>>>>>> wrote: >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Thursday, June 19, 2025 at 9:48:37 AM UTC-4 Yoav Weiss wrote: >>>>>>>> >>>>>>>> Contact emailsyoavwe...@chromium.org >>>>>>>> >>>>>>>> Explainer >>>>>>>> This will add the cookie name prefix `__Http-`. >>>>>>>> Cookies that would start with that prefix would only be able to be >>>>>>>> set using the `Set-Cookie` HTTP header and will have to have an >>>>>>>> `httpOnly` >>>>>>>> attribute. >>>>>>>> >>>>>>>> Adding that prefix to the cookie name will give site operators the >>>>>>>> guarantee that any such cookie they see was set by their server, and >>>>>>>> not be >>>>>>>> a malicious/compromised script. >>>>>>>> >>>>>>>> There are still ongoing discussions >>>>>>>> <https://github.com/httpwg/http-extensions/issues/3111#issuecomment-2986560222> >>>>>>>> about the exact spelling of a combination of this prefix with the >>>>>>>> `__Host-` >>>>>>>> prefix. I'd like this intent to cover both, but I'm not planning to >>>>>>>> ship >>>>>>>> the `__HostHttp` variant until the dust settles on the desired >>>>>>>> spelling. >>>>>>>> >>>>>>>> Specificationhttps://github.com/httpwg/http-extensions/pull/3110 >>>>>>>> >>>>>>>> Summary >>>>>>>> >>>>>>>> There are cases where it's important to distinguish on the server >>>>>>>> side between cookies that were set by the server and ones that were >>>>>>>> set by >>>>>>>> the client. One such case is cookies that are normally always set by >>>>>>>> the >>>>>>>> server, unless some unexpected code (an XSS exploit, a malicious >>>>>>>> extension, >>>>>>>> a commit from a confused developer, etc.) happens to set them on the >>>>>>>> client. This proposal adds a signal that would enable servers to make >>>>>>>> such >>>>>>>> a distinction. More specifically, it defines the __Http and __HostHttp >>>>>>>> prefixes, that make sure that a cookie is not set on the client side >>>>>>>> using >>>>>>>> script. >>>>>>>> >>>>>>>> >>>>>>>> What is the behavior if one attempts to set an `__Http`-prefixed >>>>>>>> cookie from script with this feature? Does it silently fail, or is >>>>>>>> there an >>>>>>>> error that is thrown? >>>>>>>> >>>>>>> >>>>>>> Similar to existing prefixes >>>>>>> <https://github.com/web-platform-tests/wpt/blob/master/cookies/resources/cookie-helper.sub.js#L76>, >>>>>>> when setting a cookie using `document.cookie`, the only way to know it >>>>>>> failed is observing (on the server) it is not present in relevant >>>>>>> requests. >>>>>>> Setting such a cookie through the CookieStore API results in a Promise >>>>>>> rejection >>>>>>> <https://github.com/web-platform-tests/wpt/blob/master/cookie-store/cookieStore_special_names.https.any.js#L39> >>>>>>> . >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Blink componentInternals>Network>Cookies >>>>>>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Internals%3ENetwork%3ECookies%22> >>>>>>>> >>>>>>>> TAG reviewNone, as the TAG doesn't typically review HTTP features. >>>>>>>> >>>>>>>> TAG review statusNot applicable >>>>>>>> >>>>>>>> Risks >>>>>>>> >>>>>>>> >>>>>>>> Interoperability and Compatibility >>>>>>>> >>>>>>>> No particular compat issues, as we don't expect this prefix to >>>>>>>> already exist in the wild. >>>>>>>> >>>>>>>> In terms of interop, Mozilla and Apple folks are heavily involved >>>>>>>> in the discussions and haven't raised any concerns. >>>>>>>> >>>>>>>> >>>>>>>> I agree that the chance of there being __Http named cookies is very >>>>>>>> low, but I've been wrong about things like this before :) Do you have >>>>>>>> any >>>>>>>> metrics/code searches/etc to validate that this is safe from compat >>>>>>>> perspective? >>>>>>>> >>>>>>> >>>>>>> I don't have any metrics, and GH search seems to ignore the _ and - >>>>>>> parts when searching for `__Http-`.. >>>>>>> I agree there's a non-zero change that someone added such a prefix >>>>>>> to a cookie (without it being httpOnly), but I think having a Finch >>>>>>> flag to >>>>>>> be able to turn the feature off in case that turns out to be the case is >>>>>>> sufficient. >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> *Gecko*: No signal (https://github.com/mozilla/ >>>>>>>> standards-positions/issues/1256) >>>>>>>> >>>>>>>> *WebKit*: No signal (https://github.com/WebKit/ >>>>>>>> standards-positions/issues/518) >>>>>>>> >>>>>>>> *Web developers*: Positive (https://lists.w3.org/ >>>>>>>> Archives/Public/ietf-http-wg/2025JanMar/0146.html) >>>>>>>> >>>>>>>> *Other signals*: >>>>>>>> >>>>>>>> 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? >>>>>>>> >>>>>>>> None >>>>>>>> >>>>>>>> >>>>>>>> Debuggability >>>>>>>> >>>>>>>> None >>>>>>>> >>>>>>>> >>>>>>>> Will this feature be supported on all six Blink platforms (Windows, >>>>>>>> Mac, Linux, ChromeOS, 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://chromium-review.googlesource.com/c/chromium/ >>>>>>>> src/+/6638647/15/third_party/blink/web_tests/external/wpt/ >>>>>>>> cookies/prefix/__Http.https.html >>>>>>>> https://chromium-review.googlesource.com/c/chromium/ >>>>>>>> src/+/6650996/2/third_party/blink/web_tests/external/wpt/ >>>>>>>> cookies/prefix/__HostHttp.https.html >>>>>>>> >>>>>>>> Flag name on about://flagsNone >>>>>>>> >>>>>>>> Finch feature namePrefixCookieHttp, PrefixCookieHostHttp >>>>>>>> >>>>>>>> Rollout planWill ship enabled for all users >>>>>>>> >>>>>>>> Requires code in //chrome?False >>>>>>>> >>>>>>>> Tracking bughttps://issues.chromium.org/issues/426096760 >>>>>>>> >>>>>>>> Estimated milestonesShipping on desktop140Shipping on >>>>>>>> Android140Shipping >>>>>>>> on WebView140 >>>>>>>> >>>>>>>> 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). >>>>>>>> None >>>>>>>> >>>>>>>> Link to entry on the Chrome Platform Status >>>>>>>> https://chromestatus.com/feature/5170139586363392?gate= >>>>>>>> 5174068239925248 >>>>>>>> >>>>>>>> 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 visit >>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohS%2BRtDnZ9x5izwv8_4xUBOxZrzBd2L8Eh_Cn58dPvd9Ayw%40mail.gmail.com >>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohS%2BRtDnZ9x5izwv8_4xUBOxZrzBd2L8Eh_Cn58dPvd9Ayw%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 visit >> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohSKsGyqchsfbHrXBLPorj--FaTvtJ4wROsNK2dwgkrUaYg%40mail.gmail.com >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohSKsGyqchsfbHrXBLPorj--FaTvtJ4wROsNK2dwgkrUaYg%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 visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohSLRDpHAP0HSx1xdz2%2Bt8Odo8DzhnJ9P3nO7%3DZnT_HvOYg%40mail.gmail.com.