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. |