2021-06-01 [18:25:10.0623] I made a bot for rendering better (i.e., linkable) logs for matrix channels, for tc39's use. if ya'll would like I can have it do this channel too. currently logs are at https://bakkot.github.io/matrix-logs/, or you can run it yourself from https://github.com/bakkot/matrix-archive-bot [18:26:35.0141] logs are going to be a bit behind because I'm not bothering to have it monitor continuously [19:27:43.0908] > <@bakkot:matrix.org> I made a bot for rendering better (i.e., linkable) logs for matrix channels, for tc39's use. if ya'll would like I can have it do this channel too. currently logs are at https://bakkot.github.io/matrix-logs/, or you can run it yourself from https://github.com/bakkot/matrix-archive-bot It'd be great to have it log this channel too [19:53:45.0141] Done: https://bakkot.github.io/matrix-logs/WHATWG/ [19:54:41.0626] > <@bakkot:matrix.org> Done: https://bakkot.github.io/matrix-logs/WHATWG/ thanks much [21:54:22.0024] For anybody here interested in helping improve content at MDN, https://github.com/mdn/content/issues/5523 is maybe a good first issue that would probably take only 30 minutes or so of work [21:56:36.0433] The work would be writing some additional text that elaborates on the following statement: > Setting the value of `location.href` _navigates_ to the provided URL. If you want _redirection_, use `location.replace()` [00:46:37.0691] > <@annevk:mozilla.org> zcorpan_: there was already a zcorpan without underscore? :-) Yes. I signed up in 2019. Since then the account has been deactivated, not sure why. Don't know if it's possible to reactivate it :-( [00:48:47.0417] zcorpan_: ah, sucks. You could probably find another server as well if you want and get an account there, but not sure how much effort you want to put into it. [00:51:28.0674] annevk: I'll wait until someone tells me it's possible to reclaim the old name :) [00:53:50.0281] Well, you can still change your display name to one without the underscore. [00:55:46.0703] šŸ‘ [03:37:17.0013] heya Sam Sneddon [:gsnedders] [03:37:37.0477] annevk: if/when you have time, it would be good to have a comment from you at https://github.com/mdn/content/issues/5501 [03:40:47.0669] šŸ‘‹ [03:44:39.0049] I wish Matrix had "done" / "ack" / "this" / etc. reactions besides emoji. [04:46:59.0056] > <@annevk:mozilla.org> I wish Matrix had "done" / "ack" / "this" / etc. reactions besides emoji. https://github.com/vector-im/element-web/issues/2648 [04:48:13.0719] Per that discussion, you can do it already in some Matrix clients [04:48:38.0115] ...just not in Element [05:28:47.0221] I reacted with a few frequently-used examples: * āž• for +1 * āœ… for done * šŸ§¾ for ack * ā˜ļøor šŸ‘†ļø for this You can send custom events via devtools in element, but it's a hassle. At the end of the day, it's a matter of convention. I quite liked some CI bot that indicated runner status with šŸŸ¢ šŸ”“ šŸŸ . [05:29:29.0711] Fluffychat has pretty solid support for custom emotes already. [08:54:29.0598] > <@annevk:mozilla.org> lpd: per spec I think Chrome is wrong and I don't think there's an issue on changing this Hi, a new day and a fresh set of eyes, I noticed what I was looking for yesterday staring me right in the face: https://html.spec.whatwg.org/multipage/interaction.html#focus-fixup-rule. Would you agree the correct behaviour is actually the other way around to what we discussed yesterday? [08:55:45.0277] The language "removed from that Document in some way" seems pretty weird to me, but the examples are clear. [08:55:53.0001] * The language "removed from that Document in some way" seems pretty weird to me, but the examples are clear in my novice reading. [08:56:21.0616] lpd: none of the examples are about rendering though, but that is indeed extremely ambiguous; it likely wouldn't pass review if written today [08:58:33.0853] annevk: In the main text, I believe it's covered by "it stops being a focusable area", since for an input element to be a focusable area it must meet "the element is either being rendered or being used as relevant canvas fallback content." [08:58:53.0570] I guess focusable area is defined in terms of being rendered, yeah [08:59:56.0212] The example box specifically mentions the `hidden` attribute, but I'm not sure if those are normative? [09:00:01.0561] However, it doesn't seem to invoke an algorithm to change the focused area, meaning no events would dispatch and such and it's a bit unclear what state would change [09:00:30.0237] Examples are non-normative, but they're also not supposed to be wrong :-) [09:00:49.0255] lpd: I guess at this point I'd lean towards an issue against whatwg/html though [09:01:06.0033] /me wonders if there is one already [09:03:22.0313] (I only found other issues) [09:04:18.0931] > designate the Document's viewport to be the new focused area of the document annevk I believe the confusion comes from this, right? Whether this requires the **focusing steps** are run? [09:04:26.0201] * > designate the Document's viewport to be the new focused area of the document annevk I believe the confusion comes from this, right? Whether this requires the **focusing steps** are run? [09:04:36.0892] * > designate the Document's viewport to be the new focused area of the document annevk I believe the confusion comes from this, right? Whether this requires the **focusing steps** are run? [09:04:54.0587] lpd: yeah [09:05:14.0932] Cool thanks, I'll make one :) [11:35:21.0313] https://github.com/whatwg/html/issues/6729 2021-06-02 [20:22:02.0422] /me grumbles something about change [20:39:52.0590] /me celebrates the arrival of GPHemsley [20:40:05.0377] Howdy GPHemsley [21:05:30.0057] w3.org cert expired? [21:05:34.0602] SMH [21:05:55.0305] yeah, a bit embarrassing [21:06:17.0032] ā€œmistakes were madeā€ [21:07:15.0564] probably somebody thought somebody else was responsible for taking care of it, and that somebody else thought another somebody else was responsible for taking care of itā€¦ [21:08:06.0545] /me blames TBL :) [21:08:19.0479] I think itā€™s not a Letā€™s Encrypt cert and maybe there is no automated way for keeping it up to renewed [21:10:36.0129] /me > * <@aja:mozilla.org> blames TBL :) writes a *ā€œYou had one jobā€* dismissal letter to TimBL [21:58:57.0607] it's back...for next 13 months [01:27:33.0989] I wonder if others are getting 500 errors and other weirdness from GitHub right now [01:28:27.0188] It's not entirely like normal for me. Pushing a new branch didn't give the URL to create a PR from it, so something internally isn't working. [01:28:58.0302] oh foolip good timing [01:29:13.0016] I'm trying to make a PR for you actually :) [01:29:14.0483] I am actually trying to review https://github.com/mdn/browser-compat-data/pull/10717 [01:29:37.0119] Ah, trying to approve gives you a 500? [01:30:04.0851] worse ā€” canā€™t even navigate to https://github.com/mdn/browser-compat-data/pull/10717/files [01:30:32.0540] oh wow thatā€™s a bonus of moving away from IRC, right there [01:30:50.0114] Inline preview of URLs? Yeah that's great. [01:30:58.0779] So trying to create a new PR gives me a 500. [01:31:59.0779] And I guess I won't try to hammer it because maybe it actually has been created... [01:32:15.0427] > <@foolip:matrix.org> Inline preview of URLs? Yeah that's great. I mean that photo ā€” that guy who was so happy, so blissfully unaware that heā€™s about to start getting 500 errors himself [01:32:46.0970] > <@foolip:matrix.org> And I guess I won't try to hammer it because maybe it actually has been created... https://github.com/mdn/browser-compat-data/pull/10717 did for sure get created [01:33:08.0870] /me checks his notifications for any other PR that might also have rolled in [01:33:38.0566] I'm trying to create another PR, for every other BCD PR I review I discover something adjacent that's wrong. A never-ending rabbit hole. [01:34:45.0616] hah ā€” yep, I know that particular rabbit hole very well [03:35:49.0151] sideshowbarker: sorted now it seems, I could create https://github.com/mdn/browser-compat-data/pull/10720 [03:36:23.0949] > <@foolip:matrix.org> sideshowbarker: sorted now it seems, I could create https://github.com/mdn/browser-compat-data/pull/10720 Ok, will take a look [04:01:09.0205] annevk Other than AbortSignal.abort() and shadowing.delegatesFocus, are there any features in the DOM spec that have less than 2 implementations? [04:09:47.0912] Nobody else shipped AbortSignal.abort() yet? [04:10:33.0871] In general though I'm not the best at keeping track of these things. If that's what wpt says I'd trust that. šŸ˜Š [04:18:39.0701] Ok [08:57:50.0775] sup everyone [08:58:42.0521] howdy hey miketayl_r [08:59:09.0774] (took me a minute to figure out how to add this room... i thought i would need to add a new server or something) [08:59:11.0768] web 4.0 is wild [09:02:00.0065] miketayl_r: about that, we have a requirement here that you throw in as many emoji as possible into your messages and decorate other peopleā€™s messages with as many as possible [09:02:12.0272] i will do my best [09:02:34.0481] OK cool ā€”because as you know, the answer to ā€œWhat is web 4.0ā€ is clearly: emoji [09:02:50.0149] i actually just learned that web 3.0 is crypto, https://blogs.opera.com/tips-and-tricks/2021/01/what-is-web-3-0-and-why-you-should-care/ [09:03:26.0168] or maybe it's iot, i dunno [09:04:04.0378] hmm, crypto + emoji = web 5.0? [09:04:57.0393] you can also get more reputation points by posting giant superfluous images directly to the channel ā€” like at https://chat.mozilla.org/#/room/#whatwg:matrix.org/$CyvdZzCILRkt0d6OWU46KOgkZDua8XxPni328gm35j4 [09:05:31.0108] the possibilities are endless [09:06:35.0239] thatā€™s the new addendum motto to your motto: *ā€œPlease leave your sense of logic at the door ā€¦ the possibilities are endlessā€* [09:06:54.0347] heh [09:08:02.0516] and finally, note that wanderview arrived here one hour ahead of you, so heā€™s got that much extra reputation points already that he can spend [09:08:21.0419] howdy wanderview too [09:08:59.0816] i assume the longer i idle, the more whatwg coin i mine [09:10:17.0020] ok, i have a real question, maybe for tabatkins -- it seems like the spec `make deploy` script gets sad if you have EXTRA_FILES -- it eventually calls `curlbikeshed` and then that errors out because it can't find those files (i guess it runs in `/tmp`) [09:10:20.0439] e.g., https://github.com/whatwg/compat/pull/147/checks?check_run_id=2690411902 [09:10:48.0505] i wonder if anybody else has run into this yet [09:11:11.0048] https://compat.spec.whatwg.org/stroked-text.png is obviously v important [09:13:18.0881] > <@sideshowbarker:mozilla.org> hmm, crypto + emoji = web 5.0? wouldn't it be web 9.0? maybe i did the math wrong [09:13:34.0639] > <@sideshowbarker:mozilla.org> hmm, crypto + emoji = web 5.0? * wouldn't it be web 7.0? maybe i did the math wrong [09:13:48.0692] > <@hober:mozilla.org> wouldn't it be web 7.0? maybe i did the math wrong hahahah i really did do the math wrong [09:15:09.0686] lol [09:15:12.0617] Right, web 9.0 is when we have an API for executing JS in ring0 (behind a permission prompt) [09:15:43.0909] miketayl_r: looking at https://resources.whatwg.org/build/deploy.sh now. I think annevk and Domenic would know something about `EXTRA_FILES` (if anybody doesā€¦) [09:17:39.0535] Please leave your sense of logic at the door, bring your emoji [09:18:46.0345] it seems like we can tell the bikeshed API to ignore errors, but that's probably a terrible solution, https://tabatkins.github.io/bikeshed/#curl [09:19:19.0072] hello [09:19:34.0275] miketayl_r: can you file an issue against whatwg/whatwg.org? [09:19:42.0217] annevk: yeah, np [09:19:45.0906] I was somewhat hoping to have this chat and the mozilla chat in the same tab, but I guess they are on separate servers [09:20:09.0437] It seems like Bikeshed is trying to find the files and maybe we deal with them after running bikeshed or some such [09:20:23.0259] wanderview: you can keep them in the same tab [09:20:58.0452] yeah -- you can just add this as a new "channel" [09:21:03.0135] in ur existing moz setup [09:21:03.0955] wanderview: in explore rooms you can add other servers to look in [09:21:24.0290] (assumign you're using the same account) [09:21:30.0945] (I'm also working on getting us the whatwg:mozilla.org alias, but it's taking time) [09:21:39.0300] * (assuming you're using the same account, I think) [09:23:21.0088] I see, thanks! [09:23:35.0589] I had different accounts... but I see I can now message asuth on his mozilla account, etc [09:24:39.0041] miketayl_r: `./deploy.sh: line 99: $1: unbound variable` at https://github.com/whatwg/compat/pull/147/checks?check_run_id=2690411902#step:4:25 may or may not related to that later `No such file or directory: '/tmp/stroked-text.png'` error [09:25:15.0340] and it is so very great that every time we post that link here, Karl appears [09:26:27.0312] as far as I can see, the `deploy.sh` script expects to be called with some argumentā€¦ but I donā€™t know what ā€” and anyway, https://github.com/whatwg/compat/blob/main/Makefile#L24 s not calling it any any argument [09:27:46.0610] but the makefiles for other repos donā€™t call it with any argument either ā€”Ā see https://github.com/whatwg/dom/blob/main/Makefile#L23 ā€” so whoknows maybe itā€™s not a problem at all [09:29:30.0720] i just found that if i change `-F die-on=warning` to `F die-on=fatal`, it seems to work as expected [09:29:34.0670] will w3c still be using its irc server in the future? for tpac, etc [09:29:54.0431] wondering if I should cancel my irccloud account [09:30:31.0154] wanderview: yes w3c will still be using its server for the forseeable future [09:30:37.0458] > <@wanderview:matrix.org> I was somewhat hoping to have this chat and the mozilla chat in the same tab, but I guess they are on separate servers I have them in the same tab [09:31:52.0165] but some of us are hoping to move more channels from w3c irc and over to here ā€” e.g., jgraham is for the #testing channel [09:33:02.0224] but there is gonna be some inertia against moving WG channels until we have rrsagent and zakim bot equivalents for matrix I guess [09:33:55.0291] some groups very much rely on using irc for the meetings, and being able to generate meeting minutes easily with rrsagent, and manage the speaker queue with zakim [09:37:15.0307] jgraham: about #testing, I guess you see that you and I both now have ops on the irc channel ā€” but I donā€™t know what good that does us as far as fixing the **FDNPK0PMG5N0 (IRC) and 246 others** channel name problem that foolip pointed out ā€”Ā @kegan:matrix.org seems to be the only person with admin perms to change that [09:39:01.0937] You can link your matrix account to a user in a bridge IRC network, and I believe that should give you permissions to the matrix room [09:39:02.0979] https://matrix-org.github.io/matrix-appservice-irc/latest/usage.html#customising-your-experience [09:39:32.0701] Andreu Botella (he/they): ah cool ā€” will try that [09:44:04.0405] Yeah, I'm using a bridge for the testing channel. It has a weird room name though. [09:44:58.0060] annevk: yeah I think we all have that **FDNPK0PMG5N0 (IRC) and 246 others** weird room name for it showing up [09:45:37.0460] PSA: we now have timestamp-linkable logs for this channel at https://matrixlogs.bakkot.com/WHATWG/ [09:45:46.0006] Apparently matrix rooms don't _need_ to have a name: https://matrix.org/docs/spec/client_server/r0.6.0#calculating-the-display-name-for-a-room [09:46:19.0335] annevk: may be worth adding https://matrixlogs.bakkot.com/WHATWG/ to the topic [09:47:15.0625] > <@andreubotella:mozilla.org> Apparently matrix rooms don't _need_ to have a name: https://matrix.org/docs/spec/client_server/r0.6.0#calculating-the-display-name-for-a-room ah yeah think thatā€™s the core problem ā€” that room somehow doesnā€™t have a name, so the clients (or some middle thing) end up computing it [09:48:20.0558] > <@sideshowbarker:mozilla.org> wanderview: yes w3c will still be using its server for the forseeable future having an official W3C Matrix bridge would be nice, though. [09:49:14.0603] > <@sideshowbarker:mozilla.org> but some of us are hoping to move more channels from w3c irc and over to here ā€” e.g., jgraham is for the #testing channel #testing is kinda a specific case at this point, given it isn't really W3C related at this point. maybe we should just creating a #web-platform-tests:matrix.org for it and be done with it. [09:54:49.0849] > <@gsnedders:mozilla.org> #testing is kinda a specific case at this point, given it isn't really W3C related at this point. maybe we should just creating a #web-platform-tests:matrix.org for it and be done with it. sounds good to me ā€”Ā or even just #wpt:matrix.org [09:57:31.0081] > <@gsnedders:mozilla.org> having an official W3C Matrix bridge would be nice, though. about the general topic of w3c moving away from irc, https://github.com/w3c/modern-tooling/issues/16 is the place where that discussion has been taking place already ā€” for **6 years now**, since the time when Robin Berjon first opened it [10:00:43.0498] I have been meaning to post a comment to that issue to propose that w3c set up its own matrix homeserver, with a list of reasons why that makes a lot more sense now ā€” including the fact that w3c peers orgs are on Matrix now: #whatwg:matrix.org and #tc39-general:matrix.org ā€” and even IETF, which has its own Matrix server, for #xmpp_hallway_jabber.ietf.org:matrix.organd all [10:01:15.0388] the IETF matrix server is just a bridge to their jabber server ā€” but itā€™s still progress [12:42:41.0572] #wpt:matrix.org now exists [14:44:52.0947] lame, you can't add an emoji reaction to someone joining the room [14:48:39.0349] well we need more than just emoji to celebrate karlcow finally showing up 2021-06-03 [00:18:19.0055] good to see you timothygu [00:18:44.0587] Hello! Is this the official WHATWG chat now? [00:18:52.0153] It is [00:30:36.0979] > <@sideshowbarker:mozilla.org> annevk Other than AbortSignal.abort() and shadowing.delegatesFocus, are there any features in the DOM spec that have less than 2 implementations? It looks like Safari Technical Preview has AbortSignal.abort(). https://bugs.webkit.org/show_bug.cgi?id=223071 [00:30:47.0013] sideshowbarker: [00:30:49.0753] * sideshowbarker: ^^ [00:31:16.0158] I think running mdn-bcd-collector produces an edit for AbortSignal, so thatā€™s worth checking out [00:32:27.0948] Chromium has a tracking issue for AbortSignal.abort() (https://crbug.com/1187117), but it seems to have stalled. I'm gonna try to pick up the work. [01:21:11.0173] > <@foolip:matrix.org> I think running mdn-bcd-collector produces an edit for AbortSignal, so thatā€™s worth checking out Ah ok, will take a look [01:22:01.0021] sideshowbarker: actually I was wrong, just checked [01:43:11.0563] So I guess Chromium doesn't really still use IRC (https://www.chromium.org/developers/irc) but does it actually have any widely used public chat system these days? [01:45:05.0078] I was asking a googler with whom I am collaborating that the externally-facing chat is an invite-only slack and there's an internal-only chat where all the conversations happen. (but maybe there's another externally-facing I don't know) [02:33:54.0073] > <@timothygu:matrix.org> It looks like Safari Technical Preview has AbortSignal.abort(). https://bugs.webkit.org/show_bug.cgi?id=223071 Thanks ā€” we unfortunately donā€™t yet have a way to represent data for Safari Technical Preview in BCD (though I think we will soon). But regardless itā€™s great know we do actually have two implementations. [02:35:25.0486] sideshowbarker: https://github.com/mdn/browser-compat-data/pull/10334 should be done soonish, Florian Scholz says that the remaining work is to update the BCD rendering code in yari. [02:35:49.0128] (To use a different color and show strings like "Nightly" for these entries.) [02:38:32.0862] foolip: by the way, once that PR lands, and we get some STP data into BCD, do you still want to also have the `implementation_url` thing I proposed? [02:39:32.0763] sideshowbarker: I'd still use that occasionally I think, but TBH perhaps more for ancient stuff to show work than for new things which can more easily be tested. [03:01:20.0335] Given I hear about "preview" data almost daily now, I'm going to work on it soonish. Promised :) [03:05:01.0391] No pressure, I'm just very exited šŸ˜€ [03:05:21.0365] _just a little bit of pressure_ [05:31:03.0559] So. WHATWG turns 17 tomorrow [05:36:50.0818] *What working group* turns 17? [05:43:35.0232] I guess https://lists.whatwg.org/pipermail/whatwg-whatwg.org/2004-June/042278.html is the announcement? [06:19:21.0177] Yeah, also https://ln.hixie.ch/?start=1086387609&order=-1&count=1 [06:24:20.0314] I just realized that the majority of my life has now involved WHATWG... [06:26:24.0354] šŸ˜² [06:34:13.0972] Oh my. Iā€™m not quite there yet since I wasnā€™t around in the beginning. But it looks like today is my 13th WHATWG birthday. Thatā€™s a thing right? https://lists.w3.org/Archives/Public/public-whatwg-archive/2008Jun/0029.html [06:35:10.0974] This whole show needs to go on another 5 years or so before it becomes more than half my life. Which is a new way of making me feel old :p [06:35:43.0537] Letā€™s keep the web alive another 5 years to see that happen! [06:36:17.0536] "stetch goals" [06:36:22.0876] * "stretch goals" [07:05:11.0629] 5 more years, just for jgraham?! šŸ¤” [08:03:59.0673] > <@fbraun:mozilla.org> I was asking a googler with whom I am collaborating that the externally-facing chat is an invite-only slack and there's an internal-only chat where all the conversations happen. (but maybe there's another externally-facing I don't know) freddy: kind of, for slack if you happen to work for any company listed here, you can join w/o an invite (or your name is in AUTHORS) https://chromium.googlesource.com/chromium/src/+/refs/heads/main/AUTHORS#1222. [08:04:11.0107] (more info @ https://www.chromium.org/developers/slack) [08:05:10.0108] i would hope the bar is pretty low for getting an invite if you're not on that list, personally [08:09:29.0276] miketayl_r: https://www.chromium.org/developers doesn't link to that under "Communications" [08:09:41.0945] * miketayl_r: https://www.chromium.org/developers doesn't link to that under "Communication" [08:09:56.0119] that feels like a bug [08:10:21.0254] i think i can fix that (when i'm out of this meeting that i'm totally paying attention to) [08:52:09.0699] foolip: you fit right in by asking "what's the use case?" in your first email šŸ˜… [08:53:34.0594] > <@zcorpan_:matrix.org> foolip: you fit right in by asking "what's the use case?" in your first email šŸ˜… Oh my! 2021-06-04 [19:07:45.0345] I joined the Matrix server, this looks kind of like a hybrid between IRC and Discord. I see not everybody has swapped over yet, as according to the member list. [21:02:06.0649] Sam Sneddon [:gsnedders]: Was thinking about something last night, and trying to remember: Do I recall correctly that back in the day ā€” before Bikeshed and Respec came along, back when the CSS WG was using Bert Bosā€™s ā€œCSS preprocessorā€ service ā€” you were the one who came up with a workalike for that tool/service of Bertā€™s. And that was first such tool that we started to use for other specs. Right? [21:06:24.0110] sideshowbarker: Anolis, yes. Hixie stopped using it for HTML in 2014, so not that long before he stopped editing it, which is around the same time as Bikeshed and Respec were happening IIRC. [21:06:49.0330] ah yes, ā€œAnolisā€, of course [21:07:02.0675] it was so long ago that I had forgotten the name [21:07:22.0780] but that name brings it all back ā€” that was great name [21:08:07.0742] I can't quite remember where that came from. I expect some discussion in here? [21:08:20.0439] no idea now [21:08:35.0037] and I had sorta forgotten that Hixie had been using it for the HTML spec ā€” but I guess he must have used it for years [21:09:01.0252] like, at least 5 years, he was using it to generate the published HTML spec [21:10:19.0006] I am disappointed in myself for forgetting ā€” that was a pretty key tool for all those years [21:11:15.0972] I think I wrote it partly to have tools that didn't rely on having access to the W3C CSS WG servers, and partly because Hixie was annoyed at how long they were taking as the HTML spec got ever bigger! [21:12:02.0042] yeah the code for Bertā€™s thing was actually all bash/sed/etc [21:12:26.0864] It was good that it was only exposed as a web service ā€” people would have been baffled by that code [21:13:34.0431] I mean, I liked that code myself, but I think you had to be from a certain earlier era to not find it a giant WTF [21:14:58.0525] anyway, Anolis was a nice piece of work [21:16:18.0848] I now donā€™t recall why we didnā€™t start using it for specs other than HTML ā€” why Bikeshed became necessary ā€” but I vaguely recall that being because Anolis ended up being pretty tightly coupled to the quirks for the source of the HTML spec [21:16:52.0154] not easily generalizable/portable to use for other specs, maybe? [21:17:33.0235] we totally used Anolis for other specs [21:17:38.0520] mimesniff started in anolis [21:17:42.0746] ah OK [21:18:23.0344] I seem to have pushed all knowledge of this stuff way into the back of my memory [21:18:31.0678] tape storage [21:18:57.0336] looks like the conversion, at least for mimesniff, happened in 2016 [21:19:18.0314] OK [21:19:24.0219] I assume we switched to bikeshed because it supported more things [21:19:32.0612] (I wasn't involved in the conversion) [21:20:47.0815] hmm among my other vague recollections is that Sam got tired of maintaining Anolis and didnā€™t like fixing bugs in it any more, something like that [21:21:10.0997] could be [21:21:18.0012] and Tab was busy doing stuff for CSS [21:21:27.0086] so it was already there [21:21:48.0150] yeah, something like that [21:25:04.0769] Bikeshed quickly got features that Anolis didn't have, and I had long ago stopped really maintaining it (Ms2ger maintained it for a while). [21:25:40.0106] oh yes, Ms2ger was maintainer when I was editing, I think [21:25:48.0994] looks like encoding started in anolis too [21:27:58.0210] probably others, but I'll stop digging [21:28:26.0750] Plenty of others; virtually everything written between 2008 and 2013 or so used it. [21:29:10.0408] right [21:32:15.0894] oh wow, turns out I submitted quite a few PRs to anolis [21:33:31.0989] was it partly https://www.w3.org/Tools/HTML-XML-utils/ [21:33:39.0367] Bert's tool [21:45:28.0953] karlcow: no, I think that was something completely different [21:45:41.0557] /me looks for a link to Bertā€™s processor [21:50:39.0968] https://www.w3.org/Style/CSS/postprocessor/ [21:50:59.0603] aha [22:11:11.0842] > <@karlcow:mozilla.org> was it partly https://www.w3.org/Tools/HTML-XML-utils/ it was based on that, albeit a fair bit developed beyond there IIRC [22:12:26.0433] those, the CSS 2 build system, and the CSS3 module post processor are all ultimately from a common source AFAIK, but have vastly diverged since (e.g. several of the tools have been rewritten multiple times) [22:12:38.0023] (also hi Karl!) [22:49:56.0199] What year is it??? [23:16:15.0315] I should make that a tradition. Come to the whatwg channel only the years of the cow. :p [23:22:25.0055] Cheers all ā€” looking forward to 17+ more years of #whatwg:matrix.org good times together [23:23:18.0597] * šŸø Cheers all ā€” looking forward to 17+ more years of #whatwg:matrix.org good times together [23:24:05.0267] the year 2038 is waiting for us all to arrive [23:25:38.0310] Happy new year! [00:11:11.0691] Your old folks' tales are cool and all, but yeah, here's to keeping this community strong into the future! šŸ„‚ [00:11:46.0029] btw I'm surprised I did know about Anolis when sideshowbarker didn't remember, just from the `git blame`ing I had to do over the past year [00:15:15.0257] ah `git blame`ing the HTML source ā€” 5.9MB of source Ɨ 17 years, source re-wrapped/reformatted multiple times ā€”Ā that is about as ā€œgood timesā€ as good times can get [00:15:57.0223] and itā€™s pretty fun to hear Sam Sneddon [:gsnedders] getting included in ā€œold folksā€ [00:18:08.0160] Sam Sneddon [:gsnedders] will always be a young whippersnapper to me [00:19:22.0421] cue ā€œForever Youngā€ (whichever version you like: Bob Dylan or Rod Stewart) [00:19:33.0524] ā€¦which reminds me, somewhere we should document that the official WHATWG theme song is actually *ā€œWhatever happened to the teenage dream?ā€* [00:20:51.0575] and letā€™s cry too, for knowing that in 3 years, #whatwg:matrix.org will no longer be teenager [00:31:19.0743] > <@sideshowbarker:mozilla.org> and itā€™s pretty fun to hear Sam Sneddon [:gsnedders] getting included in ā€œold folksā€ This had me frantically searching for Sam Sneddon [:gsnedders]'s age ā€“ like that mattered at all šŸ˜„ [00:31:49.0399] I might not be that much younger, but I just got started in the standards world last year, so it's old folks in the field anyway [00:41:36.0691] Andreu Botella (he/they): Super glad you showed up and got involved. Youā€™ve done some really exceptional work [00:43:14.0472] aww thanks šŸ˜„ [00:43:41.0997] /me tries to beat down impostor syndrome [00:47:38.0349] Andreu Botella (he/they): donā€™t worry, youā€™re the real deal ā€”Ā trust me šŸ˜„ [00:47:56.0156] trust yourself [00:54:43.0594] anyway, back to celebrating šŸ„‚ [05:48:21.0467] > <@andreubotella:mozilla.org> This had me frantically searching for Sam Sneddon [:gsnedders]'s age ā€“ like that mattered at all šŸ˜„ 29, but I've been around here since I was, uh, 14ā€¦ [05:58:13.0743] > <@gsnedders:mozilla.org> 29, but I've been around here since I was, uh, 14ā€¦ Oh wow, that's really early. I'm currently 18, joined like last year I think I doubt that I was even aware of the spec's existence when I was 14. I may or may not have been interested in browserdev by then, but certainly did not have the skills to do anything in that field. [05:58:39.0367] My biggest skill was being an annoyance, I'm pretty sure. [05:59:06.0807] til you're actually my age [06:00:11.0204] "was"? [06:00:21.0006] :) [06:01:11.0265] I got a ghost ping? The tab title said I had 1 ping, but I don't see any. [06:01:20.0084] > <@gsnedders:mozilla.org> My biggest skill was being an annoyance, I'm pretty sure. I bet that's mine too [06:02:52.0556] > <@jgraham_:matrix.org> "was"? well stop ending up working on the same stuff as me for year after year šŸ˜› [06:13:34.0762] Is the Matrix server because Freenode's ownership transferred? Or is that just coincidence? [06:16:01.0644] That prompted the discussion about alternatives, but matrix is hoped/expected to be more approachable than IRC for a broad community. [06:19:53.0883] Ah, ok It looks a lot like a hybrid between IRC and Discord. I like it. [06:24:31.0513] Sam Sneddon [:gsnedders]: I think my chief skill is being too dim to find anything more productive to do with my time than try and fight network effects on the web platform. [06:51:55.0350] > <@sideshowbarker:mozilla.org> Sam Sneddon [:gsnedders]: Was thinking about something last night, and trying to remember: Do I recall correctly that back in the day ā€” before Bikeshed and Respec came along, back when the CSS WG was using Bert Bosā€™s ā€œCSS preprocessorā€ service ā€” you were the one who came up with a workalike for that tool/service of Bertā€™s. And that was first such tool that we started to use for other specs. Right? whoa what was this? I've never heard of this one [06:53:33.0567] Looks like bitbucket removed the repositories in their mercurial purge [06:54:06.0713] > <@everyos:matrix.org> Oh wow, that's really early. I'm currently 18, joined like last year I think > I doubt that I was even aware of the spec's existence when I was 14. I may or may not have been interested in browserdev by then, but certainly did not have the skills to do anything in that field. done be discouraged by that though, Sam Sneddon [:gsnedders] was a real outlier in this respect - I think annevk and Sam Sneddon [:gsnedders] were like the youngest people in standards maybe? [07:15:34.0481] Ah, ok When I first joined the WhatWG IRC I was only 17 or 16, so I had to go and check the participation rules to make sure I was actually able to join at that age. Luckily, I was. [08:31:29.0084] /me archived at https://github.com/Ms2ger/anolis [12:35:33.0216] > <@everyos:matrix.org> Ah, ok > When I first joined the WhatWG IRC I was only 17 or 16, so I had to go and check the participation rules to make sure I was actually able to join at that age. Luckily, I was. I think I was almost 30 and thought I was still pretty young :) Nobody really knows how old you are from these messages I guess :) [12:40:42.0616] > <@bkardell:igalia.com> I think I was almost 30 and thought I was still pretty young :) Nobody really knows how old you are from these messages I guess :) Gotcha, interesting I take it the minimum age for somebody is 13, as usual? Surprisingly, I did not see any rules about that. [12:46:03.0571] Good question?! Idk? [12:47:37.0867] I imagine there's a minimum age at which someone can sign the participant agreement [12:49:04.0787] Andreu Botella (he/they): not any minimum age explicitly stated anywhere ā€” and I donā€™t think the form for signing the participant agreement asks anything about age [12:49:52.0579] I was talking more about consent stuff depending on the legislation [12:50:11.0601] * I was talking more about consent stuff depending on the jurisdiction [12:50:47.0458] I guess that must be bound by whatever the minimum age is ā€” in the signerā€™s jurisdiction ā€” for signing any legal agreement or contract or whatever [12:51:27.0992] I imagine that must be age 18 in most places. But now that I think of it, in Japan at least it might actually be age 20 [12:52:10.0704] * right, I guess that must be bound by whatever the minimum age is ā€” in the signerā€™s jurisdiction ā€” for signing any legal agreement or contract or whatever [12:53:47.0500] There also seems to be a US law about not collecting personal information of under 13s without parental consent. That might make it difficult to sign up for services like GitHub. [12:58:38.0848] > <@sideshowbarker:mozilla.org> I imagine that must be age 18 in most places. But now that I think of it, in Japan at least it might actually be age 20 While I'm now 18, I had signed it when I was 17 :/ I failed I guess I haven't actually done any contributing yet, other than a simple issue I had opened on the Github issues page :/ [13:05:03.0044] > <@everyos:matrix.org> While I'm now 18, I had signed it when I was 17 :/ > I failed I guess > I haven't actually done any contributing yet, other than a simple issue I had opened on the Github issues page :/ Issues are still contributions [13:05:24.0446] finding spec bugs and reporting them is a pretty useful thing [13:05:32.0798] But the participant agreement only matters for PRs [13:05:38.0287] right [13:06:17.0249] Ah, ok [13:07:15.0016] so if you have patents on something, you can just raise an issue describing the change you want to get into the spec, including some idea you a patent for, and then wait until somebody else actually writes up a patch for it šŸ˜‹ [13:08:01.0748] and then after Google and Apple implement it and ship it, you wait a few years and then start going after them for royalties [13:08:37.0584] and since you never signed the participant agreement, youā€™re not preventing from being able to do that [13:08:52.0979] * so if you have patents on something, you can just raise an issue describing the change you want to get into the spec, including some idea you have a patent for, and then wait until somebody else actually writes up a patch for it šŸ˜‹ [13:09:07.0731] That sounds evil [13:09:17.0699] * and since you never signed the participant agreement, youā€™re not prevented from being able to do that [13:12:08.0499] Iā€™m kidding of course [13:13:23.0176] but we actually had no participant agreement for the first two years after the spec was moved into github and we started accepting PRs and patches [13:14:08.0503] so all the contributions that were made in those two years ā€” from 2015 to 2017 ā€” were made without any royalty-free commitments [13:15:29.0367] > <@sideshowbarker:mozilla.org> and then after Google and Apple implement it and ship it, you wait a few years and then start going after them for royalties Way to coach new contributors Mike ;) [13:16:05.0485] well maybe I shouldnā€™t kid about it so much [13:16:18.0779] donā€™t want to give anybody bad ideas [13:17:55.0936] Mikeā€™s guide to anti-social standards engagement, could be a best seller :) Except you have no experience being dislikable yourself so maybe it wouldnā€™t seem genuine. [13:18:10.0473] heh [13:18:33.0021] yeah it requires actually being bad and dislikable inside, which is hard to fake [13:19:05.0959] anyway, itā€™s also worth remembering that for the 11 years from 2004 to 2015, even though the spec wasnā€™t under public version control, there were major features that went into it which were at least in part based on proposals from third parties (or in some cases, the design of the entire feature was largely the work of a third party) [13:19:19.0815] in other words, the bulk of the spec ā€” and we have no RF commitments for any of that [13:20:22.0028] but we operated that way for 13-14 years without anybody ever seeing it as a major problem [13:20:33.0755] Not sure why, but for a second I thought Bring Your Own Beer readers were a thing [13:22:55.0630] > <@sideshowbarker:mozilla.org> in other words, the bulk of the spec ā€” and we have no RF commitments for any of that We do have commitments for all of the various W3C publications and WHATWG review drafts. Just not necessarily from those who originally came up with it, which isnā€™t strictly guaranteed now either. [13:23:11.0608] sure [13:24:24.0638] but what bothers me some is the giant new barrier we created for new contributors [13:24:52.0783] for 14 years we operated with effectively zero barrier of entry for new contributors [13:25:50.0728] but then we decided we needed RF commitments for everything, so we unilaterally put the participant agreement in place [13:26:20.0870] ā€¦and with that we suddenly went from zero barrier of entry to massive barrier of entry [13:26:21.0964] > <@sideshowbarker:mozilla.org> but what bothers me some is the giant new barrier we created for new contributors The agreement? That wasn't too hard to read and sign. [13:27:16.0189] > <@everyos:matrix.org> The agreement? That wasn't too hard to read and sign. itā€™s only not hard to sign if youā€™re not employed at an organization that does work related to the web [13:27:26.0159] OHm ok [13:27:32.0334] * OH, ok [13:27:45.0063] Things have improved over the past year, with a huge clarification on what "work in the field of web technologies" means [13:28:29.0491] What happens if you initially sign a personal agreement, but then switch to working? I feel like I've asked before, but have forgotten. [13:28:30.0578] and I have some pretty concrete evidence that it makes things very hard or impossible for some people, because it prevented me from being able to contribute for 2 years [13:28:54.0084] it personally took me 2 years to get my employer to agree to sign it [13:29:38.0960] > <@andreubotella:mozilla.org> Things have improved over the past year, with a huge clarification on what "work in the field of web technologies" means Yes ā€” we can be grateful to the WHATWG SG for recognizing the difficulties and making some mitigations to the rules [13:30:04.0723] ā€¦but it has taken them literally years to get around to finally doing that [13:31:33.0266] I also want to note that the wider WHATWG community was never actually asked, *ā€œDo you think we should put a requirement for a participant agreement in place? And if so, what do you think the termsof it should be?ā€* [13:32:34.0276] we did it without asking the community about it, and zero opportunity for the community to give feedback about it [13:33:05.0044] Clause 1: First kill all the lawyers [13:33:25.0359] ...apologies to the Bard [13:33:39.0590] lawyers are great [13:34:52.0204] *some* lawyers are great [13:35:20.0192] but if you give lawyers an opportunity and freedom to do whatever they want to optimize some situation to mitigate potential legal and financial risks the companies they work for, the lawyers are gonna do their jobs very very well, and optimize the hell out of it, along those lines [13:36:46.0460] strike Clause 1, insert: First kill all the patent trolls [13:37:12.0233] yeah that would be better wording [13:37:51.0509] anyway, I donā€™t want to kill anybody ā€” I just want to try to make sure we make it as easy as possible for new people to show up and help us solve problems together [13:38:34.0506] aja: I donā€™t think this is appropriate time for this channel, even jokingly. No killing needed in web standards. [13:38:50.0772] * aja: I donā€™t think this is appropriate for this channel, even jokingly. No killing needed in web standards. [13:39:28.0258] and IMHO even if the community had been asked about the idea participant agreement, and consensus from the community had been that, yeah, itā€™s a good idea to have a participant agreement ā€” even then, the actual concrete participant agreement that ended up being put in place is not something the community would have found to be optimal for facilitating the same kind of participation weā€™d had for the previous 13-14 years [13:40:39.0728] I originally joined IRC because I was (am) working on a program that heavily uses web standards, and I felt I might as well join. But I now feel obligated to (eventually) do some non-trivial contributions. [13:44:23.0325] FWIW I agree that we failed to strike a good balance, and am embarrassed at how slow we are in improving it. At the time the current WHATWG structure was being negotiated it really didnā€™t look like an option to make anything public before it was done, however, and even in hindsight I donā€™t know if that could have worked. But we could have used our imaginations better and asked how this would work in the worst cases, which shouldnā€™t have been surprising but were, to me at least. [13:44:44.0893] > <@foolip:matrix.org> aja: I donā€™t think this is appropriate for this channel, even jokingly. No killing needed in web standards. yes, it's hard to square those comments with the code of conduct: https://whatwg.org/code-of-conduct [13:45:17.0323] apologies...s/kill/deprecate/ [13:45:51.0676] I'm sorry to say, but the web standards can honestly be a nightmare for me to read. They are so large and intertwined. [13:45:54.0476] you can go back and edit your comments :) [13:46:08.0059] > <@aja:mozilla.org> apologies...s/kill/deprecate/ You forgot the "g" to make it a replace all operation (: [13:46:53.0465] > <@everyos:matrix.org> I'm sorry to say, but the web standards can honestly be a nightmare for me to read. They are so large and intertwined. I don't think there's anyone who understands _all_ of the web platform. You can start small. [13:48:04.0488] > <@andreubotella:mozilla.org> I don't think there's anyone who understands _all_ of the web platform. You can start small. I find it a bit hard. By the time I've read one paragraph I've jumped through 15 references xD [13:48:46.0590] > <@everyos:matrix.org> I'm sorry to say, but the web standards can honestly be a nightmare for me to read. They are so large and intertwined. Yes, absolutely! But you can start with the easier cases, like short algorithms that donā€™t depend on a lot of other things. Once you become familiar with the conventions youā€™ll be able to make sense of bigger and bigger chunks of stuff. And then, TBH, there are a lot of things which are really just broken and donā€™t make sense, so donā€™t assume itā€™s because you donā€™t understand! Almost everything is broken if you look closely. [13:49:31.0928] hence the "please leave your sense of logic at the door" in the topic [13:50:38.0584] EveryOS, you can also do yourself a favor and start with specs that are widely considered high quality, so that not quite everything you look at is secretly broken. [13:50:39.0952] I'm a crazy madman who thought it would be cool to write a rendering engine (: And I've gotten not quite, but pretty close to nowhere [13:50:57.0293] (Wow that image is way too big when it uploaded) [13:51:02.0931] * (Wow that image is way too big when it uploaded) [13:51:14.0990] > <@foolip:matrix.org> FWIW I agree that we failed to strike a good balance, and am embarrassed at how slow we are in improving it. At the time the current WHATWG structure was being negotiated it really didnā€™t look like an option to make anything public before it was done, however, and even in hindsight I donā€™t know if that could have worked. But we could have used our imaginations better and asked how this would work in the worst cases, which shouldnā€™t have been surprising but were, to me at least. well I blame myself as much as anybody else for not having thought it through a lot better ahead of time. And once we had it in place, there was a pretty large amount of inertia against being able to shift anything back a little [13:52:02.0942] EveryOS, thatā€™s awesome, really! Have you seen SerenityOS? That might be a suitable playground with a lot to do, but where thereā€™s already a bunch in place. [13:52:08.0983] foolip: but I very much appreciate the work the SG has been doing to get the changes made ā€” I know it must have created a lot effort [13:52:27.0470] awwwwh, i miss andreas [13:52:39.0055] love to see how much fun he's having with serenityos though [13:53:06.0195] > <@foolip:matrix.org> EveryOS, thatā€™s awesome, really! Have you seen SerenityOS? That might be a suitable playground with a lot to do, but where thereā€™s already a bunch in place. Yea Did you see the image before I deleted it of what I had? It was too large for chat, but I can put it on Imgur or something Nothing impressive [13:53:16.0031] hober: What is SerenityOS? Which Andreas? [13:53:36.0436] hover, yeah, itā€™s inspirational, especially when heā€™s implementing something fun thatā€™s already done and frozen in all ā€œrealā€ browser engines [13:53:38.0855] Andreas Kling [13:53:53.0919] https://github.com/SerenityOS/serenity [13:54:00.0573] > <@hober:mozilla.org> love to see how much fun he's having with serenityos though I've seen a tiny bit of SerenityOS. It's really cool OS, crazy how good the programmer is [13:54:02.0033] oh wow [13:54:19.0866] EveryOS: he used to work with me (on the webkit team at apple) [13:54:22.0312] I didnā€™t even know Andreas had moved on from Apple [13:54:23.0600] he's a sweetie [13:54:34.0050] > <@everyos:matrix.org> Yea > Did you see the image before I deleted it of what I had? It was too large for chat, but I can put it on Imgur or something > Nothing impressive I saw, size wasnā€™t a problem for me, and I liked what I saw! Something that sort of does something, thatā€™s how things start! [13:54:36.0353] > <@hober:mozilla.org> EveryOS: he used to work with me (on the webkit team at apple) That's sweet [13:54:58.0502] WebKit Memes is among Andreasā€™s other great contributions to the world [13:55:20.0047] land patch. go home. [13:55:26.0854] the first but still the best one [13:57:14.0221] it was all gold [13:57:59.0212] EveryOS, if youā€™re looking for easy-ish ways to learn random bits about the web platform, contributing to MDN or BCD is probably a good bet too. [13:58:05.0395] * foolip: but I very much appreciate the work the SG has been doing to get the changes made ā€” I know it must have required a lot of effort [13:59:07.0294] big +1 for that [14:00:03.0279] for MDN we have ~600 open issues in need of somebody to work on fixes/updates to MDN articles for [14:00:30.0596] and that MDN issues list grows at a net rate of about 4 new issues a day [14:00:55.0184] The ā€œeverything is brokenā€ thing definitely holds for MDN too, as excellent as it is :) [14:02:12.0344] > <@foolip:matrix.org> I saw, size wasnā€™t a problem for me, and I liked what I saw! Something that sort of does something, thatā€™s how things start! Yea! Sadly, it's not very cool yet. HTTP is a pain to work with, and eventually I'm gonna have to refactor everything to play nicely with the streams spec. HTTP is currently so bad that I keep having to write a million "InputStream" classes to do anything at all, and with each class I write, the more instable things get [14:03:02.0277] > <@foolip:matrix.org> The ā€œeverything is brokenā€ thing definitely holds for MDN too, as excellent as it is :) yeah I try to avoid reading MDN articles other than the ones Iā€™m curently working on šŸ˜‹ ā€” for fear Iā€™m going find more work for myself ā€” find yet another MDN problem I feel compelled to fix [14:03:59.0237] > <@everyos:matrix.org> sent an image. Java code? [14:04:48.0329] Yea [14:04:54.0948] Actually not too slow [14:06:47.0759] Takes 4 seconds to parse But then again, the HTML parser fails to do a lot of things because a) The spec is very, very big, so I omitted or replaced a lot of things for the sake of being able to get anywhere b) My NIO setup makes just about anything impossible to do without causing billions of bugs [14:08:11.0140] you saying you wrote an HTML parser? [14:09:20.0567] > <@foolip:matrix.org> EveryOS, if youā€™re looking for easy-ish ways to learn random bits about the web platform, contributing to MDN or BCD is probably a good bet too. I've (tried) to contribute a bit to Chromium (: I've made 3 PRs Embarrassingly, the one that was accepted is a three liner () My favorite one got (effectively) denied () [14:10:39.0638] getting a patch merged into the Chromium sources is significant accomplishment ā€” even if itā€™s just 3 lines [14:12:14.0121] EveryOS: what was the reason the https://chromium-review.googlesource.com/c/chromium/src/+/2692949 patch didnā€™t end up making the cut? [14:12:29.0114] I can kind of imagine ā€” thatā€™s a pretty ambitious change [14:13:21.0238] Impressively detailed comment about why it was denied [14:13:41.0287] /me reads [14:14:10.0325] Didn't know that people at Google had time to write multi-paragraph deny messages xD [14:15:01.0177] wow yeah that is a great response [14:15:37.0309] I realize now I think I donā€™t know anybody from the Chrome UX team [14:15:59.0880] you having some direct engagement with the UX team, that seems like a pretty good accomplishment too [14:16:10.0912] anyway, I like your feature, that feature [14:16:18.0916] I would use it [14:16:33.0217] maybe Iā€™ll even try your patch (if it still applies) [14:16:53.0608] > <@sideshowbarker:mozilla.org> anyway, I like your feature, that feature Thanks I gotta disclaim though The code is mine, but the idea actually originated from a bug report xD [14:18:05.0385] --- I noticed, in the comment, they said they were impressed by the commit's work I've been wondering if they meant "for an outsider" or "in general" [14:18:48.0926] > <@everyos:matrix.org> Thanks > I gotta disclaim though > The code is mine, but the idea actually originated from a bug report xD turning ideas into concrete stuff that people can actually use is what engineering is all about, I guess [14:19:35.0636] > <@everyos:matrix.org> --- > I noticed, in the comment, they said they were impressed by the commit's work > I've been wondering if they meant "for an outsider" or "in general" I think they were genuinely impressed with it in general [14:20:26.0787] that reply seems to imply it aligned with some of UX teamā€™s own ideas ā€” but just that they had a different design in mind, which your work did not fit into neatly [14:21:16.0716] I was really happy to see that they brought it to UX and did a whole bunch of testing though And also surprised I honestly thought they would have just denied it on the spot xD [14:23:29.0616] I'd like to mention I had the tiniest bit of normal-C experience before writing my PRs But as for C++, I kind of learned it while writing the PR Not too hard, because it looks exactly like every other imperative language in existence Still, probably not the best prerquisites [14:24:37.0885] I mentioned I had made 3 PRs total Here's my other one, which is "meh" [14:25:05.0283] /me looks [14:26:39.0553] > <@everyos:matrix.org> I mentioned I had made 3 PRs total > Here's my other one, which is "meh" > why was that one rejected? [14:28:21.0057] I find it the whole Gerritt UI pretty hard to navigate and find information in [14:42:00.0721] > <@sideshowbarker:mozilla.org> why was that one rejected? I made it during December/January, when people were on break. I had a question about how a certain WPT test coincided with the CSS standards. The behaviour of the spec didn't seem to match up with that of the WPT test. Nobody was around to answer my question,so I took my best guess. I then wrote and submitted a PR that passed both that WPT test and related WPT tests. After I submitted it to be reviewed, you can guess what happened. Eventually, I ended up pressing the abandon button as it was very obviously not going to be accepted. [14:47:10.0598] EveryOS, if you have more Chromium patches that relate to WPT and canā€™t get any review, feel free to send them to me. [14:49:54.0765] > <@foolip:matrix.org> EveryOS, if you have more Chromium patches that relate to WPT and canā€™t get any review, feel free to send them to me. Oh, they did get reviewed. The IRC that I asked a question to was all on break. The Chromium people were still there xD. [15:04:48.0927] Sooner or later I will write another Chromium PR, but the compiler is a nightmare to work with. [15:05:46.0604] For now, I will work on my browser. Hopefully add CSS support sometime soon, but first I need to figure out how to fix my situation with HTTP, and I also need to make browsing contexts be spec-compliant. [15:06:56.0875] * For now, I will work on my browser. Hopefully add CSS support sometime soon, but first I need to figure out how to fix my situation with NIO, and I also need to rewrute browsing contexts be spec-compliant. [15:34:02.0362] What have ya'll been working on? [15:39:27.0056] > <@everyos:matrix.org> What have ya'll been working on? TIL Chrome's handling of text encoding might be somewhat broken [15:40:27.0949] https://github.com/whatwg/encoding/issues/263 ā€“ this is a spec bug, but see the last paragraph for Chrome's possibly unrelated bug [15:40:52.0961] Ah, ok 2021-06-05 [06:23:51.0164] Oh, I didn't realize that WhatWG had it's 17th anniversary yesterday. That's pretty cool. 2021-06-06 2021-06-07 [19:55:02.0173] Does anyone know if there's a way to get the original/real dimensions of an image on an Image/ before the browser does its 'intervention' - ie the image in the file that is served by the web server? [19:59:15.0531] Max: https://html.spec.whatwg.org/multipage/embedded-content.html#dom-img-naturalwidth maybe [20:02:13.0263] or https://html.spec.whatwg.org/multipage/embedded-content.html#dom-img-naturalwidth-dev is a better link I guess (so-called ā€œdomintroā€, specifically for developers) [20:02:52.0402] or maybe even better, https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/naturalWidth and https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/naturalHeight [00:31:53.0176] https://browser.engineering/ looks cool. [01:34:38.0420] > <@foolip:matrix.org> https://browser.engineering/ looks cool. Nice to see that itā€™s written in markdown (some flavor of markdown at least) [01:37:15.0727] Needing to escape the HTML markup of every HTML example you want to put into would seem to make HTML a bad choice for as the source for a book about the creating or processing content for the webā€¦ [01:38:02.0172] Not sure how many people know yet that the plan for MDN is to move all the MDN sources to markdown [01:39:18.0740] It would be nice if one day most specs are written in markdown rather than HTML [01:42:34.0162] I thought Bikeshed already fully supported writing spec source fully in markdown ā€” but I canā€™t say Iā€™ve seen any specs yet that are fully written in markdown (including any CSS specs) [01:43:14.0810] specs with Bikeshed sources seem to all still have h1-h6 and `

