05:48
<Domenic>
Hi WHATWG community, I wanted to let you know that I'll be retiring soon. My last day is Friday 2025-09-26. Although it's tempting to stay involved in web standards, I'll be doing my best to start a new life chapter and leave it all behind. I won't be at TPAC 2025, although I'm staying in Tokyo so if you're traveling that way before/after Kobe let me know if you want to meet up! I plan to continue participating full-time until the last week or so, and then unsubscribe from various repos, remove myself as editor, etc. If there's something you'd really like me to be sure to finish before leaving, let me know.
08:24
<Lea Verou>
Wow, quite the news. Thank you for your service Domenic! Best wishes for this new chapter!
08:45
<farre>
Noam Rosenthal: congratulations to getting the deferred commit changes landed
08:45
<farre>
now I have questions :D
08:47
<farre>
I'm not sure how #resume-applying-the-traverse-history-step is supposed to work
08:48
<farre>
I get that by giving it the right arguments we can short-cut passed a bunch of things (like checking for if unloading is canceled etc), but I don't see where we pause it
08:49
<Noam Rosenthal>
farre: this was a tricky one, let me try to recall
08:51
<farre>
because we've had some difficulties in exactly the place where it's called insofar that we don't have a committed to entry at that point, something that apply the history step would fix (I think). the other navigation types update their committed to entry inline there, but not "traverse"
08:51
<Noam Rosenthal>
https://html.spec.whatwg.org/multipage/#inner-navigate-event-firing-algorithm 34
08:52
<Noam Rosenthal>
@farre: in that spot, we either call the "commit" steps which call "resume" straight away, or hold on until all the precommit handler promises are handled and then call the "commit" set of steps
08:56
<farre>
right, but I was more thinking about before calling #inner-navigate-event-firing-algorithm. say we do #apply-the-traverse-history-step, and in #apply-the-history-step step 5 fire a traverse navigate event. then we'll call #resume-applying-the-traverse-history-step (which calls #apply-the-history-step) recursively from inside #apply-the-history-step
08:57
<farre>
sure, we don't pass a traversable, so we won't fire again, but we'll execute apply twice?
08:57
<farre>
or rather, I expect we don't, but I can't find where
08:57
<Noam Rosenthal>
but step 5 returns
08:58
<Noam Rosenthal>
so it's apply ->( fire -> resume -> apply -> continue past step 5) -> return from the external "apply"
08:58
<farre>
ok, that makes sense
08:59
<farre>
and for non-traversables
09:01
<farre>
i.e 12.7.2 in apply the history step, how do we not re-enter there?
09:08
<farre>
yeah, I guess because it's queued. I figure we've changed how we handle the changingNavigableContinuations
09:50
<keithamus>
Congratulations! I presume this also means retiring as a Googler?
11:29
<smaug>
Aha, I guess there won't be WhatWG/OpenUI meeting today, even though I seem to have the calendar invite.
11:32
<smaug>
...and now I found "Event Canceled: OpenUI-WHATWG/HTML-CSSWG task force" in my email
11:41
<Noam Rosenthal>
we simply don't re-enter :) https://html.spec.whatwg.org/multipage/#inner-navigate-event-firing-algorithm 32.7 has different steps by navigation type and only the traverse one re-enters anything
11:42
<Noam Rosenthal>
the other ones hook to the navigation spaghetti at a different spot
11:45
<farre>
right, but there are two traverse navigate events
11:45
<farre>
and it's this that I was thinking about
11:47
<farre>
but that's on the navigation and traversal task source. is that a recursive call of apply the history step then. yeah, I guess
11:48
<farre>
or "recursive" I should say
11:52
<Noam Rosenthal>
oh you mean non-traversable navigable rather than non-traverse navigation types, gotcha
11:52
<farre>
yeah, exactly
11:54
<Noam Rosenthal>
I don't think you can intercept and cancel navigation on those
11:55
<Noam Rosenthal>
(reading through to find where this is and if I was too quick to say that)
11:56
<Noam Rosenthal>
yea https://html.spec.whatwg.org/#inner-navigate-event-firing-algorithm #10
11:59
<Noam Rosenthal>
https://html.spec.whatwg.org/#dom-navigateevent-intercept #4.1
11:59
<Noam Rosenthal>
you can't put a precommitHandler on a non-traversable history-traversal navigation (the automatic "back" on an iframe)
12:01
<farre>
So cancelling isn't really what I was worrying about, it was how the resume the history steps works in that fire traverse navigate event, but I think I realized that when that happens it's going to be like starting at a non-traversable sub-tree
12:04
<Noam Rosenthal>
yea
13:26
<Jake Archibald>
Noam Rosenthal: I'm trying to figure out how I'd write something like "load page shell, display page shell, commit URL, load full content, display full content, navigation complete". I proposed an event.commit() API to make this kind of thing easier.
13:32
<Jake Archibald>
Noam Rosenthal: like this https://gist.github.com/jakearchibald/8ef3f49a5fbff9240bef314fe8338c0e
15:53
<Noam Rosenthal>
Yea the second one is what you have to do. The "commit" thing worked ok for this simple use case but had lots of error conditions and gotchas
15:54
<Noam Rosenthal>
and we were working with people trying to integrate it into all kinds of apps and existing routers etc.
16:10
<Jake Archibald>
Fair enough. I guess I can write a wrapper
16:12
<Noam Rosenthal>
Yea... it was really finicky since if you forget to call "commit" in your code it's like a hanging promise but in a way that's more difficult to detect. I wonder if a generator function could wrap this nicely but haven't tried yet
19:53
<Lea Verou>
Just checking, the meeting didn't happen today, right?
21:35
<bkardell>
its a late meeting
21:35
<bkardell>
I think, anyway :)
21:36
<bkardell>
good luck too! thanks for all of it!
23:53
<smaug>
OpenUI/WhatWG didn't happen (afaik), WHATNOT did.