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

>
> 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 Statushttps://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/CAOmohSLCEih3Kf%2B3PE%2B31DEjP2O0CBf0aZmNdh9NXDVMdRz%3DDg%40mail.gmail.com.

Reply via email to