` etc. [01:43:56.0778] * Needing to escape the HTML markup of every HTML example you want to put into a book about the web would seem to make HTML a bad choice for as the source for a book about creating or processing content for the webā€¦ [01:44:14.0276] I don't use `

`, but if you're going to add an ID anyway, there's not much of a win in using markdown for headers [01:44:38.0074] ah yeah that makes sense [01:45:00.0026] Also not sure how to do `

` and `` in md [01:46:09.0026] luckily, for MDN we donā€™t have need for `
`, and not much need for `` [01:47:02.0494] I honestly can't get myself very excited about Markdown over HTML, there's a lot of things to remember and gotchas either way. But I'm happy to go along with it since other people seem to like it :) [01:47:49.0254] well, to me, the biggest win for MDN is not needing to escape code examples [01:48:11.0272] itā€™s just very ugly and very error-prone [01:48:37.0430] Yeah, that's nice, I guess it will use ``` instead? [01:49:18.0143] right [01:49:31.0538] and automatically get syntax highlighting [01:50:38.0312] hmm, well, while I think of it, another huge win is that Iā€™m no longer forced by style policy to use `` and `` instead of just `` and `` [01:51:17.0162] markdown is at least better than the weird HTML-but-not thing that the HTML spec uses [01:52:02.0329] well, bikeshed specs arguably use even more weirdly HTML-but-not syntax [01:53:20.0713] Particuarly the mix of "we just invented the `` element" and "internal links are now written as `` because `x` isn't a real attribute" [01:54:05.0219] ah yeah that stuff is ugly [01:57:47.0181] another thing weā€™ve been doing for the MDN sources in preparation for moving to markdown is, trying to figure out if/how to replace background colors in tables with something that achieves the same effect [01:58:37.0931] an example of something that got changed for that reason is the **Sameness Comparisons** table at https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#a_model_for_understanding_equality_comparisons [01:59:04.0163] previously the cells there had either green or red backgrounds [01:59:33.0584] but it got replaced with āœ… U+2705 WHITE HEAVY CHECK MARK and āŒ U+274C CROSS MARK emoji [02:00:13.0167] I claim itā€™s actually an improvement ā€” but I can imagine others might not agree [02:00:38.0754] * but those background colors got replaced with āœ… U+2705 WHITE HEAVY CHECK MARK and āŒ U+274C CROSS MARK emoji [05:53:51.0396] Just spotted https://html.spec.whatwg.org still says "Join us on IRC, #whatwg on Freenode", which links to https://wiki.whatwg.org/wiki/IRC which redirects to https://whatwg.org/irc, but both should probably redirect to https://whatwg.org/chat and the spec page also just link to /chat and say 'Chat with us, Matrix or IRC', or similar. Not exactly urgent :-) [05:54:59.0224] Well, that's more verbose than I'd expected. [05:58:53.0546] Good catch [06:32:45.0827] Where are the constructor steps for "Event" defined in the HTML spec? Can't find them anywhere in https://dom.spec.whatwg.org/#interface-event. Specifically looking for the initialization steps for `timeStamp`. [06:34:40.0080] https://dom.spec.whatwg.org/#constructing-events says a lot of stuff [06:35:28.0351] I think itā€™s like this to deal with init dicts in a single place [06:37:50.0465] Ah... thanks :-) [07:17:12.0051] > <@foolip:matrix.org> https://browser.engineering/ looks cool. Only a thousand lines? My RE is many thousand lines and I've still not gotten to JS. Surely that book must be using tons of premade libraries. [07:17:40.0607] > <@foolip:matrix.org> https://browser.engineering/ looks cool. * Only a thousand lines? My RE is many thousand lines and I've still not gotten even close to JS. Surely that book must be using tons of premade libraries. [07:29:38.0376] Ah, I see, it's just a super tiny subset [07:55:11.0936] > <@everyos:matrix.org> --- > I noticed, in the comment, they said they were impressed by the commit's work > I've been wondering if they meant "for an outsider" or "in general" First, its impressive whenever an external person shows up with a CL in crbug. Second, its extra impressive for someone to take a vague 1-line problem statement and turn it into a complete working solution. So well done! (And I work at google and often can't get UX feedback because they are so busy, so extra well done for engaging so well with them!) [07:59:21.0286] > <@wanderview:matrix.org> First, its impressive whenever an external person shows up with a CL in crbug. Second, its extra impressive for someone to take a vague 1-line problem statement and turn it into a complete working solution. So well done! (And I work at google and often can't get UX feedback because they are so busy, so extra well done for engaging so well with them!) Oh, I see (: Well, thanks [10:43:50.0683] welcome Rick Byers [10:44:05.0789] Hey @zcor [10:44:22.0873] * Hey zcorpan , good to see you! [10:44:30.0441] foolip: [10:44:47.0148] * foolip just told me I needed to learn to use Matrix, so I'm trying :-) [10:45:27.0087] I guess many of us are matrix noobs here [16:23:55.0384] in this modern era, is there a way to display an svg without opening yourself up to arbitrary js 2021-06-08 [18:09:29.0798] > <@sideshowbarker:mozilla.org> Max: https://html.spec.whatwg.org/multipage/embedded-content.html#dom-img-naturalwidth maybe I think you'll find those properties are the dimensions *after* browser intervention, and do not necessarily reflect the dimensions of the image in the file on the server. [18:11:17.0101] Checkout this PR: https://pr5734.content.dev.mdn.mozit.cloud/en-US/docs/Web/API/HTMLImageElement/naturalWidth [18:11:38.0300] "Note: Most of the the time the natural width is the actual width of the image sent by the server. Nevertheless, browsers can modify an image before pushing it to the renderer. For example, Chrome degrades the resolution of images on low-end devices. In such cases, naturalWidth will consider the width of the image modified by such browser interventions as the natural width, and returns this value." [18:12:46.0406] It would be very useful, I think, so have an API that returned the width of the image in the file that is downloaded, prior to browser interventions. [23:02:09.0187] devsnek: `` doesn't execute js [23:49:52.0803] sideshowbarker: if you have a moment: https://github.com/whatwg/html/pull/6747 [23:53:54.0971] merged [23:55:17.0645] annevk: about https://github.com/mdn/content/pull/5715#discussion_r646077455 nevermind ā€” I realize now that I was just misreading the spec and testing the wrong thing (well, just (re)testing the OPā€™s test case, which was wrong) [23:57:58.0986] sideshowbarker: yeah, depends on namespace prefix, not namespace [23:58:12.0983] yup, Ms2ger set me straight on that [07:18:55.0786] I've now seen Devsnek on a total of 3 chat platforms. They are like everywhere. 2021-06-09 [02:02:33.0484] > <@davidmaxwaterman:matrix.org> It would be very useful, I think, so have an API that returned the width of the image in the file that is downloaded, prior to browser interventions. Does anyone else think this would be useful too? ...or is it basically 'not going to happen'? [02:17:33.0390] Max: the spec doesn't account for browser interventions for low memory devices. Maybe it could be argued that such interventions should not have observable effects on APIs such as naturalWidth [02:23:42.0673] But since the intervention seems to be to make images smaller to not run out of memory, maybe there's no great option. The spec could allow it to happen and expose a new property to let the page know that it did (and how much it was scaled) [02:25:06.0057] yeah. I'm really just looking for the information provided in the dev tools - I forget exactly the wording, but the information is there, so I guess it's available somewhere. [02:25:54.0427] Max: see https://bugs.chromium.org/p/chromium/issues/detail?id=1187043#c9 [02:29:45.0588] ah, dev tools says 'intrinsic size' and that remains the 'correct' size :) [02:30:15.0960] > <@zcorpan_:matrix.org> Max: see https://bugs.chromium.org/p/chromium/issues/detail?id=1187043#c9 Yeah, that's my bug ;) [02:30:52.0210] I realise "there are ways"...just feel like it would be good to just expose the information since it's already there (assuming it is) [02:31:37.0259] I suppose I'm wondering how certain the 'AFAIK/CT' is in that message... [02:32:06.0712] Max: I assume fs looked at the code [02:33:20.0548] ok, fair enough. I already 'worked around' my actual issue...just following it up to see if there's any chance of getting the raw data in an api...perhaps there are more importnat things. [02:37:20.0424] changes are always possible. I don't know if an API for this is a good thing long-term. I've added a comment in the chromium issue [02:41:43.0347] ok, thanks for that. [02:47:11.0636] Note that I'm not concerned about the UA scaling the image down, just that I have the dimensions of the original... [02:47:28.0474] but anyway, I think I'm done with that. Thanks for your attention. [02:50:28.0207] sure, but it could break other pages that don't know about this happening. trying to apply first principles, that interventions like this should be unobservable to the page if possible :) [02:58:53.0426] annevk: Is there consensus that a proposal for adding base64 encoding to `TextEncoder` / `TextDecoder` would be rejected? If not I'd like to write up a proposal. [02:59:18.0552] Only reference public issue somewhat related I could find is https://github.com/whatwg/encoding/issues/138 [03:01:32.0010] I assume this has been discussed before and rejected because semantically using a TextEncoder to _decode_ base64 is kinda strange. [03:12:36.0015] Luca Casonato: The encoding standard and the `TextDecoder`/Encoder APIs are for _character_ encodings, not something like base64. [03:13:03.0821] Even isomorphic encoding, which is technically a character encoding (Latin-1) is not a good fit for the standard as per the bug you linked. [03:14:16.0532] But I guess some version of `atob` that works on buffers could be added to the HTML spec [03:15:13.0726] Makes sense. Maybe a new BinaryEncoder / BinaryDecoder that can do base64 / hex? [03:15:40.0333] That might work [04:16:48.0085] timothygu++ for https://chromium.googlesource.com/chromium/src/+/97d5f5cd25bf571c42ab167980873471389d0959 [05:46:31.0924] Luca Casonato: there's variants of base64 (see also Infra) so that's something that needs solving too [05:48:09.0137] Luca Casonato: apart from what Andreu Botella (he/they) said it also ends up being a mismatch with the terms; text encode is string -> bytes, but base64 encode is bytes -> string [06:01:53.0076] Makes sense. Iā€™ll write up a little doc on the problem [12:12:45.0558] Started on a little proposal: https://github.com/lucacasonato/proposal-binary-encoding. Probably not great though - don't really know what the standard practice for new proposals is though. Are there some recent pre-standardization WHATWG proposals out there to look at? 2021-06-10 [00:19:35.0237] Luca Casonato: that looks pretty great; one thing that can help with things like this is a comparison with other programming languages; also curious if we need streaming (guess not, but might be worth calling out in a FAQ or some such) [00:40:52.0038] annevk Thanks for the feedback! I'll add an FAQ, and a section on other languages' implementations. There is a comment about streaming in the doc - I think the best way to implement streaming would be a seperate `BinaryEncoderStream` / `BinaryDecoderStream` akin to the text encoders. [00:42:06.0479] But maybe a synchronous capable streaming API would make sense too? That could be added via a `stream: true` in an options bag to `encode` / `decode` / `decodeInto`. [00:42:27.0109] Anyway - will put tjhese comments into an issue and link to it from the FAQ. [02:30:06.0337] annevk FAQ and language/environment comparison added. [05:08:07.0557] Luca Casonato: I'd also ask MattiasBuelens and ricea for review [09:26:34.0050] fwiw, isn't base64-encode still bytes -> bytes? The output bytes are chosen to be displayable as ASCII, but it's not "text"; there's no codepoints involved. [09:26:50.0155] (You wouldn't then encode base64 "text" as utf-16, for example.) [09:38:26.0159] That seems technically true, but the usual use case for base64 is where you need a Text type (e.g. for JSON). So thinking of it as a bytes -> Text transformation fits the use cases better [09:40:36.0769] (and if the whole payload including the base64 part was then going to be encoded as UTF-16 that's what you'd do, not embed the base64 bytes directly in a UTF-16 message) 2021-06-11 [01:22:31.0036] Anyone feel like reviewing https://github.com/html5lib/html5lib-tests/pull/135 ? Sam Sneddon [:gsnedders] ? [01:34:45.0831] What do you need? An "OK, zcorpan wrote it, it's probably fine", or an "I checked the spec and it says this is correct"? [01:36:44.0891] I sometimes make mistakes šŸ¤· [01:39:59.0944] case in point: https://github.com/whatwg/html/pull/6455 [02:19:59.0660] "No, look, I am _sometimes_ wrong, and I've got a bug report to prove it" [02:20:23.0328] LOL [03:14:51.0289] People discovering `target="_blank"` made me feel so old https://css-tricks.com/targetblank/ 2021-06-12 2021-06-13 [13:44:27.0546] > <@jgraham_:matrix.org> "No, look, I am _sometimes_ wrong, and I've got a bug report to prove it" I swear, I'm only a human! Nothing more special! [13:44:38.0179] > <@jgraham_:matrix.org> "No, look, I am _sometimes_ wrong, and I've got a bug report to prove it" * "I swear, I'm only a human! Nothing more special!" 2021-06-14 [23:46:40.0353] Domenic \o/ [02:42:13.0806] šŸ‘‹ Is this the replacement for the irc.freenode channel? [02:48:16.0863] Yep [08:27:42.0150] Domenic: it's pretty clear Origin Policy isn't being looked into at the moment, but if it makes a comeback the ideas in https://cispa.de/en/research/publications/3214-reining-in-the-web-s-inconsistencies-with-site-policy are worth considering (via freddy) [08:29:10.0450] Domenic: in particular I quite like the thing where you can put all your policies in a single file and then select the one to apply per page (with some kind of fallback); less sure about crossing the origin boundary though [11:03:44.0597] sideshowbarker: now that https://html.spec.whatwg.org/review-drafts/2020-01/ is a Rec would it be possible to get redirects/NOTE stubs for as much of https://wiki.whatwg.org/wiki/Fork_tracking as possible? Like was done for the other specs? [11:20:16.0203] https://wiki.whatwg.org/wiki/Main_Page is now deployed from a version-controlled Dockerfile and configuration, and on the latest Debian/Apache/PHP/MediaWiki, woohoo.https://github.com/whatwg/wiki.whatwg.org [12:20:22.0922] Awesome, such a relief! [14:49:40.0212] annevk: https://github.com/whatwg/html/pull/6714 would be much appreciated if you have the time. Trying to un-stick navigation foundations as much as possible so app history makes sense... 2021-06-15 [23:15:13.0177] > <@domenicdenicola:matrix.org> sideshowbarker: now that https://html.spec.whatwg.org/review-drafts/2020-01/ is a Rec would it be possible to get redirects/NOTE stubs for as much of https://wiki.whatwg.org/wiki/Fork_tracking as possible? Like was done for the other specs? Yes, I still need to do that ā€” as we did for the obsolete DOM specs [23:15:42.0455] Iā€™ve done some of the HTML ones, but need to audit against that list to get them all [08:05:07.0639] looking at https://github.com/mdn/content/pull/6009 [08:06:00.0694] can anybody suggest a test case/demo that would demonstrate an empty string for `location.pathname`? [08:07:13.0486] when a browser navigates you to a particular site, itā€™s got to have a path, right? [08:07:28.0213] Maybe data: [08:07:32.0658] how can you navigate to a URL that doesnā€™t have a path? [08:08:19.0629] Neither Chrome nor Firefox allow navigating to data: though [08:08:48.0397] in other words, is it actually possible in practice for `location.pathname` to be the empty string rather than an actual path? [08:09:07.0652] In the current browsers that I am testing with it does not seem to be possible [08:09:12.0275] But it's not prohibited per spec [08:09:36.0161] Oh [08:09:42.0091] In Firefox about:blank has empty pathname [08:09:46.0929] (Per spec pathname should be "blank") [08:10:08.0419] Wait no [08:10:21.0821] Using `new URL()` about:blank has empty pathname, but using `Location` it has `blank` as the pathname [08:12:36.0385] yeah OK that is reassuring :) [08:12:44.0446] I guess the MDN article is just trying to say too much here [08:13:45.0459] at https://html.spec.whatwg.org/multipage/history.html#dom-location-pathname-dev the spec just says: > Returns the Location object's URL's path. [08:14:05.0571] Iā€™m not sure itā€™s useful to say anything more than that [08:14:32.0464] hmm, well, I see now the MDN article doesnā€™t mention setting it, though the spec does [08:15:15.0323] the fact that it can be set and that setting it causes a navigation is pretty useful info [08:15:34.0236] > Can be set, to navigate to the same URL with a changed path. [08:16:38.0288] hmm, though ā€œsame URL with a changed pathā€Ā maybe it not the greatest wording ā€” if the path changes, itā€™s not the ā€œsame URLā€ any more [09:41:28.0987] `new URL("data:")` has an empty pathname and is valid in spec and chrome at least [09:42:41.0779] But is that a location? Can you navigate to it? [10:34:27.0002] are navigations limited to special schemes or something? otherwise anything that uses a custom scheme can have an empty path [10:34:56.0955] Yeah above I was trying to test non-special schemes and didn't find any that a browser could navigate to [10:35:33.0405] But there's nothing prohibiting such navigations. [10:36:22.0116] Maybe if you launched the browser from the command line... [10:36:53.0543] or a redirect? [10:37:15.0641] or an extension helping with the navigation [10:39:37.0125] Navigate can either go to a fetch scheme (about, blob, data, file, http, https) or javascript: or ends up in https://html.spec.whatwg.org/#process-a-navigate-url-scheme . The latter will always result in an opaque-origin page so unless the page itself gets to run JS nobody will be able to observe location.pathname being empty string. So that's why I was focused on about, data, and javascript. [10:40:31.0396] This reminds me, has there been any progress on defining "navigation specifically through the URL bar"? [10:42:01.0449] Or I guess opening the browser from the command line should have the same result, minus creating the browsing context [10:43:20.0009] Command line and URL bar are different it turns out since the URL bar does searches [10:43:37.0748] So `javascript:` from command line opened the new tab page whereas typing that in the URL bar did a search [10:44:03.0234] Anyway defining navigation through the URL bar is somewhat happening, see https://wicg.github.io/app-history/#user-initiated-patches [10:45:12.0082] I thought the specs could ignore the URL bar search, treating it as "navigation through the URL bar" to the search engine [10:45:24.0339] Testing that would be trickier though [10:46:24.0194] Agreed they'd ignore the distinction, just saying that it turns out they are different and that made trying to generate degenerate empty-path pages tricky :) [10:46:54.0157] Right šŸ‘ļø [12:35:02.0741] Domenic: silly question, how do I get from https://github.com/WICG/app-history to https://wicg.github.io/app-history/ ? [12:47:54.0744] smaug: ^ (it seems Matrix doesn't let you type a message to go with your image upload...) [12:48:25.0623] there [12:48:28.0182] thanks [12:48:36.0880] I was going through the text [12:49:02.0111] (still don't know whether I should read readme or the spec, or both) [12:49:56.0138] The spec should be a subset of the readme [12:50:07.0805] Corresponding to the parts I've managed to make precise [13:26:25.0543] Is there a specification that defines the `!` prefix for `preform` steps in specifications? For example in `Perform ! stream.[[controller]].[[ErrorSteps]]()`, what does the `!` mean? [13:27:02.0740] Luca Casonato: https://timothygu.me/es-howto/#completion-records-and-shorthands [13:27:20.0011] specifically https://timothygu.me/es-howto/#exclamation-mark [13:27:46.0258] Ah! Thanks :-) [13:28:30.0996] I regret using ECMAspeak in the Streams spec... only a bit remains, but the !s and ?s are definitely part of it. [13:29:12.0984] annevk: jgraham: apparently you can make rooms have avatars; we should make the WHATWG logo this room's avatar. [13:29:41.0032] > <@domenicdenicola:matrix.org> annevk: jgraham: apparently you can make rooms have avatars; we should make the WHATWG logo this room's avatar. It is [13:30:04.0642] Hmm, not for me, even after reloading; rather curious. [13:30:25.0402] Yeah, isn't for me either. [13:30:53.0624] Ah, but if one clicks on the icon, the avatar shows up [13:31:05.0060] I'm guessing the avatar is SVG, which only some clients support :') [13:31:08.0094] Oh, very interesting: https://matrix-client.matrix.org/_matrix/media/r0/thumbnail/mozilla.org/56b9d49c31be7d13714fa95e8c4674a4ea58d745?width=96&height=96&method=crop [13:31:14.0037] seems the icon lives on mozilla.org? [13:31:36.0857] /me dives into the matrix specs [13:32:28.0558] i was sort of expecting the icon to live on the same server as the room itself (matrix.org afaik for this room) [13:32:38.0531] anyway, i have no idea how matrix works lol [13:32:54.0833] Nah, we had the same issue over on #jsdom:matrix.org [13:33:09.0474] SVG only shows up in some cases. PNG works everywhere. [13:38:43.0405] Domenic: Working on some streams spec impl fixes in Deno, but I am running into a case where `WritableStreamDefaultController[[AbortAlgorithm]]` is undefined when calling `WritableStreamDefaultController[[AbortSteps]]` in `WritableStreamFinishErroring` because `WritableStreamDefaultControllerError` called `WritableStreamDefaultControllerClearAlgorithms` before calling `WritableStreamStartErroring`. Could this be a spec issue? [13:39:56.0706] Luca Casonato: it seems unlikely as I think that code path is well-tested in the reference implementation but it's always possible. I'd suggest opening an issue on whatwg/streams so folks can dive in when they have time. [14:53:23.0150] > <@domenicdenicola:matrix.org> Luca Casonato: it seems unlikely as I think that code path is well-tested in the reference implementation but it's always possible. I'd suggest opening an issue on whatwg/streams so folks can dive in when they have time. After some more digging, it does seem to be a spec issue. https://github.com/whatwg/streams/pull/1137 [14:55:58.0309] Regarding the participant agreement - it got it signed a few weeks ago, but it hasn't been verified yet. Who can I ping for that? :-) [14:56:19.0011] I just verified it; we generally verify it the first time it's needed. [14:56:22.0828] Ah I see you just did it, thanks :-) 2021-06-16 [17:06:03.0496] > <@timothygu:matrix.org> SVG only shows up in some cases. PNG works everywhere. Huh, apparently the matrix.org homeserver is buggy when making thumbnails for SVG images, but the mozilla.org homeserver isn't [23:36:21.0573] Domenic: you should be able to navigate a nested context to a data: URL (there's an open PR by me on forbidding it for top-level contexts with some open questions) [23:37:35.0168] (I changed the avatar to a PNG) [00:01:19.0919] wfm [00:02:18.0198] fwf, i know for a fact svgs work since that is what i used for my own room [00:03:16.0920] no clue if there are attributes missing on y'alls (perhaps a case of over-optimization) [00:06:04.0917] The issue is https://github.com/matrix-org/synapse/issues/1309 [00:06:43.0359] I don't know why it works on mozilla.org though, since it also seems to use Synapse [00:11:36.0019] tbh, not entirely sure how important it is to have a non-lossy image format at this point [00:13:30.0773] guess the room preview @ https://matrix.to/#/#whatwg:matrix.org will remain relatively small [00:14:56.0206] oh, but when you click on the room image in the element web app it takes up _the entire_ screen [00:15:11.0651] oof, that is less than ideal [00:25:40.0283] > <@lucacasonato:matrix.org> i was sort of expecting the icon to live on the same server as the room itself (matrix.org afaik for this room) Rooms exist on all participating servers at the same time; media such as images are also duplicated. You can replace matrix-client.matrix.org by any other participating homeserver and still get the media. For instance, [here is the room logo on my server](https://mayeul.net/_matrix/media/r0/download/mozilla.org/cab85c2fc275cb19f0276f7dd2ba4af349b0223f), [KDE's](https://kde.modular.im/_matrix/media/r0/download/mozilla.org/cab85c2fc275cb19f0276f7dd2ba4af349b0223f), [Mozilla's](https://mozilla.modular.im/_matrix/media/r0/download/mozilla.org/cab85c2fc275cb19f0276f7dd2ba4af349b0223f). [00:26:07.0380] > <@lucacasonato:matrix.org> i was sort of expecting the icon to live on the same server as the room itself (matrix.org afaik for this room) * Rooms exist on all participating servers at the same time; media such as images is also duplicated. You can replace matrix-client.matrix.org by any other participating homeserver and still get the media. For instance, [here is the room logo on my server](https://mayeul.net/_matrix/media/r0/download/mozilla.org/cab85c2fc275cb19f0276f7dd2ba4af349b0223f), [KDE's](https://kde.modular.im/_matrix/media/r0/download/mozilla.org/cab85c2fc275cb19f0276f7dd2ba4af349b0223f), [Mozilla's](https://mozilla.modular.im/_matrix/media/r0/download/mozilla.org/cab85c2fc275cb19f0276f7dd2ba4af349b0223f). [00:27:39.0706] And your client fetches the media from your own homeserver (which will fetch it from the federation if not available; currently synapse only asks the originating homeserver). [01:16:55.0737] > <@andreubotella:mozilla.org> I don't know why it works on mozilla.org though, since it also seems to use Synapse Andreu Botella (he/they): can you give me an example of it working on mozilla.org? do you mean `chat.mozilla.org?` [01:21:21.0797] Right now the logo is a PNG, but If you have your user account registered on the mozilla.org homeserver, you could see the logo before [01:26:09.0282] > <@andreubotella:mozilla.org> Right now the logo is a PNG, but If you have your user account registered on the mozilla.org homeserver, you could see the logo before my user acc is on mozilla.org and i was not able to see the logo previously as it was an svg [01:30:29.0730] I don't know, but when I was testing this last night, downloading the logo with the `download` API worked on both my usual mozilla.org account and on a test matrix.org account, but the `thumbnail` API gave a 404 on the matrix.org account [01:30:46.0115] https://matrix.org/docs/spec/client_server/r0.6.1#get-matrix-media-r0-download-servername-mediaid [01:31:57.0830] none of the rooms in the mozilla.org homeserver seem to be using an svg afaict [01:34:36.0711] > [...] but the `thumbnail` API gave a 404 on the matrix.org account [01:34:40.0781] ditto here [06:04:54.0489] i saw the logo before the change and still see it now. Fwiw we use #synchronicity:mozilla.org for debugging and discussing these types of issues. at least it's the "mozilla gateway to the matrix devs".. :) not sure if that helps [11:35:19.0070] > <@fbraun:mozilla.org> i saw the logo before the change and still see it now. Fwiw we use #synchronicity:mozilla.org for debugging and discussing these types of issues. at least it's the "mozilla gateway to the matrix devs".. :) not sure if that helps freddy: thanks, good to know (guess id ask in there before making any future support request). to be clear tho, afaict the issue might not be exclusive to mozilla matrix infra (404s were at least coming from `https:matrix-client.matrix.org` when i checked (altho would not be surprised if `https://mozilla.modular.im` does the same); the docs to exact api that is senselessly failing [were linked above](https://matrix.org/docs/spec/client_server/r0.6.1#id404) by Andreu Botella (he/they) (thnx!), but seems like we needed to dig further.. > The homeserver SHOULD be able to supply thumbnails for uploaded images and videos. The exact file types which can be thumbnailed are not currently specified [...] > ā€” https://matrix.org/docs/spec/client_server/r0.6.1#id407 > [...] with the exception of SVG which is particularly vulnerable to exploding clients thanks to billion lol attacks. > ā€” https://github.com/matrix-org/matrix-doc/issues/1938#issue-424877225 XXXbz? the api in question does not currently specify which media formats are supported (or perhaps, more importantly, _unsupported_), but one of the peeps in that issue seems to have safety concerns, particularly w/ _svg thumbnails_ for some reason [11:37:35.0811] DerekNonGeneric: I think the difference with thumbnails is that the homeserver doesn't have to process the full-res image, it can just store it as is. But for generating thumbnails, the homeserver has to parse the image, and the billion laughs attack is a well known denial of service attack against XML formats [11:38:23.0911] https://en.wikipedia.org/wiki/Billion_laughs_attack [11:42:31.0866] oh wow, til -- thanks! [11:46:31.0390] wonder if `https:matrix-client.matrix.org` was forced to block that format for this api due to shenanigans [11:49:26.0747] From a quick look at the code, it seems like the development version of Synapse doesn't generate thumbnails for SVGs, so it's not a matrix.org only thing [11:50:03.0011] But I'll check it later today and maybe ask on #synchronicity:mozilla.org if they're using any patches to Synapse that might fix that [11:50:27.0523] g2g right now tho [11:50:46.0729] cool, thnx -- keep me posted tho [11:51:50.0886] "generating a thumbnail for SVG" sounds like a fun project. shouldn't it just proxy the original image? SVG is _scalable_ after all šŸ˜‰ [11:53:19.0562] > <@lucacasonato:matrix.org> "generating a thumbnail for SVG" sounds like a fun project. shouldn't it just proxy the original image? SVG is _scalable_ after all šŸ˜‰ https://github.com/matrix-org/synapse/issues/1309#issuecomment-258911034 [12:02:07.0972] welll if modding the svg's xml is ok, firstly id run security checks for at least billion lol attacks, after that i would probably run the svgs through a minifier, then after that: - > "scale" maintains the original aspect ratio of the image `width` and `height` attribs on the root `svg` element - > "crop" provides an image in the aspect ratio of the sizes given in the request would need to actually test it out, but maybe mucking w/ the `viewbox` dimensions (the attrib on the root `svg` element) [12:04:40.0319] * welll if modding the svg's xml is ok, firstly id run security checks for at least billion lol attacks, after that i would probably run the svgs through a minifier, then after that: - > "scale" maintains the original aspect ratio of the image `width` and `height` attribs on the root `svg` element - > "crop" provides an image in the aspect ratio of the sizes given in the request would need to actually test it out, but maybe mucking w/ the `viewbox` dimensions (also on the root `svg` element) [12:14:49.0639] * welll if modding the svg's xml is ok, firstly id run security checks for at least billion lol attacks, after that i would probably run the svgs through a minifier, then after that: > | --- | --- | --- | > | width | integer | Required. The desired width of the thumbnail. The actual thumbnail may be larger than the size specified. | > | height | integer | Required. The desired height of the thumbnail. The actual thumbnail may be larger than the size specified. | > ā€” https://matrix.org/docs/spec/client_server/r0.6.1#get-matrix-media-r0-thumbnail-servername-mediaid - > "scale" maintains the original aspect ratio of the image > ā€” https://matrix.org/docs/spec/client_server/r0.6.1#thumbnails id simply modify the `width` and `height` attribs on the root `svg` element - > "crop" provides an image in the aspect ratio of the sizes given in the request > ā€” https://matrix.org/docs/spec/client_server/r0.6.1#thumbnails would need to actually test it out, but maybe mucking w/ the `viewbox` dimensions (also on the root `svg` element)? [12:15:43.0761] * welll if modding the svg's xml is ok, firstly id run security checks for at least billion lol attacks, after that i would probably run the svgs through a minifier, then after that: > | --- | --- | --- | > | width | integer | Required. The desired width of the thumbnail. The actual thumbnail may be larger than the size specified. | > | height | integer | Required. The desired height of the thumbnail. The actual thumbnail may be larger than the size specified. | > ā€” https://matrix.org/docs/spec/client_server/r0.6.1#get-matrix-media-r0-thumbnail-servername-mediaid 1. > "scale" maintains the original aspect ratio of the image > ā€” https://matrix.org/docs/spec/client_server/r0.6.1#thumbnails id simply modify the `width` and `height` attribs on the root `svg` element 2. - > "crop" provides an image in the aspect ratio of the sizes given in the request > ā€” https://matrix.org/docs/spec/client_server/r0.6.1#thumbnails would need to actually test it out, but maybe mucking w/ the `viewbox` dimensions (also on the root `svg` element)? [12:16:13.0974] * welll if modding the svg's xml is ok, firstly id run security checks for at least billion lol attacks, after that i would probably run the svgs through a minifier, then after that: > | --- | --- | --- | > | width | integer | Required. The desired width of the thumbnail. The actual thumbnail may be larger than the size specified. | > | height | integer | Required. The desired height of the thumbnail. The actual thumbnail may be larger than the size specified. | > ā€” https://matrix.org/docs/spec/client_server/r0.6.1#get-matrix-media-r0-thumbnail-servername-mediaid 1. "scale" maintains the original aspect ratio of the image > ā€” https://matrix.org/docs/spec/client_server/r0.6.1#thumbnails id simply modify the `width` and `height` attribs on the root `svg` element 2. "crop" provides an image in the aspect ratio of the sizes given in the request > ā€” https://matrix.org/docs/spec/client_server/r0.6.1#thumbnails would need to actually test it out, but maybe mucking w/ the `viewbox` dimensions (also on the root `svg` element)? [12:16:44.0782] * welll if modding the svg's xml is ok, firstly id run security checks for at least billion lol attacks, after that i would probably run the svgs through a minifier, then after that: | --- | --- | --- | | width | integer | Required. The desired width of the thumbnail. The actual thumbnail may be larger than the size specified. | | height | integer | Required. The desired height of the thumbnail. The actual thumbnail may be larger than the size specified. | > ā€” https://matrix.org/docs/spec/client_server/r0.6.1#get-matrix-media-r0-thumbnail-servername-mediaid 1. "scale" maintains the original aspect ratio of the image > ā€” https://matrix.org/docs/spec/client_server/r0.6.1#thumbnails id simply modify the `width` and `height` attribs on the root `svg` element 2. "crop" provides an image in the aspect ratio of the sizes given in the request > ā€” https://matrix.org/docs/spec/client_server/r0.6.1#thumbnails would need to actually test it out, but maybe mucking w/ the `viewbox` dimensions (also on the root `svg` element)? [12:19:13.0129] * welll if modding the svg's xml is ok, firstly id run security checks for at least billion lol attacks, after that i would probably run the svgs through a minifier, then after that: | x | y | z | | --- | --- | --- | | width | integer | Required. The desired width of the thumbnail. The actual thumbnail may be larger than the size specified. | | height | integer | Required. The desired height of the thumbnail. The actual thumbnail may be larger than the size specified. | Source: https://matrix.org/docs/spec/client_server/r0.6.1#get-matrix-media-r0-thumbnail-servername-mediaid > "scale" maintains the original aspect ratio of the image > ā€” https://matrix.org/docs/spec/client_server/r0.6.1#thumbnails id simply modify the `width` and `height` attribs on the root `svg` element > "crop" provides an image in the aspect ratio of the sizes given in the request > ā€” https://matrix.org/docs/spec/client_server/r0.6.1#thumbnails would need to actually test it out, but maybe mucking w/ the `viewbox` dimensions (also on the root `svg` element)? [12:21:41.0024] * welll if modding the svg's xml is ok, firstly id run security checks for at least billion lol attacks, after that i would probably run the svgs through a minifier, then after that: ``` | x | y | z | | ------ | ------- | ---------------------------------------------------------------------------------------------------------- | | width | integer | Required. The desired width of the thumbnail. The actual thumbnail may be larger than the size specified. | | height | integer | Required. The desired height of the thumbnail. The actual thumbnail may be larger than the size specified. | ``` Source: https://matrix.org/docs/spec/client_server/r0.6.1#get-matrix-media-r0-thumbnail-servername-mediaid > "scale" maintains the original aspect ratio of the image > ā€” https://matrix.org/docs/spec/client_server/r0.6.1#thumbnails id simply modify the `width` and `height` attribs on the root `svg` element > "crop" provides an image in the aspect ratio of the sizes given in the request > ā€” https://matrix.org/docs/spec/client_server/r0.6.1#thumbnails would need to actually test it out, but maybe mucking w/ the `viewbox` dimensions (also on the root `svg` element)? [12:24:43.0697] /me questions the lack of rendered markdown table support in messages? [12:35:40.0253] anyways, svgs would likely be able to fit the thumbnail api w/o causing distortion to the original image and the security concern could likely be mitigated by validating image uploads (like at the point when the user uploads their avatar) [12:50:27.0500] * welll if modding the svg's xml is ok, firstly id run security checks for at least billion lol attacks, after that i would probably run the svgs through a minifier, then after that: ``` | x | y | z | | ------ | ------- | ---------------------------------------------------------------------------------------------------------- | | width | integer | Required. The desired width of the thumbnail. The actual thumbnail may be larger than the size specified. | | height | integer | Required. The desired height of the thumbnail. The actual thumbnail may be larger than the size specified. | ``` Source: https://matrix.org/docs/spec/client_server/r0.6.1#get-matrix-media-r0-thumbnail-servername-mediaid id simply modify the `width` and `height` attribs on the root `svg` element > - "scale" maintains the original aspect ratio of the image > - "crop" provides an image in the aspect ratio of the sizes given in the request > ā€” https://matrix.org/docs/spec/client_server/r0.6.1#thumbnails would need to actually test it out, but maybe mucking w/ the `viewbox` dimensions (also on the root `svg` element)? [13:33:09.0869] * anyways, svgs would likely be able to fit the thumbnail api w/o causing distortion to the original image and the security concern could likely be mitigated by validating image uploads (like [at the very least] at the point when the user uploads their avatar [ altho unsure if due diligence can be expected for each of the various participating homeserver ]) [13:35:19.0523] * anyways, svgs would likely be able to fit the thumbnail api w/o causing distortion to the original image and the security concern could likely be mitigated by validating image uploads (like [at the very least] at the point when the user uploads their avatar [ altho unsure if due diligence can be expected for each of the various participating homeservers ]) [13:38:11.0880] * anyways, svgs would likely be able to fit the thumbnail api w/o causing distortion to the original image and the security concern could likely be mitigated by validating image uploads (like [at the very least] at the point when the user uploads their avatar [ altho unsure if due diligence can be expected of all participating homeservers ]) 2021-06-17 [19:35:35.0621] Hi. I'm trying to understand the paragraph definition in here https://html.spec.whatwg.org/multipage/dom.html#paragraphs , but I can't understand the wording. English is not my mother tongue, so can anyone help me out? Much appreciated. [19:37:04.0310] > Paragraphs in flow content are defined relative to what the document looks like without the a, ins, del, and map elements complicating matters, since those elements, with their hybrid content models, can straddle paragraph boundaries, as shown in the first two examples below. Is it just these elements or any transparent element? [19:37:12.0968] * > Paragraphs in flow content are defined relative to what the document looks like without the a, ins, del, and map elements complicating matters, since those elements, with their hybrid content models, can straddle paragraph boundaries, as shown in the first two examples below. Is it just these elements or any transparent element? [19:38:06.0174] > Let view be a view of the DOM that replaces all a, ins, del, and map elements in the document with their contents. Then, in view, for each run of sibling phrasing content nodes uninterrupted by other types of content, in an element that accepts content other than phrasing content as well as phrasing content, let first be the first node of the run, and let last be the last node of the run. For each such run that consists of at least one node that is neither embedded content nor inter-element whitespace, a paragraph exists in the original DOM from immediately before first to immediately after last. (Paragraphs can thus span across a, ins, del, and map elements.) I can't really say that I understand this part very well either. [19:38:38.0116] I tried to look in older documents, but they had the same wording, probably even the same content, so no luck there either. [19:45:00.0590] oof, that is confusing [19:47:49.0782] TIL "paragraph" means more than just `p` [19:50:14.0803] looking at https://html.spec.whatwg.org/multipage/indices.html#elements-3 I would guess that the transparent elements other than those explicitly mentioned do not typically contain paragraphs [19:51:18.0895] most of the ones not mentioned were introduced in the HTML5 era, which likely meant they were defined more strictly [19:52:33.0725] I'm thinking the concept of a paragraph beyond `p` exists in order to handle legacy web [19:54:22.0870] guest: what are you trying to do? [19:55:44.0136] GPHemsley: Just reading through the documents and trying to understand things better. [19:56:01.0561] Can't really understand that part though. I've read it many times, but I just can't. [19:56:20.0301] yeah, it definitely relies heavily on nested definitions [19:56:48.0051] The two parts I mentioned are the ones that I can't really get. [19:57:34.0609] For example, what is a run of phrasing content look like exactly? [19:57:46.0203] * For example, what is a *run of phrasing content* look like exactly? [20:01:44.0332] I think in this case all uses of "run" mean "sequence" [20:03:49.0630] "run" makes it seem like an operation is occurring, but I don't think that is the case [20:05:23.0366] so, to paraphrase, it's saying a paragraph is a sequence of nodes that meet certain criteria [20:08:34.0011] > <@gphemsley:matrix.org> so, to paraphrase, it's saying a paragraph is a sequence of nodes that meet certain criteria Yeah, but what criteria is it? :D [20:13:57.0809] filed https://github.com/whatwg/html/issues/6782 [20:15:33.0888] Much appreciated. [20:16:04.0189] Now, I need to understand the algorithm. :D [20:16:07.0572] yeah [20:16:17.0947] let's see if we can break it down [20:17:52.0575] > Let view be a view of the DOM that replaces all a, ins, del, and map elements in the document with their contents. This part is pretty clear. We also agreed that those are the **only** elements that will be replaced. [20:18:16.0977] so we've established that we're currently in that view [20:18:20.0633] > Then, in view, for each run of sibling phrasing content nodes uninterrupted by other types of content, in an element that accepts content other than phrasing content as well as phrasing content, This part is somewhat long and confusing. [20:18:30.0831] which is basically "pretend these confusing things don't exist" [20:18:37.0318] Yeah, exactly. [20:18:54.0594] so this next sentence is actually saying two things [20:19:26.0359] not only are we in that hand-wavy view, we're also "in an element that accepts content other than phrasing content as well as phrasing content" [20:19:42.0845] I think [20:19:47.0758] > phrasing content as well as phrasing content Does this mean just *flow content*? [20:20:01.0810] I mean, I remember I read something like that. Gimme a moment, please. [20:20:25.0311] well the full phrase is "content other than phrasing content as well as phrasing content" [20:20:39.0489] as in, "phrasing content and non-phrasing content" [20:20:45.0131] i.e. both [20:21:18.0496] How can it be both at the same time? :D [20:21:35.0248] no, not that any given content is both [20:21:52.0264] it's that the both types of contents are allowed [20:22:04.0171] Ah, I see. [20:22:16.0897] oh, this is a neat little visual: https://html.spec.whatwg.org/multipage/dom.html#kinds-of-content [20:23:05.0792] LOL -- I didn't know that chart(?) was interactive. [20:24:05.0272] so, getting back to paragraph, I think it's basically trying to break up an element that can contained mixed content [20:24:25.0759] since an element that contain only phrasing content has more obvious boundaries [20:24:36.0115] * since an element that contains only phrasing content has more obvious boundaries [20:25:40.0551] I guess, namely, the boundaries of the element itself [20:25:57.0987] > for each run of sibling phrasing content nodes uninterrupted by other types of content, in an element that accepts content other than phrasing content as well as phrasing content, [20:26:17.0206] > for each run of sibling phrasing content nodes uninterrupted by other types of content Are these the two sentences you were talking about? > in an element that accepts content other than phrasing content as well as phrasing content [20:26:24.0708] * > for each run of sibling phrasing content nodes uninterrupted by other types of content Are these the two sentences you were talking about? > in an element that accepts content other than phrasing content as well as phrasing content [20:26:29.0034] * > for each run of sibling phrasing content nodes uninterrupted by other types of content Are these the two sentences you were talking about? > in an element that accepts content other than phrasing content as well as phrasing content [20:26:54.0724] so we've eliminated the elements that cross node boundaries, and then we're specifically looking at elements that can contain both phrasing and non-phrasing content [20:27:16.0067] so, then, it is within that context that we are running the algorithm [20:27:53.0048] and the first thing we do is identify "each run of sibling phrasing content nodes uninterrupted by other types of content" [20:28:15.0477] Okay. So, what does that mean? [20:28:51.0440] phrasing content nodes right next to each other [20:29:05.0909] Ah. [20:29:29.0746] [ P P ] NP NP NP [ P ] NP [ P P ] NP [20:29:51.0912] where the brackets indicate a run [20:30:45.0621] "p" means "phrasing content" and "np" means "non-phrasing content" there? [20:30:48.0988] yeah [20:31:02.0841] sorry these letters are so overloaded :) [20:31:04.0441] Okay, I'm getting this. [20:31:09.0825] > <@gphemsley:matrix.org> sorry these letters are so overloaded :) lol [20:31:47.0890] Hmm. [20:31:53.0325] Let me think a little bit. [20:32:20.0058] > For each such run that consists of at least one node that is neither embedded content nor inter-element whitespace, a paragraph exists in the original DOM from immediately before first to immediately after last. [20:32:40.0741] ``` some text node some em node ``` Does this mean [ P P ]? [20:32:48.0831] that's basically just modifying where the brackets are going [20:32:57.0236] * that's basically just modifying where the brackets are going [20:33:01.0970] And ``` some text node atoher text node ``` Mean [ P ]? [20:33:20.0443] I think they're both [ P P ] ? [20:33:20.0846] * And ``` some text node another text node ``` Mean [ P ]? [20:33:36.0847] since P = node [20:33:40.0639] Then what is [ P ] ? [20:34:03.0395] some text node [20:34:41.0845] So, they are separated by a newline character? [20:35:21.0954] well [20:35:33.0249] once you're talking about nodes, you've already abstracted up a level [20:35:43.0454] how you got there is a separate question [20:36:05.0110] I think I'm not clear on what a sequence of phrasing content look like. Maybe the author(s) meant anything that is basically not non-phrasing content? [20:36:21.0226] * I think I'm not clear on what a sequence of phrasing content look like. Maybe the author(s) meant anything that is basically not non-phrasing content? [20:36:32.0464] This sounds stupid, let me be clearer. [20:36:54.0805] * once you're talking about nodes, you've already abstracted up a level [20:37:07.0099] Like, `some text` is a phrasing content, and `some text some other text` is two phrasing content. [20:37:44.0394] * Like, `some text` is a phrasing content, and `some text some other text` is two phrasing contenst, and `some text some other text some different text` is three phrasing contents? [20:37:53.0492] if you're talking about the raw HTML string, yes, I think so [20:37:55.0716] * Like, `some text` is a phrasing content, and `some text some other text` is two phrasing contents, and `some text some other text some different text` is three phrasing contents? [20:38:38.0305] but we're talking about nodes, which means we've already passed that point [20:40:35.0131] https://dom.spec.whatwg.org/#nodes [20:40:58.0716] > run of sibling phrasing content nodes uninterrupted by other types of content Okay, I think I understand this part. [20:43:44.0824] Sorry I'm interrupting you, but I think I'm figuring this out, but I need to quickly ask you this: is `
` an element that *accepts content other than phrasing content as well as phrasing content*? [20:43:52.0237] https://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0Asome%20text%20%3Cem%3Esome%20other%20text%3C%2Fem%3E%20some%20more%20text [20:45:16.0104] I think so, yeah [20:45:28.0850] Hmm. [20:45:35.0529] per the graph, flow content is by definition phrasing and non-phrasing content [20:45:36.0911] I think [20:45:49.0726] I think the author(s) just meant that too. [20:45:58.0253] * I think the author(s) just meant that. [20:46:03.0627] * I think the author(s) just meant that too. [20:46:15.0400] well there's some metadata content that's not flow content... that may be included too [20:46:18.0147] But why not just say *flow content*? [20:46:22.0976] * well there's some metadata content that's not flow content... that may be included too [20:47:28.0068] > <@gphemsley:matrix.org> well there's some metadata content that's not flow content... that may be included too AH, I see what you mean. [20:47:46.0584] maybe for those times when text just shows up randomly where it doesn't belong [20:47:47.0193] idk [20:47:53.0393] So much confusion, I'm gonna be honest with you. :D [20:48:13.0224] yeah, this is definitely more complex than the number of sentences would make it seem [20:48:38.0044] Okay, I understand everything up to that point now. [20:48:58.0306] > let first be the first node of the run, and let last be the last node of the run Can we select those on the first example? [20:49:38.0553] [ P(first) P(last) ] NP NP NP [ P(first,last) ] NP [ P(first) P(last) ] NP [20:49:41.0006] Is *first* `This is the first paragraph in this example.` and *last* `

