00:07 | <Mek> | JonasNZ: from reading the spec it seems to me like Firefox might be correct. I.e. the Content-Type header is extrcated from the body in the Request constructor (or when calling fetch), if it isn't set already; and it isn't unset anywhere later... |
00:09 | <Mek> | (i.e. step 36 in https://fetch.spec.whatwg.org/#dom-request is what adds the header; and after that point the rest of the fetch algorithm as no way to distinguish a Content-Type header that might have been explicitly set by javascript from one that was extrcated from the body) |
00:49 | <JonasNZ> | In that case, I might suggest that the spec is wrong. I'll try and find the HTTP RFC, but I believe that the content type header for multipart/form-data is not valid for GET requests |
02:24 | <Jessidhia> | "A payload within a GET request message has no defined semantics; sending a payload body on a GET request might cause some existing implementations to reject the request." |
02:24 | <Jessidhia> | so... it's UB |
02:24 | <Jessidhia> | ( https://tools.ietf.org/html/rfc7231#section-4.3.1 ) |
02:30 | <domfarolino> | Jessidhia: Ah it looks like JonasNZ had "quit" and "rejoined" in between you sending that, so not sure if he saw it |
02:49 | <Jessidhia> | we need later 7 TCP for this not for DCC 😆 |
03:24 | <MikeSmith> | Domenic: TabAtkins: FYI about the Can I Use limitation for mdn-prefixed IDs, I raised https://github.com/Fyrd/caniuse/issues/5187 |
03:26 | <MikeSmith> | and also raised https://github.com/tabatkins/bikeshed/issues/1553, for the resulting limitation in Bikeshed behavior |
03:26 | <Domenic> | Awesome |
03:26 | <Domenic> | As an aside, I wonder what's up with https://caniuse.com/#feat=mdn-api_abstractrange; does Edge 76 really support something Chrome doesn't? |
03:27 | <Domenic> | Also https://developer.mozilla.org/en-US/docs/Web/API/AbstractRange#Browser_compatibility is empty, interesting |
03:27 | <MikeSmith> | I think older non-Blink/Chromium Edge supported AbstractRange |
03:27 | <Domenic> | Yeah but not 76 I would assume |
03:28 | <MikeSmith> | yeah |
03:28 | <MikeSmith> | so that’s probably a bug in the browser-compat-data for AbstractRange |
03:29 | <Domenic> | Makes sense |
03:29 | <Domenic> | It does make me wonder if "multi-implementer experience" has been met anyway though |
03:29 | <Domenic> | Like in some cases W3C has counted Emacs as an implemnetation; it'd surprise me if they decided not to count old-Edge as one. |
03:31 | <MikeSmith> | well as far as what W3C is counting for actual web-platform features, in the HTML and DOM cases at least, I am not counting old-Edge |
03:32 | <Domenic> | Well, I guess that is a good change :) |
03:33 | <MikeSmith> | yeah well I can’t speak to what they might be counting or other specs, as far as Director decisions go |
03:34 | <Domenic> | I dunno maybe process 2020 will happen and everything will stay at CR forever without that criteria |
03:35 | <MikeSmith> | well I think the Evergreen thing is actually going to happen |
03:35 | <MikeSmith> | at least I have been led to believe so |
03:36 | <MikeSmith> | and for the WebDriver spec, the WG has also been told to believe so |
03:36 | <MikeSmith> | and same for the ServiceWorker spec |
03:36 | <Domenic> | Yeah it'd be nice |
03:38 | <MikeSmith> | about the problem with the compat table at https://developer.mozilla.org/en-US/docs/Web/API/AbstractRange#Browser_compatibility, it seems like that must just be a bug, but I don’t know where in their pipeline the cause might be nor where I should raise an issue for it.. |
03:40 | <MikeSmith> | and about Can I Use showing that Edge 76 has AbstractRange support, I think there’s probably a general/meta issue with BCD right now in that it hasn’t added general thing to account for the fact the underlying engine changed |
03:41 | <MikeSmith> | the edge data in https://github.com/mdn/browser-compat-data/blob/master/api/AbstractRange.json just has "version_added": "18" |
03:42 | <MikeSmith> | so I guess the way that Can I Use and anybody else downstream consumes that is to just consider any shipping version of Edge after 18 to have that same support |
03:43 | <Domenic> | Ah that makes sense |
03:44 | <MikeSmith> | yeah |
03:44 | <MikeSmith> | BCD has a version_removed field https://github.com/mdn/browser-compat-data/blob/master/schemas/compat-data-schema.md#version_removed |
03:46 | <MikeSmith> | ...but of course for that to have effect, it would need to be manually added to the BCD edge data in dozens of JSON files |
03:47 | <MikeSmith> | I think the easier solution is for everybody to just ignore Edge 76 and beyond, as far as feature data goes |
03:49 | <Domenic> | Yeah. I wonder if it'd make sense to treat it as a separate browser, and maybe fix things up on the frontend. |
04:44 | <MikeSmith> | Domenic: by the way, in other news, I recently updated https://www.w3.org/html/ |
04:45 | <MikeSmith> | part of the context is https://github.com/validator/validator/issues/890 |
04:46 | <MikeSmith> | in particular https://github.com/validator/validator/issues/890#issuecomment-555819316 |
04:47 | <MikeSmith> | ...which was an example of confusion due to https://www.w3.org/html/ pointing people to https://www.w3.org/TR/html52/ |
04:47 | <MikeSmith> | so lemme know if you have any refinements to suggest for text on https://www.w3.org/html/ |
04:49 | <MikeSmith> | as far as https://www.w3.org/TR/html52/ (and https://www.w3.org/TR/html51/, and https://www.w3.org/TR/html50/, and corresponding dated URLs like https://www.w3.org/TR/2017/REC-html52-20171214/)... |
04:50 | <Domenic> | Ah cool. I didn't know /html existed (just /TR/html) |
04:50 | <MikeSmith> | ... based on what I’ve been told, I think updating those needs to wait until the W3C Rec transition for HTML |
04:50 | <Domenic> | That all makes sense |
04:51 | <MikeSmith> | yeah, the https://www.w3.org/TR/html52/ URL is just a symlink to https://www.w3.org/TR/2017/REC-html52-20171214/ |
04:52 | <Domenic> | Hmm https://www.w3.org/TR/html53/ should be updatable now though I think? |
04:52 | <Domenic> | And dom41 |
04:52 | <Domenic> | since they are not recs |
04:53 | <Domenic> | I guess there are still a number of specs in https://www.w3.org/2019/04/WHATWG-W3C-MOU.html that need updating |
05:04 | <JonasNZ> | @Jessidhia: today hasn't been a good day for staying consistently in front of a computer - so sorry for the late response to your comment from earlier. You're right from the HTTP perspective. The content type itself though has expected behavior - althought I'm certainly not sure how to think about the interactionss between RFC1341 and the HTTP spec. |
05:05 | <JonasNZ> | Looking at this: https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html - "The body must then contain one or more 'body parts'" |
05:06 | <JonasNZ> | Gluing that together (admittedly whilst to defend my theory) it would seem that a GET request has no body, and thus cannot contain any parts, and thus can't form a valid multi-part message. |
05:08 | <JonasNZ> | At the same time HTTP/1.1 rfc says "HTTP is not a MIME-compliant protocol" |
05:16 | <annevk> | JonasNZ: a GET can contain whatever, but there’s an open issue on maybe dropping Content-* headers, look through issues with the topic: redirects label |
05:27 | <JonasNZ> | Thanks @annevk, very interesting reading. It seems like the conversation is converging on the behavior that Chrome seems to already exhibit. Either way, this gives me some things to subscribe to and enough understanding so I can work around the request parsing problems that led me here in the first place. |
05:32 | <JonasNZ> | Mek, Jessidhia, domfarolino, annevk - thank you all for the help, appreciate that you took the time to answer my questions. |
05:36 | <domfarolino> | annevk: just a heads up there is some discussion way above^ we had about lazy load + IO spec things in case you had any opinions |
05:58 | <annevk> | domfarolino: if HTML defines the primitive depending on that seems fine. |
06:00 | <domfarolino> | 👍 |
07:43 | <Jessidhia> | kinda like... you're stating the content-type T of the Maybe T, but instead of sending Just T you're sending Nothing instead 🤔 |
10:21 | <annevk> | Jessidhia: heh, I think the real problem here is that it's hard to come up with generic rules for redirects |
10:22 | <annevk> | Jessidhia: we could maybe strip some Content-* stuff if it becomes a GET request, but that wouldn't account for any custom metadata necessarily |
17:06 | <Domenic> | annevk: do you have time for some basic CORP questions? I could probably decipher the spec but I have a feeling asking you would be faster... |
17:07 | <Domenic> | s/CORP/COOP/ |
17:07 | <annevk> | Domenic: I can try |
17:08 | <Domenic> | So, first question: does COOP sever all opener relationships, or just all cross-origin ones? |
17:10 | <annevk> | Domenic: depends |
17:10 | <annevk> | Domenic: if COOP state matches same-origin works |
17:10 | <Domenic> | Hmm OK, so even same-origin things have to opt-in to having the opener relationship? |
17:11 | <annevk> | There’s also an open design issue where I propose changing some details |
17:11 | <annevk> | Domenic: yeah, otherwise it’d be too easy to escape |
17:11 | <Domenic> | Cool. Second question, how does COEP interact with COOP? I understand its interaction with CORP, but not COOP... |
17:12 | <annevk> | If you have COOP+COEP both are required for a match |
17:12 | <annevk> | So even higher stakes |
17:13 | <annevk> | Only when COOP is same-origin does it affect COOP |
17:13 | <Domenic> | I think I see |
17:14 | <annevk> | In the model COEP can change the COOP state to include it |
17:14 | <Domenic> | Next question, if a cross-origin popup wants to be treated as same-origin, similar to a cross-origin iframe that uses CORP, what does it do? |
17:15 | <annevk> | It cannot currently |
17:15 | <Domenic> | I guess more generally, COEP + CORP seem really simple for governing iframe interactions, so why can't we use that exact same model for popups? |
17:15 | <Domenic> | Interesting |
17:20 | <annevk> | Big difference is COOP |
17:20 | <annevk> | Would require a new kind of match |
17:20 | <annevk> | Prolly possible |
17:22 | <Domenic> | But like, why not just say, opener must put COEP: same-origin, and popup must either be same-origin or put CORP: cross-origin, and then that's good? What does COOP do for us? |
17:26 | <annevk> | COOP ensures takes care of popups the popup opens |
17:27 | <annevk> | And you cannot just give it COOP without some opt-in |
17:29 | <annevk> | FWIW, I do think you’re onto something that we should look into and possibly add |
18:15 | <annevk> | Domenic: thanks for finding the remaining instances of problematic child BCs, looking forward to writing a patch for them |
20:26 | <bradleymeck> | It seems the old MIME parser API PR from Node is now unblocked, I'll be rebasing it but we have an existing spec for the API using WebIDL at https://bmeck.github.io/node-proposal-mime-api/ . I'd be happy to figure out where we could get some cross review on it. |
20:31 | <Domenic> | bradleymeck: just glancing, it looks pretty nice, I'd just say s/mimeParams/params (or maybe parameters). |
20:31 | <Domenic> | Also I think you probably want to use maplike<> so that you can get keys/values/entries automatically. |
20:32 | <bradleymeck> | id be fine with either, and i can look at maplike |
20:32 | <Domenic> | The maplike change is mostly editorial, just makes the spec a little simpler. I think it does add keys/values/entries, but maybe iterable<> also adds those so I'm not sure. |
20:33 | <Domenic> | I think we're currently lacking strong use cases saying they would want this on the web, but e.g. if GoDaddy would use it on frontend, that could be compelling. |
20:34 | <Domenic> | As in, I think most people would like to add this, but nobody's employers can justify the time to implement it in their browsers. |
20:36 | <bradleymeck> | currently we are not looking at front end usage, but we would like it to at least appear to be ok if front end usage comes up after node |
20:37 | <Domenic> | makes sense |
20:37 | <Domenic> | I guess the spec doesn't have all the appropriate invariant-maintenance checks |
20:37 | <Domenic> | But you're aware of how to implement those since I know you've seen https://github.com/jsdom/whatwg-mimetype |
20:40 | <bradleymeck> | I'm not sure I understand that bit since it is delegating to the existing parser for those checks |
20:40 | <bradleymeck> | are there more checks that whatwg-mimetype is doing? |
20:40 | <Domenic> | On all the mutation methods |
20:41 | <bradleymeck> | https://bmeck.github.io/node-proposal-mime-api/#set-the-type throws type error on bad chars, perhaps this is an organization issue with my spec |
20:41 | <Domenic> | Oh yeah I found that now |
20:41 | <Domenic> | "set a parameter" is not referenced anywhere, is I think the only problem |
20:41 | <bradleymeck> | is there a better way to organize this? i modeled it after URL searchParams |
20:42 | <Domenic> | Same with "set the subtype" |
20:42 | <bradleymeck> | i'll double check those, good catch |
20:42 | <Domenic> | So yeah just cross-linking issues mostly |
20:43 | <bradleymeck> | any pref of params vs parameters in existing recommendations for wording? |
20:43 | <Domenic> | It's really hard to say; maybe others have opinions, but to me parameters is just enough on the long side that I'm unsure how to weigh that versus my natural preference against abbreviations. |
20:44 | <Domenic> | Also whatwg-mimetype will lowercase its arguments for the parameter-getting methods (has/get). I think that decision is debatable. |
20:45 | <Domenic> | Similarly I'm unsure whether the whitespace-stripping in your spec is a good idea. |
20:47 | <bradleymeck> | seems fine to remove, double checking browsers it seems they all lowercase the params when parsing anyway so perhaps it should always do that |
20:47 | <bradleymeck> | though idk, less magic might be better as other parts of things don't seem to change cases automatically |
20:48 | <bradleymeck> | will think |
20:48 | <Domenic> | I think you want to maintain the invariant that it's always lowercase |
20:48 | <Domenic> | (for param names) |
20:55 | <bradleymeck> | seems fine |
21:07 | <bradleymeck> | Domenic: is there an example of how to do validation on a maplike ? I see MIDI has a maplike but not seeing an example in the IDL doc or MIDI of validating key/value |
21:53 | <Domenic> | bradleymeck: wow, yeah, that doesn't seem to be a thing, so I guess maplike just isn't usable for this. Sorry for misleading. |
21:55 | <bradleymeck> | mostly updated but noticed the mime spec doesn't export some of its dfns |
21:57 | <Domenic> | You can bypass that with <a spec="mimesniff">...</a> |
21:58 | <Domenic> | Seems better not to export since this would eventually live in the MIME spec anyway. |
22:02 | <bradleymeck> | sounds fine to me |