hallo every body
[00:14:51.0336]
Hello, all.
I just noticed a small typo in a section's id in the DOM specs and am not sure what's the best action (since this is used as link, maybe in many places). The section is https://dom.spec.whatwg.org/#action-versus-occurance I guess fixing it is not worth the trouble of potentially breaking existing links? (The readable text is fine)
[00:16:31.0818]
Howdy Kaiido: it’s possible to add a new ID while preserving the existing ID
[00:17:38.0519]
Usually ID's are autogenerated from the heading text, at least in Bikeshed, and if this one isn't, it might be because the typo was fixed in the heading but the ID had to stay the same to avoid breaking links
[00:17:51.0798]
* Usually ID's are autogenerated from the heading text, at least in Bikeshed, and if this one isn't, it might be because the typo was fixed in the heading but the ID had to stay the same to avoid breaking links
[00:18:13.0349]
that particular ID is hardcoded in the source, for some reason
[00:18:25.0821]
I also see British "initialisation" in the ID with American "initialization" in the dfn text sometimes
[00:19:19.0612]
> <@abotella:igalia.com> I also see British "initialisation" in the ID with American "initialization" in the dfn text sometimes
you see that in any WHATWG specs?
[00:19:34.0019]
Yes I would also have thought https://dom.spec.whatwg.org/#action-versus-occurence would be working but it doesn't.
[00:20:09.0239]
yeah that’s because of it being hardcoded — that overrides the Bikeshed auto-generation
[00:20:47.0798]
but the existing `id=action-versus-occurance` could be moved to a `span` child of that `h3`
[00:21:17.0830]
…and then the Bikeshed auto-generation of the ID on the `h3` will work as expected, and the existing ID will work too
[00:21:25.0334]
> <@sideshowbarker:mozilla.org> you see that in any WHATWG specs?
https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timer-initialisation-steps
[00:21:29.0242]
…I think
[00:21:40.0338]
pretty sure I have actually done that before, in some cases
[00:22:54.0457]
> <@abotella:igalia.com> https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timer-initialisation-steps
ah… I blame Hixie :) that must have been in there for a long time
[00:24:48.0805]
https://ian.hixie.ch/bible/english
[00:26:11.0084]
but I think Hixie always had the spec as `lang=en-US-hixie` so that _“initialisation”_ would have always been a bug anyway
[04:21:13.0628]
When adding spec data to JS objects, I've seen some people use internal slots, whereas others just say "SomeObject has a thing". Is there a 'right' way?
[04:21:38.0558]
I usually just do the latter
[05:24:32.0495]
Also, if a callback is put in an internal slot, does it impact the `this` value in the callback when it's called?
[05:44:46.0926]
I prefer the latter, and am somewhat responsible for introducing the former
[05:45:34.0070]
Is a callback a Web IDL callback, or an algorithm? Web IDL callbacks need to be called with specific thisArgs via https://webidl.spec.whatwg.org/#invoke-a-callback-function
[07:42:37.0177]
It's a WebIDL callback. Ok, I'll move the shared element transition spec away from internal slots
[07:42:41.0671]
ts!
[08:30:34.0210]
* ta!
2022-08-02
[07:23:42.0119]
hmm, I'm having trouble to find which spec defines these days that https: pages can use only wss:, not ws:
[07:35:32.0903]
oh, hm, is it now part of 'Mixed Content'
[13:24:13.0532]
does anyone know who officially speaks for Mozilla on decisions like https://github.com/WICG/uuid/issues/23 now? I would like to revisit it given the most recent comment in that thread but I understand annevk left.
[16:25:12.0389]
bakkot: maybe arai would either be the person or might know who that would be nowadays (might even be yulia afaik)
[16:29:47.0192]
bakkot: maybe @-mention `martinthomson` (his GitHub user ID) in a https://github.com/WICG/uuid/issues/23 comment
2022-08-03
[00:40:38.0894]
annevk: emilio: Is there anyone at WebKit & Mozilla who'd be interested in joining a sync about shared element transitions? Particularly interested in implementor feedback
[05:54:18.0877]
> <@jakea:matrix.org> annevk: emilio: Is there anyone at WebKit & Mozilla who'd be interested in joining a sync about shared element transitions? Particularly interested in implementor feedback
Depending on timing I might be able to join, or I can ask around.
[06:52:04.0909]
emilio: we'll look to time it so you can join 😀
[06:53:33.0907]
Jake Archibald: Are you looking for feedback in some area in particular? Just in case I need to check with the graphics folks and so on :)
[06:58:34.0802]
emilio: I want to make sure the feature isn't designed "for Chromium". As in, are there changes that could be made to make it easier to implement in Gecko (without compromising developer experience)? Are there parts of the design that you feel currently compromise developer experience due to an implementation detail unique to Chromium. But also I'd just like a general review of the feature from someone familiar with the platform.
[10:10:45.0828]
👍️
[10:11:50.0440]
Rhonnell Hari:
2022-08-04
[00:04:12.0735]
I think I've asked this before, but when do we use `abort these steps` vs `return`? I tend to use `abort these steps` where returning a value wouldn't make sense, eg in a queued task, or in parallel. Is that… right?
[05:59:41.0975]
That's right!
2022-08-06
[18:34:31.0786]
https://stackoverflow.com/questions/73254813/javascript-using-fetch-api-to-send-same-origin-get-request-with-non-null-origin
I think the answer is No, there’s no way to cause an Origin header to be added to a same-origin GET request. Right?
2022-08-07
[06:02:39.0377]
Right, it's a forbidden header, so it's ignored from the Headers JS constructor https://fetch.spec.whatwg.org/#forbidden-header-name
2022-08-08
[02:19:55.0184]
sideshowbarker: `Origin` will be added to same-origin CORS requests
[02:24:11.0753]
* sideshowbarker: `Origin` will be added to same-origin CORS requests - no, I'm wrong
[02:28:06.0450]
Same-origin CORS requests have their response tainting set to "`basic`", so they don't get an origin header
[02:30:50.0087]
For non-GET requests we do need to set the header though, the current spec is not web compatible https://github.com/whatwg/fetch/issues/1022
[04:04:58.0405]
emilio: https://stackoverflow.com/questions/73275184/enable-shared-array-buffer-in-cross-domain any clues?
[04:57:41.0228]
Not off the top of my head
[05:05:07.0147]
Yeah I took a quick look at the Gecko sources in the hope it might be easy to see what conditions would lead to that error message being emitted, but that quick look was enough to see that a much longer look would be needed to figure it out..
[06:04:12.0699]
Doesn't he also need `allow="cross-origin-isolated"` on the iframe?
[07:53:13.0406]
Hello again whatwg
[07:55:44.0832]
\o
[10:23:17.0434]
is there no property on KeyboardEvent that matches cmd on macs and ctrl on everything else
[10:23:33.0973]
i really do not want to do os detection lol
2022-08-09
[18:25:03.0425]
bakkot: Does your Matrix logger work by way of a bot on the channel that parses incoming messages?
Or does it instead parse the https://view.matrix.org/ logs/format?
[18:57:22.0887]
Could anyone explain me what kind of difference between top-level browsing context and auxiliary browsing context?
[19:46:16.0730]
Maxim Vaarwel: An auxiliary BC is a type of top-level BC. In particular it's one that was created via window.open() or target="_blank" or similar, i.e. there is an opener/openee relationship.
[20:16:00.0162]
sideshowbarker: it hits the "get messages" API, which does not require the bot to be in the channel
[20:16:01.0338]
https://spec.matrix.org/latest/client-server-api/#get_matrixclientv3roomsroomidmessages
[20:16:18.0172]
https://github.com/bakkot/matrix-archive-bot/blob/b9b96934f9af87127e8734f37b4d0f988550316b/run.mjs#L257
[20:17:10.0516]
(I should say, does not require the bot to be in the channel as long as the room history is set to be viewable to everyone, not just joined members.)
[20:39:43.0185]
bakkot: excellent ー thanks much
[04:21:58.0292]
Hello ! I have a question
[04:22:00.0734]
I set up flask_cors on the server side, but still when I set up my extension to send POST request, this occurs
[04:26:05.0619]
I have provided some additional images, I'm stuck at this for like a day, and I can't figure out why
[04:58:25.0111]
Your options request should return an 200 OK status, not a 401
[05:00:45.0733]
CORS preflight (OPTIONS) requests must return a 200 or 204 status code to be considered successful
[06:05:43.0908]
Yeah, but how can I resolve the issue? it returns 401, because it needs an authorization header
[06:06:53.0866]
the preflight sends a request to see if they accept authorization as a header first with method : POST , before sending the actual POST request. Please correct me if I'm wrong but that's what I have understood
[06:14:44.0787]
You should not perform access control handling on the options request. The response to the options request should just indicate if the server is willing to process the real request at all, not if the real request will succeed or fail
[06:15:21.0151]
I have handled it, thanks to your answer. I have reread your answer and understood what I should do
[06:15:44.0398]
I have added an ( if not request.method == 'OPTIONS' ) and it worked
[06:16:23.0904]
Thank you again!
[08:43:38.0008]
MikeSmith: didn't you have a page listing all the specs?
[08:46:14.0720]
https://platform.html5.org? Seems down from here, though
[08:47:02.0419]
smaug: ^
[08:47:55.0040]
it was possibly page like that (though, then one I used actually loaded 🙂 )
[08:48:29.0302]
I was just looking at some helper page for someone not so familiar with various specs.
[11:58:51.0483]
E
2022-08-10
[02:23:53.0142]
> <@smaug:mozilla.org> I was just looking at some helper page for someone not so familiar with various specs.
https://w3c.github.io/mdn-spec-links/ is the closest thing I have this point — as far as what’s up-to-date and actively maintained
…however that page doesn’t currently/yet have links to the specs themselves — but I can add that
Unlike https://platform.html5.org/ it doesn’t organize the specs into any category groupings — and I really have no plans to ever make it do that.
But the nature of it is, it represents the set of specs that we actually have some documentation for in MDN. So it’s fairly complete as far as representing what specs constitute the feature set for the web platform.
[02:25:18.0606]
I was indeed looking for some page which has links to the specs
[02:25:59.0757]
well I can add links to that page, if you think the page with those links added would be useful for what you had in mind
[02:30:16.0004]
sideshowbarker: or would it be possible to get https://platform.html5.org/ back 🙂
[02:30:47.0402]
I think that is the page which had rather nice simple UI
[02:30:58.0640]
https://platform.html5.org/ is working for me
[02:31:13.0282]
it just has not been updated in literally years
[02:32:06.0622]
Not loading here.
[02:33:43.0358]
ah yeah I guess it was loading from cache for me
[02:36:25.0503]
OK, some Dreamhost issue. I forget now how we have that set up but I think the DNS is through Dreamhost with a CNAME or whatever, and the actual content is served from where all the whatwg.org content is served from
[02:38:10.0964]
The idea is roughly to show some part of the problem space for someone who is coming outside the web platform world. Having a list of specs may give a relatively good hint how vastly different APIs and features we're dealing with.
[02:38:23.0157]
OK
[02:43:24.0277]
it will take me a while to figure out why https://platform.html5.org/ isn’t responding — but in the meantime I can at least get the spec URLs added to https://w3c.github.io/mdn-spec-links/
that I think I can do right now
[03:24:08.0785]
smaug: https://w3c.github.io/mdn-spec-links/ now has all the spec URLs
That’s the best I can do for now.
Eventually I may be able to replicate https://platform.html5.org/ by writing something that creates an alternative view with them grouped into categories. But that will take quite a lot more time than just adding the spec URLs did.
Anyway, it seems like this list does meet the needs of giving a hint about the vastly different APIs and features we're dealing with. It’s close to 300 specs now…
[03:24:42.0912]
that is good, thanks
[03:31:33.0742]
hmm I just thought of one other piece of data I could add that might be useful: I can add a number indicating the how many times MDN articles reference each spec.
So, for example, it’ll show that the Accelerometer spec is referenced by 10 MDN articles whereas the HTML spec is referenced by 1087
[03:45:04.0246]
OK https://w3c.github.io/mdn-spec-links/ now shows the MDN-article counts
That seems useful for getting a quick sense of the relative importance of each spec.
[03:46:54.0431]
…though it’s a bit surprising to see that WebXR has 109 MDN articles — and even more surprising to see that WebCodecs has 100 MDN articles…
[03:48:30.0284]
lord, I wonder who wrote all those WebCodecs articles… that’s pretty epic
[03:49:19.0010]
none of that implemented outside of Blink yet, I don’t think
[03:53:48.0131]
well, I guess that’s an indication that using the count of MDN articles to evaluate the relative importance of a particular spec needs to be tempered by an understanding that part of the way things get into MDN based is based on organizations funding somebody to write up the articles (which can be based on that organization’s particular priorities and not necessarily on how important the feature is to the platform…)
[04:41:32.0065]
Domenic: do you know who from Google side knows about spellchecking in Chrome (at least Chrome/linux)?
[04:41:48.0451]
* Domenic: do you know who from Google side knows about spellchecking in Chrome (at least Chrome/linux)?
[04:59:17.0947]
smaug: no, sorry!
2022-08-12
[02:09:09.0254]
MikeSmith: how does one propose a tpac breakout session?
[03:17:26.0155]
> <@zcorpan_:matrix.org> MikeSmith: how does one propose a tpac breakout session?
Per https://www.w3.org/2022/09/TPAC/#schedule I guess on August 16 some mechanism will be flipped on to allow proposals to be submitted
[03:18:42.0811]
sideshowbarker: oooh, I misread it as saying Aug 16 was the deadline
[04:04:00.0777]
hey folks, question about the workers spec
[04:04:45.0438]
in https://html.spec.whatwg.org/multipage/workers.html#worker-processing-model we have the following line in step 14:
`In both cases, to perform the fetch given request, perform the following steps if the is top-level flag is set:`
[04:05:02.0625]
for the definition of is top-level we have the following https://html.spec.whatwg.org/multipage/webappapis.html#fetching-scripts-is-top-level
[04:05:29.0689]
reading through this, it seems like `is top-level` only applies to modules, but not to classic scripts imported via `importScripts`. Is that correct or am i missing something here?
[04:05:54.0407]
In other words, for an importScript, we should run the steps in instruction 14, as the `is top-level` bit will not be set
[04:06:28.0789]
* In other words, for an importScript, we should run the steps in instruction 14, as the `is top-level` bit will not be set
[04:07:05.0143]
but, the only excluded form of loading that is explicitly called out is dynamic import
[04:10:50.0373]
probably a question for Domenic or possible annevk ?
[04:14:38.0143]
* but, the only excluded form of loading that is explicitly called out is dynamic import. In addition, the steps in 14 are doing various initialization steps on the worker global. I wouldn't expect those to be repeated when we import something into the global.
[04:15:16.0450]
* but, the only excluded form of loading that is explicitly called out is dynamic import. In addition, the steps in 14 are doing various initialization steps on the worker global. I wouldn't expect those to be repeated when we import something into the global. It also looks like those are really meant to be initialized with the agent cluster based on the note.
[05:56:39.0168]
Happy to try to answer via issue filed on whatwg/html on Monday! It's Friday night over in Japan :)
[06:02:22.0465]
sounds good
2022-08-15
[17:53:00.0046]
I need a help. I asked a question on the github whatwg. Domenic adviced to me re-ask it here. So text of my question [here](https://github.com/whatwg/html/issues/8195)
By the way Domenic could you give an answer, if you ain't busy?
[17:53:16.0226]
I'm pretty busy, sorry!
[19:16:20.0080]
Looking at https://github.com/mdn/content/issues/19551
OP questions this statement:
> A string indicating how much of a service worker's resources will be updated when a call is made to [`ServiceWorkerRegistration.updateViaCache`](https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/updateViaCache)
Maybe that’s actually correct as-is?
[01:22:23.0185]
About moving XMLSerializer into HTML, I notice we don’t even have an open issue for in it the HTML issue tracker.
So I guess it’s not likely to happen any time soon, and we’ll continue to have https://w3c.github.io/DOM-Parsing/ hanging around…
[01:22:47.0782]
* About moving XMLSerializer into HTML, I notice we don’t even have an open issue for in it the HTML issue tracker.
So I guess it’s not likely to happen any time soon, and we’ll continue to have https://w3c.github.io/DOM-Parsing/ hanging around…
[04:11:27.0895]
It's just a lot of work, yeah, until someone steps up...
[04:12:03.0097]
Mostly modernizing and rigorizing the algorithms, checking that test coverage is reasonable
2022-08-16
[00:18:27.0426]
Do browsers do anything with `Digest` headers?
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Digest
[00:18:49.0740]
* Do browsers do anything with `Digest` headers?
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Digest
[00:45:39.0862]
sideshowbarker: I'm pretty sure they don't; there was some discussion about maybe using them when integrity metadata got designed, but I don't think that went anywhere
[00:47:34.0136]
> <@annevk:matrix.org> sideshowbarker: I'm pretty sure they don't; there was some discussion about maybe using them when integrity metadata got designed, but I don't think that went anywhere
Yeah I just now did some grepping through engine source code for `Want-Digest` and `Digest` and found nothing (the string `Digest` in some other contexts, but not as an HTTP header/field of its own)
[00:55:47.0039]
PSA: #w3.org:matrix.org is a Matrix “Space” I’ve set up that contains 60+ rooms — most of them bridged to the corresponding irc.w3.org existing IRC channels. Feel free to join the space and any of the rooms, and if you run into any problems, let me know
[12:34:23.0583]
https://www.youtube.com/watch?v=Ei0dR8yHC0w
2022-08-18
[18:34:45.0264]
Does anyone have good writeups on why "you should use URL/URIs as your API's unique ID format" turned out poorly and has mostly been abandoned? Maybe hsivonen?
[19:13:27.0435]
zcorpan: FYI https://www.w3.org/wiki/TPAC/2022/SessionIdeas
[00:00:02.0484]
> <@domenicdenicola:matrix.org> Does anyone have good writeups on why "you should use URL/URIs as your API's unique ID format" turned out poorly and has mostly been abandoned? Maybe hsivonen?
I think I don't have a blog post of that kind. I don't recall if I've written a public-html email like that long ago or not. Sorry.
[00:00:26.0351]
Searching mailing list archives is a good idea...
[00:04:37.0508]
Hmm, that was a mistake, URI/URL discussions on mailing lists are terrible, I'd forgotten how bad
[06:51:57.0385]
Every task has [script evaluation environment settings object set](https://html.spec.whatwg.org/multipage/webappapis.html#script-evaluation-environment-settings-object-set). What is this case when task has in set more than one environment settings object? I couldn't find anything that would be match with that case.
[09:31:25.0788]
is it expected that platform.html5.org is down? is there anything else similar (e.g., derived from `w3c/browser-specs`) that is up? (cc annevk given AFAIK it's his server or at least domain?)
[09:35:21.0510]
Sam Sneddon [:gsnedders]: coincidentally, I’ve been working on an update to platform.html5.org, so I do have something similar and I can have it up pretty shortly
…and as far as platform.html5.org itself, it’s not expected that it should be down — I think there’s some intermittent problem at Dreamhost that’s causing it to go down, but I don’t have the access to troubleshoot it.
The DNS is through Dreamhost but it’s just a CNAME to an address on the whatwg.org infrastructure.
[09:48:57.0163]
Sam Sneddon [:gsnedders]: https://w3c.github.io/mdn-spec-links/
[09:50:11.0781]
smaug: ↑
[09:53:05.0893]
I’ll also have that up at platform.html5.org once we get the routing problem figured out
[09:53:10.0840]
* I’ll also have that up at platform.html5.org once we get the routing problem figured out
[09:53:30.0250]
sideshowbarker: curious, what does the number in Docs column mean?
[09:54:03.0001]
it’s the number of MDN articles which reference the given spec
[09:55:24.0626]
Can one see the references in MDN somewhere?
[09:56:27.0335]
those are in data files; e.g., https://w3c.github.io/mdn-spec-links/accelerometer.json
[09:56:36.0734]
I guess I can add links to those too
[09:57:02.0807]
the keys in those data files are IDs/anchors in the spec
[09:57:44.0739]
the `slug` values are the pathnames of the MDN articles
[09:58:55.0044]
I guess I should also mention that the HTML output is generated from https://w3c.github.io/mdn-spec-links/specdata.json
[10:01:16.0005]
…which is an array of objects where each object represents a spec and has its URL and the associated wpt.fyi URL and caniuse URL and MDN URL and then an array of which engines currently support the spec
[10:01:47.0314]
* …which is an array of objects where each object represents a spec and has its URL and the associated wpt.fyi URL and caniuse URL and MDN URL and then array of which engines currently support the spec
[10:02:17.0131]
* …which is an array of objects where each object represents a spec and has its URL and the associated wpt.fyi URL and caniuse URL and MDN URL and then an array of which engines currently support the spec
2022-08-19
[02:26:38.0978]
Reading https://webidl.spec.whatwg.org/#dfn-distinguishable…
Why aren't callbacks and dictionaries distinguishable? Is it because functions can have properties, therefore be read as dictionaries?
[02:41:55.0904]
I was hoping to create a union/overload where something is treated as a callback if it's callable, otherwise treat it as a dictionary
[04:19:01.0907]
smaug: Sam Sneddon [:gsnedders] https://platform.html5.org/ appears to be back — for now
…and it now has my rewrite/redesign — which I made some tweaks to today
I added more tooltip text, so if you mouse over the CanIUse icons and the ⚠ and ✔ icons, it now tells you exactly which engines the spec is implemented in
[04:20:05.0597]
* smaug: Sam Sneddon [:gsnedders] https://platform.html5.org/ appears to be back — for now
…and it now has my rewrite/redesign — which I made some tweaks to today
I added more tooltip text, so if you mouse over the CanIUse icons and the ⚠ and ✔ icons, it now tells you exactly which engines the spec is implemented in
If/when https://platform.html5.org/ goes down again, I still have it mirrored at https://w3c.github.io/mdn-spec-links/
[11:40:26.0339]
can anyone point me to the source repo for https://html.spec.whatwg.org/entities.json ?
[11:40:34.0902]
I poked around and couldn't find it
[11:40:49.0360]
I know it's not supposed to change at this point but I'm curious
[11:41:39.0181]
I think it's https://github.com/whatwg/html-build/tree/main/entities
[11:47:15.0119]
aha, thanks Andreu Botella
2022-08-20
[18:46:08.0449]
TabAtkins: I raised https://github.com/w3c/csswg-drafts/pull/7631 — though in general I don’t know what the criteria are for graduating a feature from a higher-level CSS spec version to a lower-level version
Also I reckon that at https://github.com/w3c/csswg-drafts/pull/7631/files#diff-085d78c8df023b773f3d83752e37b42504653aa890a136287411337bd835a97cL98 I didn’t get the syntax update done right — but I basically didn’t know enough to figure out how to resolve the discrepancy between the (more-complete) syntax that the Level 2 spec says is allowed, and the syntax that the Level 3 spec provides (which seems like it must be an unintentionally incomplete monkey patching…)
[18:46:44.0309]
* TabAtkins: I raised https://github.com/w3c/csswg-drafts/pull/7631 — though in general I don’t know what the criteria are for graduating a feature from a higher-level CSS spec version to a lower-level version
Also I reckon that at https://github.com/w3c/csswg-drafts/pull/7631/files#diff-085d78c8df023b773f3d83752e37b42504653aa890a136287411337bd835a97cL98 I didn’t get the syntax update done right — but I basically didn’t know enough to figure out how to resolve the difference between the (more-complete) syntax that the Level 2 spec says is allowed, and the the syntax that the Level 3 spec provides (which seems like it must be an unintentionally incomplete monkey patching…)
[18:46:54.0867]
* TabAtkins: I raised https://github.com/w3c/csswg-drafts/pull/7631 — though in general I don’t know what the criteria are for graduating a feature from a higher-level CSS spec version to a lower-level version
Also I reckon that at https://github.com/w3c/csswg-drafts/pull/7631/files#diff-085d78c8df023b773f3d83752e37b42504653aa890a136287411337bd835a97cL98 I didn’t get the syntax update done right — but I basically didn’t know enough to figure out how to resolve the difference between the (more-complete) syntax that the Level 2 spec says is allowed, and the syntax that the Level 3 spec provides (which seems like it must be an unintentionally incomplete monkey patching…)
[18:48:09.0376]
* TabAtkins: I raised https://github.com/w3c/csswg-drafts/pull/7631 — though in general I don’t know what the criteria are for graduating a feature from a higher-level CSS spec version to a lower-level version
Also I reckon that at https://github.com/w3c/csswg-drafts/pull/7631/files#diff-085d78c8df023b773f3d83752e37b42504653aa890a136287411337bd835a97cL98 I didn’t get the syntax update done right — but I basically didn’t know enough to figure out how to resolve the discrepancy between the (more-complete) syntax that the Level 2 spec says is allowed, and the syntax that the Level 3 spec provides (which seems like it must be an unintentionally incomplete monkey patching…)
[06:36:01.0226]
hello
2022-08-21
[08:08:44.0505]
Hi there! I Appreciate your work! 😀
I was wondering why UA fire a `toggle` event on `detailsEl.open = true`? Was it *really* the intention of the spec?
It seems unusual to me because I’ve never seen any events fired on *programatic* IDL changes.
I wasn’t able to find any discussion or reasoning behind this. Neither in the UAs commit messages.
Could anyone help explaining me? Are there other elements firing events on *programatic* IDL changes?
Spec: https://html.spec.whatwg.org/multipage/interactive-elements.html#the-details-element
Chromium revision: https://codereview.chromium.org/249573002
Firefox revision: https://hg.mozilla.org/mozilla-central/rev/5ee96a182b8d7e872b657b8ed0cb2dfccb58711f
StackOverflow: https://stackoverflow.com/questions/73370063/when-does-dom-fire-events
2022-08-22
[01:10:48.0492]
kraftwer1: I wasn't part of that decision, so these are just my thoughts: The pattern where events _don't_ fire on programmatic changes is bad IMO. Let's say you have ComponentA, which wants to adjust UI when a `` changes. It's much better if ComponentA can just react to the event, regardless of whether the change is because of user interaction, or a programmatic change by ComponentB.
[01:12:06.0817]
do you guys learn that stuff because you have a work, and a boss and stuff like that and he wants a retarded site?
[01:13:29.0597]
look this is a real site
[01:13:59.0784]
it has folders
[01:14:04.0071]
you go there
[01:14:10.0441]
you can go back
[01:14:16.0565]
its anti-genz
[01:14:22.0247]
anti-boomers
[01:14:41.0025]
it has no hearts having dumb animations
[01:14:48.0274]
or smiles
[01:14:59.0565]
its sterile and beautiful
[01:15:54.0742]
i tried to make my site on a site builder, it cant do my site
[01:18:30.0405]
the guys who use cellphones conplaine, idgaf
[01:18:56.0481]
i tell them to unnistall whatsapp and gmail
[01:19:03.0130]
and it will work 100%
[03:55:20.0547]
PSA: https://html-now.github.io/ is the replacement for https://platform.html5.org/ (because https://platform.html5.org/ is unreachable yet again and anyway I guess we’re long overdue for a better name for the site)
[05:38:16.0715]
everything is bloat
[07:23:34.0359]
> <@sideshowbarker:matrix.org> PSA: https://html-now.github.io/ is the replacement for https://platform.html5.org/ (because https://platform.html5.org/ is unreachable yet again and anyway I guess we’re long overdue for a better name for the site)
not sure "html now" is a better name ;)
[16:02:17.0407]
> <@ms2ger:igalia.com> not sure "html now" is a better name ;)
Happy to rename it if you have any suggestions
[16:03:21.0962]
html-90.githin.io
[16:03:44.0824]
or html-93-github.io
2022-08-23
[19:39:20.0529]
Are there plans to allow the pseudo-element `content` prop to use `var()` in its value - so I can set a piece of content much higher in the DOM chain and display it?
[19:41:21.0028]
at the moment it's a bit limited with just `attr()`
[23:48:39.0858]
But then doing something as simple as `input.oninput = (evt) => { evt.preventDefault(); input.value = input.value.toUpperCase(); }` would end up in an infinite loop unless you had super complicated/ugly machinery to avoid it.
If you need ComponentB to let the other scripts know that it made some changes, it can still dispatch the event manually.
[01:24:06.0169]
Kaiido: in your example, some piece of code wants to ensure the input text is uppercase. Presumably, that's true regardless of whether the input is from the user, or programatic from some other piece of code. Relying on that other piece of code to pretend it's user input is hacky.
[01:25:48.0160]
But that's not the point. The issue is that if the script does the change in response to the event it will itself trigger the same event.
[01:26:21.0532]
It is the point 😀. The model is bad because it works in some cases but not in others.
[01:26:46.0747]
To know if an event came from the user or from a script we have the isTrusted property.
[01:27:09.0820]
`BroadcastChannel` works really well here, since each component can have its own instance. Compare this to storage events which have the same global problem.
[01:29:03.0622]
> <@kaiido:matrix.org> To know if an event came from the user or from a script we have the isTrusted property.
It isn't as black and white as that. Something can be started by user input, and then modified by script. So the origin of the change is still the user, but it's been influenced by script. `isTrusted` is more useful to know if the event is directly from the browser, but I don't think that helps in the case we're talking about
[01:29:36.0463]
Ok, so you're saying the whole EventTarget model is broken. I think I could agree with that. But firing events from script changes on that model without changing it all won't work.
[01:30:35.0886]
I'm not saying the whole `EventTarget` model is broken. I just pointed to `BroadcastChannel` as working well, and that uses… `EventTarget`
[01:30:36.0340]
I highly doubt the one precedent details created is something we should follow.
[01:30:44.0011]
* I highly doubt the one precedent details created is something we should follow.
[01:31:16.0186]
It isn't one precedent. There are many events on the platform that are script-triggered
[01:31:20.0051]
But it works well because each component can have its own target. right?
[01:32:11.0373]
Yes. And the input case (and similar cases like storage events) work badly because it assumes that it's owned by one component
[01:33:04.0688]
It's better to fire change events when things are changed, then provide a way to avoid firing events, for changes that are transformations of changes.
[01:35:15.0922]
The `formdata` event on forms is a good model here. There, listeners make modifications via the event itself. It's built for transforming the user input, so it works well for transformations.
[01:37:27.0107]
An equivalent would be an event on `` where the new value could be transformed by listeners on the event object itself. That way, it's clear it shouldn't fire an additional change event, since the change is being made as part of the event.
[01:43:59.0348]
I must admit I'm not as familiar with all these APIs as you are. For instance if by "storage events" you talk about the onstorage one, do you mean it's broken because we could for instance access the other page's handler from a `window.open()` call? That sounds like a far more complicated way to shoot you in the foot than my input.value example. And unfortunately I think that even with a new event like the one you propose where the value is passed and transformable from the event itself, it would still be very easy to shoot ourselves in the foot by using the input's `.value` there too. Btw, is it possible to change the form's formdata from outside of the event?
[01:44:15.0330]
* I must admit I'm not as familiar with all these APIs as you are. For instance if by "storage events" you talk about the onstorage one, do you mean it's broken because we could for instance access the other page's handler from a `window.open()` call? That sounds like a far more complicated way to shoot you in the foot than my input.value example. And unfortunately I think that even with a new event like the one you propose where the value is passed and transformable from the event itself, it would still be very easy to shoot ourselves in the foot by using the input's `.value` there too. Btw, is it possible to change the form's formdata from outside of the event?
[02:22:17.0209]
I do mean `onstorage`. If `localStorage` is used to store state, and ComponentA makes a change, ComponentB doesn't find out about it if they're in the same window.
[02:22:45.0731]
> is it possible to change the form's formdata from outside of the event?
Well, you can change form inputs, which are later used to create the `FormData` object.
[02:22:53.0193]
* > is it possible to change the form's formdata from outside of the event?
Well, you can change form inputs, which are later used to create the `FormData` object.
[02:22:58.0246]
* > is it possible to change the form's formdata from outside of the event?
Well, you can change form inputs, which are later used to create the `FormData` object.
[02:23:03.0163]
* > is it possible to change the form's formdata from outside of the event?
Well, you can change form inputs, which are later used to create the `FormData` object.
[03:24:30.0136]
> <@jakea:matrix.org> > is it possible to change the form's formdata from outside of the event?
>
> Well, you can change form inputs, which are later used to create the `FormData` object.
But you're not modifying the same FormData object, only a future one.
[03:31:10.0513]
Ok, I guess I can see the point. I still believe dispatchEvent is a quite ok workaround for that case though.
Moreover if that would mean that the same component had to filter out the events it did trigger.
[03:32:22.0707]
* Ok, I guess I can see the point. I still believe dispatchEvent is a quite ok workaround for that case though.
Moreover if that would mean that the same component had to filter out the events it did trigger.
[04:36:48.0806]
Kaiido: I think you only need to filter it out in the circular case, where the change is in response to the change. Take the Navigation API https://developer.chrome.com/docs/web-platform/navigation-api/ - this works really well _because_ there's one central place to handle navigations, regardless of whether the navigation was caused by script or directly by the user. This is one of the things that makes the Navigation API easier to use than the old History API, where your logic ends up split depending on how the navigation was triggered.
[08:59:18.0819]
sideshowbarker: I filed a ticket with DreamHost for html5.org, seems it affects all my sites
[09:00:09.0726]
sideshowbarker: we could potentially keep the existing domain name but point it to GitHub for hosting...
[16:29:57.0416]
I didn't had the occasion to play with this new API yet, so pardon my ignorance here. From fast-reading your article, doesn't this model work well because it's assumed that a single point will handle all these events? I have the feeling this model wouldn't scale very well for the case of two different components trying to handle events on a single target either.
I made a very quick test and it seems that two intercept handlers could actually run at the same time, in parallel, without any apparent way of knowing that the event was already intercepted. Did I miss something there? Shouldn't `.intercept()` at least set the `defaultPrevented` to true or a new `isIntercepted` flag?
[16:49:12.0478]
* I didn't had the occasion to play with this new API yet, so pardon my ignorance here. From fast-reading your article, doesn't this model work well because it's assumed that a single point will handle all these events? I have the feeling this model wouldn't scale very well for the case of two different components trying to handle events on a single target either.
I made a very quick test and it seems that two intercept handlers could actually run at the same time, in parallel, without any apparent way of knowing that the event was already intercepted. Did I miss something there? Shouldn't `.intercept()` at least set the `defaultPrevented` to true or a new `isIntercepted` flag?
I now see this was discussed in [#89](https://github.com/WICG/navigation-api/issues/89) and [#94](https://github.com/WICG/navigation-api/issues/94) to some extents (based on the previous `respondWith()` model), but I don't see any mention of letting the other handlers know they're not alone. One could still append that flag on the event manually, but that requires coordination. Also, I don't have a use-case for this, so you may very well just ignore me ;-)
2022-08-24
[02:58:52.0698]
Kaiido, Jake Archibald I've just found out that even this static HTML `` *already* fires an event.
[02:59:52.0395]
Jake Archibald: do you know of any other HTML elements that fire events on programmatic changes? I'm specifically asking for elements, not "non-element" APIs like Navigation, LocalStorage, etc.
[03:03:26.0465]
I suppose I will have to look at engine compat anyway regarding https://github.com/web-platform-tests/wpt/blob/master/FileAPI/url/sandboxed-iframe.html , but surely it's not OK for a test that doesn't specifically test how srcless iframe behaves to depend on what happens to happen between the iframe insertion and the subsequent script execution.
[03:22:15.0267]
kraftwer1: `close` on `