This is the second.

`? [20:50:12.0563] Oh no, it can't be. [20:50:45.0895] _first_ and _last_ are `This is the first paragraph in this example.`? [20:51:01.0855] `first node some other text last node` [20:51:05.0546] * _first_ and _last_ are `This is the first paragraph in this example.`? [20:51:17.0256] * Is _first_ `This is the first paragraph in this example.` and _last_ `

This is the second.

`? [20:51:20.0761] `first and last node` [20:52:09.0042] I think you are looking at another example. [20:52:13.0979] oh [20:52:18.0918] I'm talking about this one: ```

Example of paragraphs

This is the first paragraph in this example.

This is the second.

``` [20:52:19.0042] you meant an example in the spec [20:52:36.0204] The example in here: https://html.spec.whatwg.org/multipage/dom.html#paragraphs [20:52:44.0194] right, ok [20:52:51.0940] I was following on from our discussion examples [20:53:07.0625] AH, I see. [20:53:55.0780] So, I am thinking the variables *first* and *last* both are `This is the first paragraph in this example.` [20:54:27.0275] H [ P(first) P P(last) ] [ P ] [20:54:55.0501] actually [20:54:56.0868] Ah. [20:55:06.0746] https://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Csection%3E%0A%20%20%3Ch1%3EExample%20of%20paragraphs%3C%2Fh1%3E%0A%20%20This%20is%20the%20%3Cem%3Efirst%3C%2Fem%3E%20paragraph%20in%20this%20example.%0A%20%20%3Cp%3EThis%20is%20the%20second.%3C%2Fp%3E%0A%20%20%3C!--%20This%20is%20not%20a%20paragraph.%20--%3E%0A%3C%2Fsection%3E [20:56:08.0090] P H [ P(first) P P(last) ] [ P ] P C P [20:56:35.0528] > a paragraph exists in the original DOM from immediately before first to immediately after last What about that? [20:57:09.0487] [ P P P ] is the "run" we are talking about. The first P is *first* and the last P is *last*, right? [20:57:24.0568] * P H [ P(first) P P(last) ] [ P(first,last) ] P C P [20:58:01.0916] yeah [20:58:22.0849] so the square brackets are demonstrating the paragraph boundaries [20:58:40.0217] Oh, I understand. [21:00:49.0371] it's unclear to me when the comment gets ignored [21:01:11.0234] Isn't the comment gets ignored in everywhere? [21:01:26.0129] I was doing that the whole time. [21:01:42.0606] I think it gets its own node, but there doesn't seem to be a content model associated with it [21:02:12.0233] it's confusing because inter-element whitespace is called out specifically [21:02:31.0917] What you think is clear. [21:02:51.0947] despite being grouped in with comments here: > Inter-element whitespace, comment nodes, and processing instruction nodes must be ignored when establishing whether an element's contents match the element's content model or not, and must be ignored when following algorithms that define document and element semantics. [21:03:36.0497] I should really re-read that whole page when I'm not sleepy. :D [21:03:49.0024] same [21:03:57.0026] but in any case, I don't think it affects understanding [21:04:03.0575] the bottom line is that it gets ignored [21:05:26.0419] Everything is much clearer now -- thank a lot, GPHemsley! [21:05:40.0587] happy to help (and learn myself) :) [21:05:50.0988] haha [21:09:24.0349] an easter egg in the examples: https://www.youtube.com/watch?v=LYds5xY4INU [21:09:36.0873] Yeah, I know that. :D [21:10:11.0649] Cats are everywhere. :P [21:11:36.0199] it also goes to show how old this section is :) [21:11:45.0716] that video is from 2008 [21:13:01.0368] I didn't know how to read and write at that time. :D [21:14:03.0515] well then [21:14:10.0760] welcome to the web :) [21:14:31.0287] hehe [21:14:53.0588] I guess I'll wander back to the old folks home now [21:15:28.0871] /me gazes wistfully into the middle distance [21:21:03.0579] lol [00:30:20.0340] > <@gphemsley:matrix.org> [ P P ] NP NP NP [ P ] NP [ P P ] NP Is this the P=NP problem I heard so much about? [11:11:05.0039] Jake Archibald: just came across: https://twitter.com/jaffathecake/status/1405437361643790337 [11:11:53.0698] Jake Archibald: seems worth filing some spec issues on? Or is it not acceptable to remove observers if the node is removed from the document for some reason? [11:19:51.0978] annevk it's a GC issue, and I don't think we put that in specs right? Observers can't be removed if the element can be reconnected, so it's down to the engine being smart enough to know that that can't happen [12:46:20.0152] can the spec say that the observer should hold its reference weakly to the elements, though? [12:47:07.0405] (also, I am not prepared for Jake to change his avatar after so long...) [12:47:48.0998] Normally specs are written assuming infinite memory and no observable differences from that. Garbage collection is an optimization in this view of things. [12:48:20.0021] That doesnā€™t really hold any longer with WeakRef and such, but that was the party line for the longest time. [12:50:09.0496] since this kind of thing changes how developers write code it seems like a good thing to spec [12:51:04.0208] Could tests be written for it? [12:51:21.0541] Presumably if we had a way to trigger gc from tests ;) [12:51:30.0366] * Presumably if we had a way to trigger gc from tests ;) [12:51:48.0224] Hmm, I wonder if anyoneā€™s working on that? [12:51:55.0668] how do you test that nothing holds a reference to something you're not allowed to hold a reference to? [12:52:16.0415] test that the WeakRef is empty [12:52:47.0128] this can definitely be tested in browser-specific tests with tools to force GC... would be nice to be able to force GC in WPT [12:53:25.0769] https://jgraham.github.io/browser-test/#the-testutils-object is coming [12:54:45.0135] With the caveat that it canā€™t be 100% guaranteed that GC will happen, but in practice I assume it will be used as if it were guaranteed [12:54:46.0055] Yeah, just need to get that implemented in browsers and we can share this kind of test. I think internal test APIs mostly already have it so it should hopefully just be wiring up existing functionality to the right IDL interface and ensuring it's only exposed behind a flag/pref/etc. [12:55:34.0669] > <@wanderview:matrix.org> can the spec say that the observer should hold its reference weakly to the elements, though? Here's the DOM spec specifying that for mutation observers: https://dom.spec.whatwg.org/#garbage-collection [12:57:33.0792] and hopefully the gc() method means the same thing... I seem to recall some gc() calls that were only incremental and you had to call it multiple times to get a "full" GC [12:58:45.0869] This one will be async since a sync gc() couldnā€™t work reliably with Oilpan [12:59:14.0117] So a single call should do as much garbage collection as can be done. [13:24:02.0234] is there a way to get matrix to show "unread message" dot in the tab favicon? I don't want to enable full up push notifications for matrix, but would like some indication there is something to read in the tab [13:27:03.0239] If you use Firefox it will light up blue 2021-06-18 [23:38:35.0042] Jake Archibald: actually, thinking about it some more I wonder if it's a problem across browsers; I'd be inclined to think that Firefox's cycle collector can handle this; WebKit prolly needs the unobserve though [23:40:44.0027] foolip: I think the exception there is that we have tried to get better at indicating at what keeps what alive, e.g., event listeners keeping XHR alive (though we might have to revisit some of that as for that case in practice the network connection holds it alive iirc) [02:18:51.0239] annevk: foolip [02:19:02.0140] * annevk: foolip can you vouch for me on https://bugs.chromium.org/p/chromium/issues/detail?id=1220041 [02:19:10.0348] They keep closing it wontfix [02:19:59.0760] Surely it's a bug if it happens with `ResizeObserver`/`IntersectionObserver` but not `MutationObserver` and listeners [02:31:35.0518] So I found this issue re SVG thumbnails in Matrix, and it seems like the consensus is to not allow them: https://github.com/matrix-org/matrix-doc/issues/1938 [02:32:41.0280] I do wish we had a content-type that renders SVG but limits it to the capabilities it gets in `` [02:33:11.0796] hm although that doesn't cater for billion lol [02:34:43.0943] I thought the problem was on servers potentially breaking when generating the thumbnail, not clients, but I guess clients only get the full-size image when you ask for it (in Element by clicking on the avatar/logo) [07:45:50.0606] Fetch body streams aren't BYOB, right? 2021-06-19 [06:37:51.0591] if a service worker was written stupidly to never update, is there a way to kill it without telling everyone who ever opened the website to hard refresh [06:38:46.0927] I was reading some old gh threads mentioning this but it didn't look like anything concrete ever came about [07:26:08.0295] > <@devsnek:matrix.org> if a service worker was written stupidly to never update, is there a way to kill it without telling everyone who ever opened the website to hard refresh I don't think it's possible to write a service worker that never updates [07:26:29.0155] Even if you far-future cache it, that's capped to one day [07:26:55.0362] it has been a couple weeks now and my phone, for example, where I can't hit hard refresh, still shows the old site [07:27:21.0718] Are you sure it isn't trying to update, and failing? [07:27:29.0044] rather than not trying to update [07:27:43.0643] šŸ¤·ā€ā™‚ļø [07:27:55.0444] what does update here imply, just trying to re-fetch the worker url? [07:28:31.0080] Jake Archibald: do you still need me to say something on that bug? [07:28:58.0940] devsnek: https://developers.google.com/web/fundamentals/primers/service-workers/lifecycle [07:29:52.0861] foolip: If you feel it's something that can & should be fixed, yeah. The triage guy still seems to think it's behaving correctly [07:30:16.0873] (kinda a bad experience, if I didn't work for the company I'd have given up by now) [07:31:15.0933] Doesn't need to be a lengthy reply, just a nod that it shouldn't be closed "wontfix", which has happened twice already [07:31:31.0286] Jake Archibald: Thatā€™s Aleks of TablesNG and microtask timing game, I think youā€™d get along well in real life :) [07:31:43.0881] * Jake Archibald: Thatā€™s Aleks of TablesNG and microtask timing fame, I think youā€™d get along well in real life :) [07:32:45.0853] foolip: eh maybe. I just feel the reduced cases I created were ignored [07:32:52.0565] jake is this saying if the worker url 404s, it will keep the old one? [07:33:05.0466] devsnek: correct [07:34:07.0457] devsnek: lots of history there if you want to get into it https://github.com/w3c/ServiceWorker/issues/204 [07:35:28.0537] thx jake [07:36:57.0962] foolip: oh, wait, I do know the guy, and yeah we got on. Guess we're just having an off day communication-wise. [07:40:08.0343] Jake Archibald: commented with typos [07:40:23.0599] best kind of comment [07:40:25.0005] Or whatā€™s the word when you omit some words? [07:41:20.0756] Whatever it is, it's what I do in like half of my tweets [07:41:45.0282] Thanks for adding the comment! [07:42:09.0530] I'll create some spec issues for this and file bugs in other browsers on Monday [07:42:29.0593] (even if it's just to match the language currently there for mutation observers) [07:43:47.0846] Kinda surprising that all browsers seem to have the same pattern where listeners and MutationObserver don't leak, whereas IntersectionObserver and ResizeObserver leak. I guess it's because layout is seen as being outside the element. [10:05:08.0408] devsnek, tried having server send a Clear-Site-Data header? [10:06:21.0383] fixing the 404 worked [10:06:52.0650] https://github.com/discordjs/website/blob/main/public/service-worker.js [15:56:32.0179] what happened to the CSS on the webidl spec? [15:56:42.0334] oh, https://www.w3.org/ is giving a 503, I see [15:59:44.0416] yeah it went down about 11 hours, and stayed down for more than 2 hours before coming back [15:59:55.0362] so itā€™s likely to be down again for a while [16:01:02.0470] for the record here, the cause itā€™s an internal W3C problem but instead a problem caused by the hosting service that W3C uses [16:01:34.0311] also, if anyone can review PRs to webidl, it would be good to get a review on https://github.com/heycam/webidl/pull/914, since there's currently a mismatch between the two specs: ecma262's CreateBuiltinFunction now takes more required arguments than webidl provides it, and this PR fixes that 2021-06-20 [10:48:58.0006] I created some spec issues for those leaks: https://github.com/w3c/csswg-drafts/issues/6397 https://github.com/w3c/IntersectionObserver/issues/474 [10:49:39.0842] Also browser issues: https://bugzilla.mozilla.org/show_bug.cgi?id=1717362 https://bugs.webkit.org/show_bug.cgi?id=227194 2021-06-21 [18:23:40.0419] Yoav Weiss: For Mozilla Developer Network docs, can you please confirm that the device client hints that disappeared from the spec after https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-client-hints-06 are deprecated (were removed permanently from the spec and have not been moved elsewhere)? Specifically, Content-DPR, DPR, Viewport-Width, Width [19:37:02.0703] Hamish Willee: It was removed from the ID to be moved to other specs. See https://wicg.github.io/responsive-image-client-hints/ for the current spec for image-related client hints [19:37:28.0867] This is the PR that removed the features: https://github.com/httpwg/http-extensions/pull/775 [21:17:47.0637] @jakea:matrix.org Hey, I looked into the GC issue. Iā€™ll comment on the crbug tomorrow, but I think it turns out to be pretty subtle, and may have also exposed a bug in MutationObserver [21:18:16.0426] timothygu: Thanks very much! Can you confirm the summary of the changes: - Width, Viewport-Width, DPR were deprecated and replaced by same haders with Sec-CH- prefix (e.g. Sec-CH-DPR) - New header Sec-CH-Viewport-Height - Removal of Content-DPR altogether? As a slight aside, one of the examples in the spec appears to omit the SEC- prefix in the Accept-CH - is that OK?: Accept-CH: CH-DPR, CH-Width [21:22:15.0759] @hamishwillee:matrix.org I donā€™t have any info beyond the links I sent, but itā€™s worth going through the PRs to that spec to understand historical changes. Re the example omission, you could file an issue on GitHub for clarification [23:05:43.0373] > <@timothygu:matrix.org> @jakea:matrix.org Hey, I looked into the GC issue. Iā€™ll comment on the crbug tomorrow, but I think it turns out to be pretty subtle, and may have also exposed a bug in MutationObserver Ohh, keen to know more [00:24:58.0689] Hamish Willee: The old header names are indeed deprecated in spec, but the Chromium implementation needs to catch up [00:25:49.0890] Content-DPR was somewhat replaced by https://github.com/whatwg/html/pull/5574 [00:26:01.0270] (but wasn't removed from Chromium AFAIK) [00:26:47.0496] Eric Portis (not in here, for some reason) is editing that spec. I believe PRs and corrections would be appreciated [00:27:09.0073] Thanks @yoa [00:28:47.0379] * Thanks Yoav Weiss - really helpful. I've created an issue for the problem case. I'm thinking this might be a little early to document for MDN, but am checking internally. Either way will link the old docs to the new spec in some way so that we have this information when ready to start. [01:15:30.0163] sideshowbarker: what would be a short term fix for https://github.com/whatwg/encoding/issues/261? [01:33:16.0145] > <@annevk:mozilla.org> sideshowbarker: what would be a short term fix for https://github.com/whatwg/encoding/issues/261? I can add a filter to our script, to cause those messages to be suppressed [01:37:02.0729] sideshowbarker: yeah, I guess I can do that too [01:41:14.0491] > <@annevk:mozilla.org> sideshowbarker: yeah, I guess I can do that too Yeah, maybe give it a try. If it doesn't work for some reason, I can look at it later [01:41:52.0346] sideshowbarker: I added `.*Possible misuse of ā€œaria-labelā€. (If you disagree with this warning, file an issue report or send e-mail to www-validator@w3.org.).*` to .htmlcheckerfilter and it does not appear to work [01:42:41.0019] Ok, I'll take a look at it in a bit [02:06:43.0225] annevk: so yeah it was the parens [02:07:02.0232] since itā€™s a regex, the parens need to be escaped [02:07:23.0056] for the for record, alternately it can just be `.*Possible misuse of ā€œaria-labelā€.*` [02:07:46.0316] that is, it can match on just some portion of the message [02:08:12.0069] itā€™s not strictly necessary to include the whole message [02:11:25.0032] sideshowbarker: thanks, good to know for next time; perhaps we should document that somewhere [02:12:53.0088] I have the general upstream documentation for the feature at https://github.com/validator/validator/wiki/Message-filtering [02:13:09.0295] but that doesnā€™t provide enough detail I guess [02:13:13.0480] it needs some examples [02:13:36.0627] but anyway itā€™s wiki, so anybody can make changes to it [02:33:55.0504] sideshowbarker: how quick is the filtering of warnings? I do get the impression the build times for Encoding are even worse now [02:37:55.0251] I don't think the filtering adds any noticeable time to a build [02:38:47.0509] That Encoding build has just always taken a long time, as far as I can recall [02:54:11.0873] annevk: https://github.com/whatwg/encoding/issues/261 should be closed now [02:54:47.0518] Andreu Botella (he/they): should it? I think we still need to decide how to resolve that warning [02:55:15.0153] /me rereads the log [02:55:17.0199] oh, right [06:39:31.0690] annevk: so as far the performance effects from the filtering of warnings: when I test locally with filtering on, it takes 4m16.409s to check all the Encoding documents ā€” but when when test without the filtering, it takes 9m31.435s [06:40:14.0428] that is, with the filtering on, itā€™s not slower but actually more than twice as fast [06:42:16.0638] well that kind of makes sense to me intuitively, because without the filtering there are literally thousands of warnings getting dumped out ā€”Ā and thereā€™s a system I/O cost to emitting all those, and prior to that, some internal cost to formatting them all for output [06:46:05.0411] yeah agreed, I guess what I'm wondering if what the cost for hitting the warning is, even if the warning ends up getting filtered [06:46:16.0606] because we hit it a lot [06:46:22.0557] yeah [06:48:05.0384] well, given that the accessibility people have said that putting aria-label on td elements is not good for AT users in current AT, it seems like rightly what we should be doing is, not putting aria-label on all those td elements [06:53:28.0392] sideshowbarker: it would be good to know what to do instead though [06:55:09.0014] it seems like one possibility is that there actually isnā€™t anything to do instead [06:55:33.0086] that is, we drop the attributes and donā€™t replace them with anything else [06:56:15.0675] there are some limitations in AT that itā€™s not within our domain knowledge to figure out how to overcome [06:57:35.0017] there are people whose full-time occupation is figuring out how to solve problems like this for paying customers [06:58:52.0476] I seem to recall having Ccā€™ed somebody on that issue, but we didnā€™t get any specific suggestions from them about how to fix it [07:11:38.0684] Wait, what, you're saving 4 minutes just not outputting warnings? Terminals must surely allow output at at least 1-10Mb/s, which suggests like 240Mb-2.4Gb of output, if that was the main bottleneck. [07:12:34.0728] jgraham: we're talking about a lot of non-conforming table cells here, so it wouldn't surprise me [07:12:56.0180] sideshowbarker: there is plenty more info wrt table a11y in this section for the `gridcell` role https://www.w3.org/TR/wai-aria-1.1/#gridcell [07:14:37.0499] depending on the table, `role="rowheader"` and `scope="row"` may be necessary too [07:15:08.0233] government websites are mandated by law to provide AT support nowadays [07:15:24.0060] well, at least there were several laws passed in the US about it [07:17:48.0219] The question is how to convey the type-identifying background color in table such as https://encoding.spec.whatwg.org/windows-1252.html [07:20:42.0070] 240Mb of warnings would be > 3kB of output per BMP character. Not impossible of course, but quite a lot. It's of course also possible that something internally is really slow so the estimate of 1Mb/s of output is high. But it at least feels suspicious when something is _that_ slow. [07:23:08.0226] jgraham: well, but each encoding has a BMP table, plus at least one other table [07:23:37.0503] There might still be something wrong, but there's definitely a lot of output as well [07:24:52.0962] annevk: hmm, you may want to look into `aria-describedby` and move the legend (key) onto the same document https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Gridcell_role#describing_the_position_of_gridcells_when_the_overall_structure_is_unknown [07:27:48.0394] > The `aria-describedby` attributed is not designed to reference descriptions on an external resourceā€”since it is an ID, it must reference an element in the same DOM document. [07:31:17.0738] But that isn't entirely true either right? The headers do provide information about the cell. They just don't convey this other information that's really a property of the contents of the cell. [07:34:51.0807] > The headers do provide information about the cell. [07:35:02.0015] that does not appear to be the case [07:36:42.0753] the headers are simply numbers, but i do see that there `aria-label="Two bytes, contiguous"` on each cell, which was probably done seeing as how the key is on another page and the headers don't provide any descriptive info whatsoever afaik [07:37:43.0163] They are numbers, yes, but in the context of encodings they are highly relevant [07:39:16.0429] oh, okay well it's an interesting problem and that is one of the most funky tables i have ever seen (definition list w/ one item in it per cell) lol [07:42:48.0873] it reminds me a lot of a periodic table of the elements [07:43:42.0280] surely someone has made one of those w/ full a11y support; perhaps that would be a good way to see how it's done [07:52:05.0293] annevk: ohh this one looks promising! it has an `aria-labelledby="sections"` referencing some `id` of an item in the legend http://dylanb.github.io/periodic-aria-roles.html [07:52:49.0885] * annevk: ohh this one looks promising! it has an `aria-labelledby` attribute referencing some `id` of an item in the legend http://dylanb.github.io/periodic-aria-roles.html [07:53:25.0038] DerekNonGeneric: but that doesn't have meaningful row/column headers [07:54:01.0645] i thought that you could not use headers for some reason? [07:54:27.0199] obviously that would be the best way to do it if you can [07:56:19.0781] well, not sure if the numbers in the current header are what you had in mind [08:06:31.0457] wow, til that there is even `headers` attribute that you can use to specify multiple headers in the event that the table is more complex https://www.davidmacd.com/blog/csun/files/complex-tables.html [08:14:09.0318] that table is missing a lot of things, at the very least you should add `scope="row"` to the `th` that are in the `tbody` element (!) [08:20:27.0416] I'm pretty sure that the scope of the headers is correct per the HTML Standard, a bunch of that doesn't have to be explicitly stated [08:40:06.0521] surely the markup is valid, not saying it's not, but w/o specifying the scope as row, i don't think those headers will be describing the data in the row... might also want to check out what the spec says, since it doesn't look like that somehow gets autodetected https://html.spec.whatwg.org/multipage/tables.html#attr-th-scope-row [10:22:55.0590] If you keep reading you'll get to it [10:31:42.0946] is it the part about the `auto` state? > The auto state makes the header cell apply to a set of cells selected based on context. [10:38:13.0835] * is it the part about the `auto` state? > The auto state makes the header cell apply to a set of cells selected based on context. thought that the part in the example that states: > The headers with the explicit scope attributes apply to all the cells in their row group other than the cells in the first column. was only commentary applicable to that example? please send me a šŸ”— to that part if you can šŸ˜… i read so much of it already šŸ„µ [10:40:49.0759] please send a link -- i read it quite thoroughly; šŸ„µ if it was stated, i don't think it was clear [14:21:06.0138] #Ā®ā„¦Ī³ [14:21:27.0840] #jems ? [15:09:43.0261] jgraham: 466MB total, 2,134,130 messages is the output from running the checker on those Encoding files [15:09:58.0784] as unbelievable as that may sound [15:12:59.0069] and thatā€™s basically the same message 2,134,130 times (there are a few other messages it emits that Iā€™m not filtering out locally) [15:14:14.0687] and I think due to the way the code is written, that message string isnā€™t even getting interned [15:17:18.0733] I guess for the general behavior of the checker, interning or not of messages wouldnā€™t make any noticeable performance difference in the normal case. But it seems like it would in this case. [15:51:59.0905] When WebIDL says to get a copy of the bytes held by a buffer source, the actual "getting a copy of the bytes" part is not formalized in terms of the ECMAScript spec operations [15:52:18.0869] and so it's not clear if for `[AllowShared] BufferSource`s, that copy should be raw or atomic [16:06:05.0905] Andreu Botella (he/they): https://github.com/heycam/webidl/pull/987 [16:07:05.0177] I went looking for issues, not PRs šŸ¤¦ [16:15:03.0800] Domenic: So copies and writes are unordered, and WebIDL doesn't provide anything to make them `SeqCst`? [16:45:04.0075] @hamishwillee:matrix.org Just replied to your responsive image client hints questions on GH (thanks for the issues!). Your three-bullet summary of the changes looks accurate. I'll be around here going forward, if you have questions about the spec. 2021-06-22 [17:33:45.0397] > <@etportis:matrix.org> @hamishwillee:matrix.org Just replied to your responsive image client hints questions on GH (thanks for the issues!). Your three-bullet summary of the changes looks accurate. I'll be around here going forward, if you have questions about the spec. Eric Portis (he/him): Thanks very much. I did have one question. In several of the new headers it says: "If the value is zero, it indicates that the image will not be displayed." Is this what you would send in the hint for a request to retrieve an image for download (say)? I'm just trying to work out real cases where you'd hint this. [17:35:06.0008] And at some point "we" should create an update to this wonderful article: https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/client-hints#device_hints [17:44:07.0696] I think I was thinking of non-visual UAs (like screen readers) when I wrote thatā€”which might not make sense because IDK if they even send image requests? Logging off for the day but let me see if I can dig up my thinking... downloads are an interesting case that we should think more about, too. [04:33:26.0646] I just realized that WebRTC is full of XMLHttpRequest-like naming, e.g., RTCDtlsTransport. It also has RTCDTMFSender and that's what https://w3ctag.github.io/design-principles/#casing-rules lists, but that seems to be an exception. [04:47:58.0084] annevk: you may be amused to know that EdgeHTML had `RTCDtmfSender`ā€¦ [04:51:10.0214] foolip: so I'm looking into WebRTC a bit more and how can it be that so many things are not defined at all and different between browsers? [04:51:39.0247] foolip: basic things like the RTCPeerConnection constructor have many subtle differences [04:52:03.0511] Tell me about it, Iā€™ve filed many bugs, many of which were fixed [04:53:29.0934] foolip: not sure if you meant that literally, but e.g., should `{ iceServers: [{urls:[]}] }` throw? [04:53:49.0519] Why is it like this? I dunno, itā€™s a very large API surface. Also it doesnā€™t help that there are relatively few users of WebRTC, so it hasnā€™t been worn into conformance by the broad masses like happens for DOM and such [04:54:01.0102] foolip: where is it defined how the URLs are parsed/processed? [04:54:31.0054] Chrome throws for `stun:stun1.example.net/`, Firefox does not [04:54:33.0298] annevk: many were fixed, yes. It used to be that the constructor without arguments would throw! [04:55:09.0153] I don't necessarily have a problem with that, as long as it's clear :-) [05:06:04.0410] foolip: I filed https://github.com/w3c/webrtc-pc/issues/2660 [05:27:00.0320] > <@annevk:mozilla.org> I don't necessarily have a problem with that, as long as it's clear :-) It was only Chrome that threw, and the spec didn't have any required arguments :) [05:40:19.0538] annevk: Is there any particular reason that you're poking at WebRTC? [05:42:49.0438] foolip: https://github.com/w3c/webrtc-pc/issues/2613 [05:44:25.0313] annevk: I see, makes sense that you're noticing the things about URLs then. [13:59:58.0337] annevk: smaug: I'm eager to get https://github.com/whatwg/html/pull/6714 merged so we can build on top of it (including for the spec update for https://github.com/whatwg/html/issues/2018 ), so here's another ping :). I wasn't clear if you wanted to wait for smaug's signoff or not. [15:06:21.0353] done [15:06:49.0210] one day I'll figure out some good way to do spec reviews [15:18:29.0694] Thank you! <3 2021-06-23 [22:17:26.0284] https://bugzilla.mozilla.org/show_bug.cgi?id=1717760 little find today https://bugzilla.mozilla.org/show_bug.cgi?id=1717760 [22:18:01.0276] initKeyEvent exists in Gecko. [01:26:41.0573] Slight inconsistency with HTMLAllCollection (https://html.spec.whatwg.org/#the-htmlallcollection-interface): The non-normative text lists a subset of elements that can have a name compared to the normative text. "Only button, form, iframe, input, map, meta, object, select, and textarea elements can have a name for the purpose of this method;" vs "The following elements are "all"-named elements: a, button, embed, form, frame, frameset, iframe, img, input, map, meta, object, select, and textarea". [01:27:17.0274] (Guess which I cut & pasted into my code first.) [01:31:13.0054] The normative list is correct, matches Safari and Firefox, and passes the wpt. [01:32:01.0346] * The normative list is correct, matches Safari, Chrome and Firefox, and passes the wpt. [01:32:32.0326] Wanna file an issue or a pr? [01:33:35.0629] Sure. [01:35:37.0334] I'll do a PR in a bit. I'm almost getting the hang of git (we still use svn) :-) [06:25:48.0009] is the source for the whatwg web site open? [06:26:15.0021] in particular, the part about signing the CLA? I know someone trying to setup a CLA signing system and thought it might be instructive to look at some existing source for doing it. [06:33:51.0392] https://github.com/whatwg/whatwg.org ? [06:37:52.0281] wanderview: https://github.com/whatwg/participate.whatwg.org is the sources of the Participant Agreement form https://github.com/whatwg/participant-data is the data [06:38:12.0115] thanks! [10:41:09.0494] emilio: do you have a compat assessment for not supporting as a way to position the legend? (gecko doesn't support it, per html spec, but chromium and webkit do) https://bugs.chromium.org/p/chromium/issues/detail?id=880822#c5 [10:41:51.0689] demo http://software.hixie.ch/utilities/js/live-dom-viewer/saved/9441 [11:43:12.0244] > <@zcorpan_:matrix.org> emilio: do you have a compat assessment for not supporting as a way to position the legend? (gecko doesn't support it, per html spec, but chromium and webkit do) https://bugs.chromium.org/p/chromium/issues/detail?id=880822#c5 I think the reason it works in Webkit / Blink is just an implementation detail. is a pres attr for text-align rather than a special thing [11:43:38.0505] We could implement it that way fairly easily if the spec changes, I don't think there'd be much compat impact [11:54:49.0573] Domenic: If we know two documents have URLs with the same scheme/user/host/port, can we also assume they are same origin? (I know the converse is not true due to window.open() and about:blank documents) [11:56:33.0011] emilio: ok, I mean the opposite though, are there known compat problems for gecko for not supporting text-align as a positioning mechanism? [11:57:13.0803] I couldn't easily find webcompat bugs on text-align in legend, but I'm not the expert on how to search for such things; karlcow might be better [12:03:37.0288] > <@timothygu:matrix.org> Domenic: If we know two documents have URLs with the same scheme/user/host/port, can we also assume they are same origin? (I know the converse is not true due to window.open() and about:blank documents) I think document.open() can change the document's URL/scheme/host/port to a cross-origin URL without changing its origin. [12:03:37.0424] > <@zcorpan_:matrix.org> emilio: ok, I mean the opposite though, are there known compat problems for gecko for not supporting text-align as a positioning mechanism? I don't think I've seen any [12:04:03.0993] also, isn't the origin of a blob url in its pathname, and not scheme/user/host/port? [12:05:11.0686] similarly with about:blank inheriting origin... its not obvious from any components what the origin [12:05:27.0101] * similarly with about:blank inheriting origin... its not obvious from any components what the origin is [12:12:22.0370] Yeah but they are all examples of same origin =/> similar URL [12:12:33.0898] I'm asking about whether similar URL => same origin [12:12:51.0558] Well for blob: URLs they all have blob: scheme, empty string host, null port, but different origins. [12:13:43.0286] Thank you, that makes sense! [12:14:11.0783] And you could make a cross-document iframe, document.open() it from the outside, and then they'd have the same URL but different origins. [12:14:51.0236] (Although the spec for that case is still in flux...) [12:15:20.0294] I didn't think you could document.open a cross-origin documentā€¦ [12:15:37.0706] https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#document-open-steps step 4 [12:15:37.0794] Oh true [15:42:44.0797] Window.innerWidth is defined to be "zero if there is no viewport." https://drafts.csswg.org/cssom-view/#dom-window-innerwidth In what sorts of contexts is there no viewport? [16:46:39.0820] Eric Portis (he/him): e.g. 2021-06-24 [21:53:13.0328] Hi zcorpan and @etportis! Are you actively working on finishing https://github.com/whatwg/html/pull/5574? need any help? [21:53:26.0228] Eric Portis (he/him): ^^ [00:14:39.0136] Eric Portis (he/him): if you grab a handle to iframe.contentWindow and then do iframe.remove(); you'll have a window without viewport (or browsing context) [01:25:47.0853] I did a PR for the HTMLAllDocument tweak, but it's stuck saying I've not signed the participation agreement. My org's in the entities.json file, but unverified as I've not contributed. Is that why the PR's stuck or have I done something wrong? https://github.com/whatwg/html/pull/6802 [01:30:29.0520] Probably someone needs to push a button somewhere [01:30:48.0340] Maybe annevk ? [01:31:35.0627] yeah thereā€™s a manual verification step each time that basically doesnā€™t happen until the contributor submits their first PR [01:32:02.0950] so this all normal and expected, I think [01:32:28.0631] Yeah, when someone gets around to reviewing your first PR they'll take care of that Piers Wombwell [01:33:37.0968] No button unfortunately, we edit JSON directly on main šŸ˜Š [01:47:10.0824] Sorry, got interrupted by a plumber. That makes sense. foolip wrote a wpt that covers most of the 'all-named' elements. Not sure what's best, whether to extend that test or write a new one. Whatever, it'll pass in all browsers as the existing live-dom-viewer test page demonstrates. [01:48:12.0396] Is `document.all` still not done? I thought I was comprehensive last time :) [01:51:18.0965] It's a very helpful test case - saved me loads of time when implementing document.all. But it doesn't cover every named element. [01:51:25.0861] It does the hard job of testing lots of attribute values. [01:52:13.0153] Separately I noticed there's a RtoL control code in the source file immediately before 'Pooja Sanklecha' in the acks list. It doesn't seem to be necessary as the name always renders LtoR. [02:17:51.0839] tabatkins: any news on https://github.com/tabatkins/bikeshed/issues/1667 ? I just wanted to file it again [03:58:38.0809] Noam Rosenthal: I'm not working on it now [09:14:59.0913] Do we already have the concept of an event loop for the "parent process" (i.e. one that operates indpendently of a specific ES global)? [09:20:55.0087] jgraham: "in parallel" [09:21:12.0377] (i.e., "no") [09:21:54.0170] Well, and you can use parallel queues if you want to sequence something ther [09:26:28.0345] Right, so currently WebDriver-BiDi is using "in parallel" to defer some things, but it feels like it would be much easier if we could just reuse the task queue stuff (especially because there's a "wait for one of the following events to happen", which implementation wise is almost certainly `Promise.race` or C++ equivalent). So I was thinking of defining/handwaving a "user-agent event loop" which could then allow reusing the task scheduling. [09:27:00.0872] Obviously for Gecko in particular where we have js in the parent process, this is exactly how things actually work, although other implementations are different. [09:28:51.0756] A parallel queue seems close enough [09:35:08.0082] Yeah, I guess I could just use parallel queues directly, unless we care about the distinction between tasks and microtasks. It *might* be sufficiently unobservable that it doesn't matter, but in practice I"m fairly sure the implementations will actually use promises and therefore microtasks. [09:35:53.0663] I would be surprised if Chromium was going to use promises (and thus V8) in the browser process... [09:36:59.0245] Also, if it's cross-process you have to queue a task anyway to resolve the promise from, at which point there's no distinction [09:41:36.0195] Yeah, I'm not claiming that Chrome is going to use V8 in the browser process. I assume you have a similar construct on the C++ side, but maybe not (also I'm not sure how much of Chrome's implementation is going to be novel vs reusing existing devtools events and whether that makes a difference; there is a prototype that works under node as a CDP client, and one can imagine building something similar inside Blink, but I don't think that's the final implementation strategy). [09:42:19.0726] Anyway, if the general consensus is that I should use a parallel queue as an event loop then I guess I'll do that. [09:44:14.0882] (I guess the whole parallel queue thing is theoretically problematic because it doesn't guarantee scheduling between different queues but in practice I don't think implementations are going to have one thread per queue so actually only one ordering is possible, and something could depend on that unspecified ordering) [09:45:45.0889] chromium does not really have c++ promises like gecko does [10:23:09.0321] annevk: can I get a rubber-stamp review (or in-depth review) for https://github.com/web-platform-tests/wpt/pull/28480 ? Nate did a review but doesn't have reviewer permissions [10:50:57.0373] Nate should probably ask for access in #wpt:matrix.org [11:46:51.0206] Ah, that's where that room went... there's no pointer in the WPT docs or the IRC channel. [12:54:43.0502] Domenic: https://github.com/web-platform-tests/wpt/pull/29484 [16:53:31.0130] Piers Wombwell: if you're implementing document.all, beware of https://github.com/whatwg/html/issues/4098. It's the final deviation of existing browsers from the spec (though thankfully current browsers seem to all do the same thing) [16:54:13.0745] * Piers Wombwell: if you're implementing document.all, beware of https://github.com/whatwg/html/issues/4098. It's the last remaining deviation of existing browsers from the spec (though thankfully current browsers seem to all do the same thing) 2021-06-25 [17:00:19.0948] Yeah, thanks. Iā€™d spotted it. My current implementation has no caching anywhere so passes that subtest (but is painfully slow). Iā€™m not sure I particularly care until it shows up in a profile. Itā€™s correct and, apart from that subtest, matches the spec and other browsersā€™ behaviour. [17:01:34.0579] I hadnā€™t considered caching the query, before I saw that issue. So itā€™s another optimisation to do one day (if it shows up). [17:05:55.0820] Piers Wombwell: also, for the participation agreement, you'll likely have to make your membership in the ekioh GitHub organization public, for the checker to realize you're associated with that entity. You could do so in https://github.com/orgs/ekioh/people. [17:09:05.0785] Ah yes, thanks. Should be okay now. [20:32:13.0023] Hi Yoav Weiss: Chrome 89 added support for User Agent Client hints - see https://www.chromestatus.com/feature/5995832180473856 . This appears to omit `Sec-CH-UA-Bitness` based on quick scan and fact it is not in the demo. Is that correct, and if so, is it planned? [20:32:51.0268] PS @Y [20:33:47.0307] * PS https://github.com/mdn/browser-compat-data/pull/11235 is where this is being added to MDN browser compatibility. [23:03:11.0209] Bitness is being added in M93, IIRC [23:03:18.0873] lemme dig up the intent [23:03:50.0220] https://groups.google.com/a/chromium.org/g/blink-dev/c/dafizBGwWMw/m/72l-1zm6AAAJ?utm_medium=email&utm_source=footer [23:04:04.0582] ^^ Hamish Willee [23:05:04.0959] miketayl_r: FYI [02:48:53.0791] There'll be some familiar Web faces lurking around this Matrix room šŸ˜œ [03:06:04.0322] Howdy Sora Morimoto [03:09:48.0407] Hi sideshowbarker, I found out from your profile, are you in Tokyo now? I came back to Tokyo recently as well... [03:12:40.0902] > <@smorimoto:matrix.org> Hi sideshowbarker, I found out from your profile, are you in Tokyo now? I came back to Tokyo recently as well... Yup, living in Nakano-ku [03:15:07.0605] It's always great to see someone like you in Japan who is way too cool! Let's meet if we have a chance šŸ™‚ [03:20:09.0539] > <@smorimoto:matrix.org> It's always great to see someone like you in Japan who is way too cool! Let's meet if we have a chance šŸ™‚ Definitely would be great to meet up some time [03:20:33.0983] šŸ™‚ [04:14:44.0416] What should our rate be for adding an article with a link to a gambling site to dom.s.w.o? [04:26:10.0926] Ms2ger: I think it's 5-6 million these days [04:54:39.0700] Oh I see, I got this email as well [05:28:03.0787] timothygu: you online? I added the additional tests to https://github.com/web-platform-tests/wpt/pull/27720. Okay to land? [05:41:26.0918] @annevk:mozilla.org LGTM! [10:58:19.0423] Getting really close on eliminating source browsing context... https://github.com/whatwg/html/issues/1130#issuecomment-803076927 2021-06-26 [08:02:40.0075] Shouldn't media element's playbackRate change the duration accordingly? [08:03:42.0519] (Like a 10mins video when played at 2x the timeline should show as 5mins instead of 10mins) 2021-06-27 2021-06-28 [23:50:02.0206] Why? [01:17:45.0063] hsivonen: any reason on your side not to merge https://github.com/html5lib/html5lib-tests/pull/136 ? [05:39:30.0564] 1. See a line in the HTML spec you feel unsure about 2. Do a bunch of thinking & testing to conclude that the spec is wrong in Case X 3. Go to add a note to the spec, and find an HTML comment saying "btw this doesn't work with Case X" [06:50:40.0183] Yeah, some HTML comments in the spec should definitely be visible... [06:55:13.0038] But there's no more todo's in the spec, Hixie fixed them all for Last Call [07:19:07.0087] hah [09:41:28.0686] sideshowbarker: I reorganized and updated https://wiki.whatwg.org/wiki/Fork_tracking in case it helps with the efforts to clean things up on the W3C side [09:55:57.0524] thanks! [12:41:48.0382] Is there a set process to follow for new web platform proposals? From what I have gathered through looking at other relatively new specs, something like this? 1. Create an explainer/proposal stating the problem, prior art, possible solutions 2. Gather implementer and user interest (just open issues on crbug, mozilla/standards-positions, webkit mailing list?) 3. Gather and incorporate feedback into proposal 4. Write proper spec 5. Implement in engines 6. Ship [13:19:40.0214] Trying to make HTML a tiny bit less painful to contribute to: https://github.com/whatwg/html/pull/6810 [13:21:00.0161] > <@lucacasonato:matrix.org> Is there a set process to follow for new web platform proposals? From what I have gathered through looking at other relatively new specs, something like this? > > 1. Create an explainer/proposal stating the problem, prior art, possible solutions > 2. Gather implementer and user interest (just open issues on crbug, mozilla/standards-positions, webkit mailing list?) > 3. Gather and incorporate feedback into proposal > 4. Write proper spec > 5. Implement in engines > 6. Ship This is about right. See also https://whatwg.org/faq#adding-new-features . Step 2 is very tricky and I'm not sure the specific venues you suggest will work that great. Step 4 and 5 often take place in parallel and step 3 happens continuously of course. [13:23:44.0616] https://www.chromium.org/blink/launching-features "new feature incubations" section gives some insight into how we expect Chromium engineers to do such work [13:37:21.0248] Domenic: Thanks, that's very useful info. So according to that, now that I have an explainer with motivation and use cases, I go find a standards venue to incubate the proposal? I guess that would be WICG? Or is there a WHATWG version of WICG? [13:47:27.0764] Yeah, WICG is good in general. If it's a modification to or natural extension of an existing spec (e.g. a WHATWG spec) then opening an issue on that spec to involve that community would be ideal. [13:48:32.0688] Cool - I'll look into WICG then. Thanks again! [13:53:36.0405] Luca Casonato: If you're talking about https://github.com/lucacasonato/proposal-binary-encoding, that's probably small enough that a PR to the HTML standard would do [13:53:57.0894] Though you should look at https://github.com/bakkot/proposal-arraybuffer-base64, which was opened a couple days ago [13:54:07.0776] * Though you should look at https://github.com/bakkot/proposal-arraybuffer-base64, which was created a couple days ago [13:54:44.0832] Oh interesting! Thanks for the link :-) 2021-06-29 [05:44:47.0291] Domenic: would be good to have you take a look at https://github.com/tabatkins/bikeshed/pull/2094 when you have time [05:45:55.0136] basically, for domintro sections, it causes Bikeshed to output `-dev`-suffixed IDs in the same way as we do for the HTML spec [05:49:47.0444] however, unlike what we do for the HTML spec ā€” which relies on hardcoding `subdfn` attributes (and which we anyway added for a different purpose, for preserving link targets in the developer version) ā€” that Bikeshed patch doesnā€™t require any new markup in the spec source; instead it does it solely based on the presence of a `class=domintro` ancestor [05:53:06.0267] if it were to turn out that doing it solely based on the presence of a `class=domintro` ancestor doesnā€™t actually ensure stable `-dev` IDs for the stuff we want, then I guess we would need to add some hardcoded attributes in the spec sources ā€” but from testing Iā€™ve done thus far, it seems like itā€™s not in fact going to be necessary to change the spec sources at all [06:41:33.0901] Hm, wiki.whatwg.org still links to IRC if you're not logged in [08:00:05.0179] > <@ms2ger:igalia.com> Hm, wiki.whatwg.org still links to IRC if you're not logged in Oh, interesting, I probably messed up the caching config. Thank you for finding that. [08:05:00.0813] > <@sideshowbarker:mozilla.org> basically, for domintro sections, it causes Bikeshed to output `-dev`-suffixed IDs in the same way as we do for the HTML spec This seems really cool and elegant! [08:05:44.0961] weā€™ll see what tabatkins thinks of it [08:05:47.0448] > <@domenicdenicola:matrix.org> Oh, interesting, I probably messed up the caching config. Thank you for finding that. Cannot reproduce across a couple computers... [08:49:14.0725] Oh, that message, I thought you meant the sidebar or homepage links [08:52:28.0638] I fixed https://wiki.whatwg.org/wiki/MediaWiki:Anonnotice but now I think there's some caching issue... [08:54:47.0883] `?action=purge` fixes it, thanks [09:32:23.0497] does anyone know how the TextEncoder interface came to be so... java-y, instead of just like `TextEncoder.encode('string')`? I think that every single time I have ever constructed a TextEncoder or TextDecoder it has been to invoke a single method on the new instance and then discard i [09:32:30.0793] * does anyone know how the TextEncoder interface came to be so... java-y, instead of just like `TextEncoder.encode('string')`? I think that every single time I have ever constructed a TextEncoder or TextDecoder it has been to invoke a single method on the new instance and then discard it [09:37:14.0972] bakkot I assume to mirror the decoder interface which is stateful because it is capable of streaming? It would be nice to have a static method on `TextEncoder` / `TextDecoder` for single use encoding... [10:58:20.0662] bleh. the stream transformer usage is fundamentally pretty different, it seems a shame they were conflated in TextEncoder [10:58:21.0507] ah well [12:33:26.0480] +1 to a static method. A bit dangerous people will use a sequence of static method calls when they should use the stateful instance, but probably worth it on the balance. [12:38:29.0713] I'll open a spec issue [12:49:18.0240] https://github.com/whatwg/encoding/issues/267 [15:26:04.0141] > <@domenicdenicola:matrix.org> +1 to a static method. A bit dangerous people will use a sequence of static method calls when they should use the stateful instance, but probably worth it on the balance. is the instance actually stateful in any way other than holding onto its options bag? [15:26:35.0594] Yes it can hold half of a surrogate pair [15:27:20.0554] > <@domenicdenicola:matrix.org> Yes it can hold half of a surrogate pair No, `TextEncoder` doesn't have a streaming mode [15:27:35.0412] `TextDecoder` does keep the decoder state in streaming mode though [15:28:03.0688] That's `TextDecoderStream`, right? [15:28:08.0272] not actually `TextDecoder` itself? [15:28:13.0724] TextDecoder itself [15:28:43.0644] See the stream option on .decode [15:29:14.0783] The danger is people will think because it's safe with TextEncoder, it's safe with TextDecoder. Or they will just always use the static method with TextDecoder for one-shots (where it's OK) but then carry over that experience to use it for chunks of a larger byte stream (where it's not) [15:29:19.0801] oh, right, I forgot the decoder is not the same as the encoder here [15:30:00.0104] i.e. `let str = ""; while (hasBytes()) { str += TextDecoder.decode(getBytes()); }` is very bad. [15:30:05.0326] ```js const decoder = new TextDecoder(); console.log(decoder.decode(new Uint8Array([0xC3]), {stream: true})); // "" console.log(decoder.decode(new Uint8Array([0xA1]))); // "Ć”" ``` [15:30:19.0602] > <@domenicdenicola:matrix.org> The danger is people will think because it's safe with TextEncoder, it's safe with TextDecoder. Or they will just always use the static method with TextDecoder for one-shots (where it's OK) but then carry over that experience to use it for chunks of a larger byte stream (where it's not) Feel like we already have this though as stream: true is not the default. [15:30:27.0355] Yeah fair point [15:30:50.0502] People should just use the whatwg stream variant anyway šŸ™ƒ [15:31:39.0265] (Cough cough Firefox) [15:35:04.0418] manually feeding items to a stream is a bit annoying IIRC [15:35:23.0578] but yeah does seem like using a stream for that case seems better than having a `stream` option [15:37:17.0770] > <@bakkot:matrix.org> manually feeding items to a stream is a bit annoying IIRC TextDecoderStream is a TransformStream style API with a readable and writable, so should be as easy as `writable.write(chunk)` [15:38:52.0866] Or if you already have a ReadableStream (for example a fetch response body or Blob) you can just call .pipeThrough on it šŸ™‚ [15:39:27.0882] ```js > (new TextDecoderStream).write undefined ``` hmmmm nope [15:39:42.0060] well, right, if you have streams already gluing them together is pretty easy, but I rarely do [15:39:57.0276] new TextDecoderStream().writable.write [15:40:20.0741] ```js > new TextDecoderStream().writable.write undefined ``` [15:40:40.0736] ```js new TextDecoderStream().getWriter().write("something") ``` [15:41:32.0525] > <@andreubotella:mozilla.org> ```js > new TextDecoderStream().getWriter().write("something") > ``` Oh right. Would it make sense to have a utility method that locks, writes, unlocks? [15:41:58.0428] * ```js new TextDecoderStream().writable.getWriter().write("something") ``` [16:32:22.0191] Domenic: is ObservableArray being used anywhere? I thought I remembered some usages in Typed OM but I can't find it there or in Chromium [16:33:44.0179] timothygu: still being implemented, but in spec the usage is intended as https://github.com/WICG/construct-stylesheets/pull/117 [16:34:04.0927] > <@lucacasonato:matrix.org> Oh right. Would it make sense to have a utility method that locks, writes, unlocks? Probably. https://github.com/whatwg/streams/issues/1072 [16:59:02.0934] I think `writable.write("something")` is okay, but generally I prefer the (also not specified) syntax `ReadableStream.from(["something"]).pipeTo(writable)` because it also closes the stream for you. 2021-06-30 [02:46:32.0062] > <@ricea:matrix.org> I think `writable.write("something")` is okay, but generally I prefer the (also not specified) syntax `ReadableStream.from(["something"]).pipeTo(writable)` because it also closes the stream for you. Wait thatā€™s a thing? Is this implemented anywhere? [03:17:54.0227] ah https://github.com/whatwg/streams/pull/1083