03:07
<Domenic>
Seems like it's being changed into something not like the original, so we'll need to keep copying the domintro styles around
07:41
<annevk>
Domenic: thanks for the SAB review. I'll try to understand that type nuance a bit better. Are you are the existing typedefs work though? It seems they would not allow for resizable or shared buffers in a number of places, for instance.
07:43
<Domenic>
annevk: yeah the existing typedefs might not work well. It's more that using "an X object" or "an X" where X is an IDL typedef is known-good phrasing.
07:45
<annevk>
canadahonk: you prodding me about other schemes made me realize what I might have been missing in my WebKit patch; maybe I'll finally manage to get all the tests to pass now 🤞
07:46
<Domenic>
I was honestly a bit surprised that we were rigorous about using "string types" and "numeric types" and so on, to only refer to the types and not to instances. But since we are, I figured we should probably stick to it
07:47
<annevk>
Yeah, maybe we shouldn't export them then though. I guess that's another thing to look at, if there are any callers.
07:48
<Domenic>
Hmm yeah, good point
08:39
<sideshowbarker>

zcorpan: FYI It seems my recent parser change regressed the handling of ampersands in URLs https://github.com/validator/validator/issues/1595. I guess I shouldn’t be surprised.

So I’ll need to revert the change — and then I suppose I rightly should go back to the parser code and try to re-figure-out how to get the parser error-reporting behavior conforming for all cases. Which is not a lot of fun without proper test cases with the right coverage, and a working test harness for checking the error-reporting behavior

08:42
<zcorpan>
sideshowbarker: ouch. I wonder if we should revisit the decision to allow "&" at all tho
08:42
<zcorpan>
The current rules are basically impossible to explain
08:44
<sideshowbarker>
Yeah, I don’t even remember now at a high level how the logic in the spec change distinguished between the usage in, e.g., a URL vs. the usage that we wanted to continue to disallow
08:45
<sideshowbarker>
As far as revisiting the decision, I do still think the use case for allowing it in URLs is valid and we should still allow that
08:46
<zcorpan>
IIRC Ian Hickson allowed ampersands based on feedback within google that there was no harm from using unescaped & in e.g. urls. But it only "works" for urls in attributes, so it's still brittle. Also the same argument would allow font or omitting </div>s
08:47
<sideshowbarker>
yeah I guess the possible long-term costs of some of these decisions were hard to foresee at the time
08:54
<sideshowbarker>
And incidentally other characteristic of this part of the parser code that makes this really “fun” is that the fact that the state machine in the parser code doesn’t really map very clearly to the state machine in the spec algorithm. Of course the resulting behavior of the parser state machine is intended to be workalike conforming to the spec algorithm — but, in practice, working with that parser code, needing to mentally re-construct the code-to-spec mapping there every time I need to touch that code is not something I look forward to.
08:55
<sideshowbarker>
Anyway, I really wish we had someone else with time and interest in working on the parser maintenance
08:55
<zcorpan>
sideshowbarker: just rewrite the spec
08:55
<sideshowbarker>
snort
08:56
<sideshowbarker>
That would definitely help to make the spec algorithm even less maintainable too
08:56
<sideshowbarker>
Maybe that’s what we want in the end — we want everybody to be afraid to touch that part of the spec ever again
08:57
<zcorpan>
hehe
08:58
<zcorpan>
But do you want to file a spec issue about disallowing &?
09:03
<Noam Rosenthal>
smaug: hi! trying the understand the concern around https://github.com/whatwg/html/issues/9315. I don't see how it interferes with BFCache snapshots but perhaps I'm missing something
09:04
<smaug>
concern is to postpone when the first paint could happen
09:04
<smaug>
If handling the new event takes lots of time, what would UA paint instead?
09:05
<Noam Rosenthal>
smaug: if there are no view transitions, it can still paint the snapshot
09:05
<smaug>
what if there are transitions?
09:05
<Noam Rosenthal>
view-transitions are same origin, have a timeout, and in this case it would be the feature :)
09:06
<Noam Rosenthal>
if there is a same-origin view transition, it would show the old document until you're done with that event etc
09:06
<smaug>
view-transitions are same origin right now, in Google's proposal, but will they always be?
09:07
<Noam Rosenthal>
smaug: might make them same-site at some point, in which case we'll need to make sure the opt-ins hold water
09:08
<Noam Rosenthal>
but in any case view-transitions reveal a lot about the old document to the new one
09:08
<Noam Rosenthal>
which we'll have to deal with if we ever go to same-site
09:09
<Noam Rosenthal>
(cross-site is a non-goal)
09:12
<Noam Rosenthal>
smaug: we're careful not to make choices that would bind us to staying constrained to same-origin. For example we don't expose anything to the old document.
But I don't see how this event is one of those features - by the time you get it both documents have opted in
09:13
<smaug>
If the behavior would be very different when ViewTransitions are around, should the event be dispatched only in that case
09:13
<smaug>
otherwise it would be rather error prone
09:13
<Noam Rosenthal>
that was the original behavior, but in the case of newly-initialized document it's useful also without view transitions
09:13
<smaug>
without VT one would have a paint (painting using the cache) before first rAF when coming out of bfcache
09:13
<Noam Rosenthal>
I mean the original proposal
09:14
<Noam Rosenthal>
"without VT one would have a paint (painting using the cache) before first rAF when coming out of bfcache" - is that specified anywhere?
09:15
<smaug>
no, but I wouldn't want to let web page to postpone painting when coming out of bfcache
09:15
<smaug>
that would make bfcache feel slower
09:16
<Noam Rosenthal>
yea but it's not a web-exposed feature. it's like showing a splash screen of the previous contents in a way
09:17
<Noam Rosenthal>
like in a page that has a clock you'll show some previous time
09:17
<smaug>
yes, and you want to remove that
09:17
<smaug>
for VT at least
09:18
<Noam Rosenthal>
right, but that's unrelated to the event
09:18
<smaug>
I'm confused
09:19
<smaug>
You want a new event which fires before first paint after activation. How is the event not related to the first paint?
09:19
<Noam Rosenthal>

