2017-10-01 [18:29:12.0000] as an implementor of a conformance-checking tool, my point of view on “must” language for the class of requirements discussed here earlier is that ideally they should be stated a requirement on *documents* (not authors) [18:30:10.0000] because a document must conform to the requirements in isolation from the author or system that created it [18:31:04.0000] and many to web documents aren’t really created directly but authors anyway, but instead generated in out of CMS or whatever [18:33:43.0000] see https://html.spec.whatwg.org/multipage/infrastructure.html#conforming-documents [18:34:05.0000] > For readability, some of these conformance requirements are phrased as conformance requirements on authors; such requirements are implicitly requirements on documents [15:43:50.0000] MikeSmith: I'd missed that HTML specifically describes its conformance classes. That's great. WebIDL does the same: https://heycam.github.io/webidl/#conformance claims that it only 'must's IDL fragments. I bet we've drifted from that over time though, and if we want to keep 'must'ing other specs, we should say that in #conformance. [15:50:57.0000] Domenic: I don't know of any documents describing how to write specifications. Fundamentally, I think we're in charge of making it up as we go along. [15:50:57.0000] I think my axiom here is that we need to make sure our requirements for each conformance class are "complete", meaning they cover what happens when other conformance classes fail to live up to their requirements. Then what guidelines for specs make it most likely that we'll remember to do that? [15:55:21.0000] "Don't must documents" is one of those, since it's much easier to forget to constrain the implementation when you've said that a situation must never happen. But we do break that one and just rely on spec writers to be careful. [15:55:22.0000] I think that care is then somewhat undermined by having another conformance class (specs) where we *can* forget to handle the "must never happen" cases. https://infra.spec.whatwg.org/#assertions is great for this, since it's an entirely new word for the new kind of situation. [16:26:48.0000] jyasskin: yeah, Hixie has the details about conformance classes in the HTML spec from the beginning. It’s just not something we’ve otherwise done a good job of socializing to other spec authors [16:27:08.0000] we definitely ought to have better documents describeing how to write specifications [16:27:39.0000] a lot of W3C basically don ' [16:27:39.0000] At the moment, that's Infra. [16:27:45.0000] yeah [16:29:06.0000] I don't know if I'll have time to send a patch for this any time soon. [16:30:37.0000] yeah that’t the problem: This never stays up high enough in anybody’s priority stack to get done [16:32:21.0000] but maybe I can make a patch for Infra myself 2017-10-02 [00:20:11.0000] JakeA: was there an issue or PR associated with the “Reject on cache add/addAll/put if the response has Vary: *” https://github.com/w3c/ServiceWorker/commit/8c3dbf1 [00:21:47.0000] nm I found https://github.com/w3c/ServiceWorker/issues/656 [01:43:19.0000] mkwst_sheriff: why samesite cookies? I thought you wanted "site" reserved for registrable domain type stuff? [01:49:09.0000] jyasskin: MikeSmith: I filed https://github.com/whatwg/infra/issues/158 to keep track of this [01:55:39.0000] annevk: They key on registrable domain. [01:56:01.0000] `accounts.google.com` => `docs.google.com` [01:56:10.0000] Because cookies are nuts. *shrug* [02:02:11.0000] mkwst_sheriff: wait so how are they different from normal cookies? [02:03:49.0000] mkwst_sheriff: ooh I see [02:04:12.0000] mkwst_sheriff: the original "first party" name was more clear to me [02:04:57.0000] It was originally "first-party". Folks objected. [02:05:08.0000] Well. One folk. [02:05:37.0000] mkwst_sheriff: was there also some same-origin cookie effort? [02:05:43.0000] mkwst_sheriff: I guess I got this confused with that [02:06:21.0000] There was. We ended up punting on it in favor of the `__Host-` prefix, which was trivial to implement, and gets us most of the way there (still doesn't deal with ports). [02:07:15.0000] aah okay, thanks for clearing up my confusion [02:07:32.0000] mkwst_sheriff: jochen__ has an idea for ports, but you know that [02:07:48.0000] jochen__ has lots of ideas! [02:07:55.0000] I thought his ports idea was for `document.domain`? [02:08:00.0000] I happen to like this one [02:08:17.0000] mkwst_sheriff: I think he wanted to extend it to all things that do document.domain-like things [02:08:30.0000] So also cookies and webauthn [02:12:28.0000] Hrm. I'm staring at the back of jochen__'s head through a door, but I think I'll have to wait until he walks out to see what his idea for cookies is. [02:12:39.0000] (Is it that we don't store cookies on weird ports?) [02:17:38.0000] Whoa, unicode.org supports HTTPS now?! Nice find MikeSmith! [02:18:09.0000] mkwst_sheriff: if you got them over port 80 or 443, they're only going out to port 80 or 443 [02:18:19.0000] mkwst_sheriff: if you got them from a weird port, they'll continue to go to all ports [02:18:34.0000] mkwst_sheriff: iirc [02:19:00.0000] annevk: yeah I was surprised by that too. Found it just be going through all the References one-by-one to see which might need to be updated [02:19:33.0000] That must have been a very recent change [02:19:55.0000] yeah, weeks or a few months I guess [02:20:58.0000] anyway I ended up looking through the References only because of when I discovered last week that we didn’t have the Secure Contexts spec in there [02:20:59.0000] Every now and then I go through http:// links and it's always unicode.org that sticks out [02:21:02.0000] But no longer! [02:21:10.0000] heh :) [02:21:25.0000] Even iso.org [02:21:36.0000] well you have my anxiety to thank for it :) [02:22:17.0000] after noticing that spec missing from the References, I got bothered about what else we might need to update there [02:22:32.0000] so, started pulling that thread [02:22:54.0000] then, N different PRs later I think I’m done for now [02:23:14.0000] though I still worry there’s something I overlooked [02:23:24.0000] didn’t really did it all very systematically [02:23:50.0000] annevk: I guess we'd need to deal with `example.com:443` and `example.com:81` both trying to store a session ID or something? Either explicitly storing the port or sharding the cookie jar or something? [02:23:53.0000] Progress Not Perfection [02:24:15.0000] It's not crazy! I imagine 99% of navigations are to standard ports. [02:25:49.0000] mkwst_sheriff: I don't recall what the plan was when :81 adds something, if that's only for non-standard ports or if there's some kind of way that can also be used on :443 and :80 [02:26:46.0000] annevk: I just mean that we'd need to spec sane behavior for the case when a standard port sets a cookie, and then a non-standard port sets the same cookie. [02:27:25.0000] Whatever the behavior, we'd need to store some metadata about the way the cookie was set, or put it into a separate jar based upon that context. [02:27:42.0000] So we'd probably end up doing the simple thing and adding an int to the cookie database. [02:27:46.0000] Which is probably fine. [02:27:58.0000] mkwst_sheriff: ah yeah, I suspect the idea was to just say default-port yes/no and take that into account when making requests [02:28:48.0000] mkwst_sheriff: that was also the plan for document.domain, the addition of a boolean [02:29:47.0000] I thought the plan for `document.domain` was to just stop ignoring the port when doing comparisons. [02:31:18.0000] https://www.chromestatus.com/metrics/feature/timeline/popularity/2025 is his metric for the `document.domain` bit. Not sure if it's hit stable yet... [02:31:23.0000] mkwst_sheriff: anyway, addition of boolean or int [02:31:37.0000] mkwst_sheriff: best to ask jochen__ for specifics, maybe it changed around [02:31:44.0000] Sure. Boils down to the same thing. Being explicit about it is probably for the best. [02:32:30.0000] Not sure how much it really helps for cookies, given that they span subdomains, not just ports, but `document.domain` and `WebAuthn` seem like good targets. [02:33:00.0000] document.domain and WebAuthn also span subdomains, that's the whole point [02:33:07.0000] (https://tools.ietf.org/html/draft-west-origin-cookies-01 was the origin cookie proposal, btw. Reading it again, it's pretty ugly.) [02:33:09.0000] That's why they're all in the same boat [02:33:19.0000] Fair. [02:33:51.0000] That's also why I pushed jochen__ to not just restrict document.domain, since we'd still have the leak with webauthn/cookies [02:43:44.0000] Presumably fixing the algorithm in HTML would also fix WebAuthn. [02:49:01.0000] mkwst_sheriff: can we make cookies use that algorithm too? [02:49:21.0000] mkwst_sheriff: would be nice if they all used a shared primitive [02:50:30.0000] AFAIK, they all basically rely on "registrable domain" as the relevant primitive. `document.domain` additionally relies on the `domain` attribute of `Origin`. [02:50:43.0000] But the comparison for each should be the same. [02:51:27.0000] mkwst_sheriff: I meant reuse of "is a registrable domain suffix of or is equal to" [02:52:36.0000] Cookies rely on "domain-match" (https://tools.ietf.org/html/rfc6265#section-5.1.3). [02:53:17.0000] And on not setting cookies for public suffixes (Step 5 of https://tools.ietf.org/html/rfc6265#section-5.3) [02:53:31.0000] Basically the same thing. [02:54:12.0000] Sure, I just figured it would be nicer if they all actually used the same thing [02:54:32.0000] But it doesn't matter much, as long as we don't forget they're all doing the same thing, so any updates should affect all three [02:57:17.0000] It would be nicer if they all actually used the same thing. [02:57:50.0000] And since I'm going to have to argue with folks about referencing Fetch and HTML from an RFC anyway, might as well argue with them even more, I guess. [02:59:57.0000] annevk: in https://github.com/whatwg/infra/issues/158 not sure what you mean by “it was suggested to require things from documents instead, but that doesn't quite work for APIs” [03:00:25.0000] the code that uses an API is (logically) part of the document [03:00:58.0000] so we can say, “Documents must not use this API in way that ...” or whatever [03:03:49.0000] MikeSmith: I guess if everything is a document that might work [03:03:56.0000] MikeSmith: my bad in that case [03:04:05.0000] mkwst_sheriff: enjoy [03:33:35.0000] The spec for