think of it as:

  • if (!has-transition) { showStaleSnapshot() } else { showOldDocument() }
  • fire reveal event
  • fire pageshow
09:20
<Noam Rosenthal>
the main "novelty" of this event is how it behaves on initial load. As far as reactivating is concerned, it's the same as pageshow
09:20
<smaug>
I guess pageshow is confusing here, since this is also about page load, and pageshow may fire way after the initial paint
09:20
<Noam Rosenthal>
I don't see showing the stale snapshot as a "paint"
09:20
<Noam Rosenthal>
it's not a paint in web-standards term
09:21
<smaug>
it is from the user's point of view.
09:21
<Noam Rosenthal>
hmm we can call it the first rendering update
09:22
<Noam Rosenthal>
the first non-stale paint
09:24
<smaug>
So for VT case how is reveal event different to having a rAF callback?
09:25
<Noam Rosenthal>
it's not too different from putting a rAF callback in the head + pageshow, but it fires before "update the rendering" phase
09:25
<smaug>
and why is that important?
09:25
<Noam Rosenthal>
it's more equivalent to putting onload on all your render-blocking scripts and styles + pageshow
09:25
<smaug>
er, why pageshow
09:26
<Noam Rosenthal>
this is "your page's rendering is about to be displayed for the first time"
09:26
<smaug>
yes
09:26
<smaug>
so you add a rAF callback
09:28
<smaug>
Why you need a new event to fire just before first "update the rendering", and not use the existing mechanism to get callbacks called during "update the rendering"?
09:29
<Noam Rosenthal>
but then you need to add that rAF callback also on page show
09:29
<Noam Rosenthal>
it's easy to miss that. you build your webpage in a way that works on first load, and then it breaks on BFCache restore
09:29
<smaug>
And how is adding a raf callback different to adding an event listener?
09:30
<Noam Rosenthal>
it's about doing it once vs doing it twice
09:31
<Noam Rosenthal>
in the VT case, it allows us to put a VT object reference in the event object. so this would be the only time where you can, for example, skip an incoming VT or listen to when it's finished.
09:33
<Noam Rosenthal>
I mean, we could have a VT-specific event for this and use the first rAF for other cases, but we thought it might be a useful event regardless of VT. Yoav Weiss you said something about having another use case for this?
09:33
<smaug>
VT object reference in the event, that is not something proposed in the issue
09:34
<Noam Rosenthal>
Yea when I proposed it I was thinking of having a document.pendingTransition instead. I will update the proposal
09:37
<Noam Rosenthal>
smaug: the cross-document view transition spec is in the making, and we noticed that this lifecycle event is somewhat missing (you have to register it twice, as first rAF+pageshow) so we wanted to discuss it as a general benefit rather than just in the context of VT. Trying to avoid having an event-per-CSS-feature, but if that's what we end up with it's also OK
09:38
<smaug>
Well, better to understand the context here, and I wasn't aware that something might be added to the event itself
09:39
<smaug>
Since that might make the event more useful
09:39
<smaug>
right now it feels more like minor helper event for things which can be done easily without making the platform even more complicated
09:41
<Noam Rosenthal>
smaug: good point
09:44
<Noam Rosenthal>
... updated the OP
11:18
<canadahonk>
is a *full* name required for the participant agreement? I don't feel exactly comfortable having my full name public atm (but is somewhat understandable)
11:27
<annevk>
canadahonk: unfortunately, yes: https://github.com/whatwg/sg/issues/93#issuecomment-1120799691
11:28
<annevk>
canadahonk: now having said that, if you happen to work for an entity that is already part of the WHATWG that doesn't apply
11:28
<annevk>
canadahonk: as your contributions would be on behalf of that entity, but I'm not sure if that applies to you or not
11:32
<Dominic Farolino>
WebIDL's "upon fulfillment" queues a microtask for you, right? (It seems to call into TC39 land which call the host enqueue promise job algo). Only reason I'm not sure is because I see some specs explicitly queue a microtask themselves: https://w3c.github.io/ServiceWorker/#ref-for-upon-fulfillment
11:41
<Andreu Botella>
WebIDL's "upon fulfillment" queues a microtask for you, right? (It seems to call into TC39 land which call the host enqueue promise job algo). Only reason I'm not sure is because I see some specs explicitly queue a microtask themselves: https://w3c.github.io/ServiceWorker/#ref-for-upon-fulfillment
Maybe WebIDL should have a note indicating that
11:42
<Dominic Farolino>
👍️ I'll get a PR together
11:42
<Andreu Botella>
I was gonna do it myself, but sure
11:43
<Andreu Botella>
That said, there might be observable behavior differences if you didn't queue a microtask in those specs
11:45
<Andreu Botella>
since the microtask queue is FIFO and any microtasks enqueued between the time the promise resolves and the time the "upon fulfillment" steps run would run before the microtask that actually does the reaction work
11:48
<canadahonk>
canadahonk: as your contributions would be on behalf of that entity, but I'm not sure if that applies to you or not
unfortunately not haha
23:09
<canadahonk>
is there any kind of "mapping" for safari TPs -> stable releases? (for referencing/etc)
23:34
<Sam Sneddon [:gsnedders]>
is there any kind of "mapping" for safari TPs -> stable releases? (for referencing/etc)
not really.