09:41
<annevk>
JakeA: did bypassing the SW go anywhere yet?
09:41
<annevk>
JakeA: I'm a little worried about its interaction with CSP and Fetch
09:41
<annevk>
JakeA: did you'll think that through?
09:41
<annevk>
Aside: is you all even you'll? I guess not.
09:42
<annevk>
Ah, y'all
10:16
<Ms2ger>
Ah, what a weird set of contractions we've.
10:20
<Ms2ger>
annevk, do you have a moment to review https://github.com/heycam/webidl/pull/688 ? It should avoid the confusing "Parsing grammar in JS-format failed: %%" errors
10:24
<annevk>
Ms2ger: done
10:26
<Ms2ger>
annevk, thx
10:30
<Ms2ger>
(I really don't want to look at that curlbikeshed shell script :))
12:36
<annevk>
Ms2ger: it handles a bunch of cases this doesn’t
13:34
<annevk>
JakeA: in particular, https://github.com/mikewest/sec-metadata/issues/16#issuecomment-473911568 is what I'm concerned about
14:03
<annevk>
nox: I created a bunch more tests for script insertion
14:03
<annevk>
nox: browsers are a lil weird
14:16
<annevk>
nox: I also feel like I'm losing grip on the correct solution the more I think about edge cases 😟
14:16
<annevk>
nox: the separate queue really creates a bunch of weird cases
14:16
<nox>
Like what?
14:17
<annevk>
nox: you insert script1 and script2, script1 modifies script2 by inserting script3
14:17
<annevk>
nox: and then maybe script3 removes script1 from the tree or some such
14:18
<nox>
[ script1 [ script3 [ script2 ] ] ]
14:18
<nox>
I don't find that weird.
14:18
<annevk>
I'm not sure I get the visual representation
14:18
<annevk>
Removing script1 from the tree would be a no-op, come to think of it
14:18
<nox>
[ /* script1 starts here */ script1 /* script1 stops here */ ]
14:19
<nox>
script1 inserts script3 which immediately gets prepared, which modifies script2 which immediately gets prepared after the modification, control goes back to script3, control goes back to script1
14:21
<annevk>
nox: so Chrome does script2 first, then script3
14:21
<annevk>
nox: Safari does [script1] [script2] [script3]
14:21
<nox>
Do you have a Live DOM Viewer link to exhibit that? I thought I had checked that case but apparently I didn't. :(
14:21
<annevk>
nox: https://github.com/web-platform-tests/wpt/pull/15886 last test
14:22
<nox>
ETOOMANYPUNCTUATIONSIGNS
14:23
<annevk>
nox: I was trying to figure out what primitives the DOM needs to provide per my comment on the DOM PR
14:23
<annevk>
nox: I still think it's feasible to only offer "children changed" without modifying parameter
14:25
<nox>
annevk: Mmh…
14:25
<nox>
annevk: I see script3 before script2 in Safari.
14:25
<nox>
http://software.hixie.ch/utilities/js/live-dom-viewer/saved/6774
14:26
<nox>
Damn,
14:26
<annevk>
nox: are you using Safari TP?
14:26
<nox>
wrong link.
14:26
<nox>
annevk: Ah, no.
14:26
<nox>
And it was the correct link nevermidn.
14:26
<annevk>
nox: doesn't matter for me
14:26
<nox>
annevk: I see script3 before script2 in Firefox too.
14:27
<annevk>
In Safari I have "Gotten order: 1,3,2,4"
14:27
<nox>
And in Chrome.
14:27
<nox>
Yes, same here.
14:27
<annevk>
In Chrome I have "Gotten order: 1,2,4,3"
14:27
<nox>
I don't.
14:27
<annevk>
Chrome Canary?
14:27
<nox>
Chrome 72
14:27
<annevk>
This is 75
14:28
<nox>
So Chrome got broken is what you mean :)
14:29
<annevk>
nox: I don't see why that means script3 before script2 though
14:29
<nox>
Not sure what you mean.
14:29
<annevk>
nox: 4 is from "script3"
14:29
<nox>
script3.textContent = 'w(3); script2.textContent += "w(4)";';
14:30
<nox>
Ah I see what you mean, just a sec.
14:30
<annevk>
Oh, you're talking about your test
14:31
<annevk>
For your test Chrome and Safari do not differ indeed
14:31
<annevk>
Seems like it's not an equivalent test
14:32
<nox>
http://software.hixie.ch/utilities/js/live-dom-viewer/?saved=6776
14:33
<nox>
This ends with "log: script3 ends" in my Chrome, I don't have Canary, will install it later.
14:34
<annevk>
nox: same here, but not in Safari
14:36
<annevk>
Firefox and Safari seem equal for that one though...
14:40
<annevk>
nox: I guess if you re-insert script2 during script1 it'll run at that point too? and then because it's already-run flag or whatever is set it won't execute when it's dequeued from the initial queue?
14:41
<nox>
annevk: Yeah that's what Chrome does, whereas Firefox sets already-started at queue time, so later mutations don't requeue it.
14:41
<annevk>
nox: but Firefox does not do that when the contents are the empty string
14:41
<annevk>
okay
14:42
<annevk>
Chrome also does something weird for append() vs append(new Text())
14:45
<annevk>
nox: okay, so we need to make a decision on 1) when do we set already-started 2) how many children change variants do we distinguish between
14:46
<nox>
annevk: So I finally know now why I think Chrome's behaviour wrt reentrancy (a script modifying another script which has been queued for preparation),
14:46
<nox>
it's because that's how reentrancy is handled in many Rust libs hah.
14:47
<nox>
I forgot a whole sentence in there,
14:47
<nox>
So I finally know now why I think Chrome's behaviour wrt reentrancy (a script modifying another script which has been queued for preparation) makes more sense to me,*
14:55
<annevk>
nox: it's still not really clear to me what the inputs are to be
14:55
<annevk>
nox: e.g., removing a node from the script doesn't change its execution order, but appending or changing a node might
14:56
<annevk>
nox: that just does not make much sense?
15:29
<smaug____>
annevk: dom spec doesn't have the weird case for nested form element event dispatch, right?
15:29
<smaug____>
or am I missing something
15:29
<smaug____>
hmm, perhaps it is actually in HTML spec... /me looks
15:31
<smaug____>
can't find
15:37
<annevk>
smaug____: there's a flag in the form submission algorithm that was added as part of the formdata event
15:38
<smaug____>
annevk: is that used also for submit event?
15:39
<smaug____>
so that event dispatch stops during bubble phase so that outer form element doesn't get submit
15:39
<smaug____>
I couldn't immediately find a spec issue, but this has been discussed somewhere
15:41
<annevk>
smaug____: ooh that
15:41
<annevk>
smaug____: that's https://github.com/whatwg/html/issues/3599
15:41
<smaug____>
that one, yes, thanks
16:10
<zcorpan>
is it intentional that :defined matches HTMLUnknownElement without dashes in the name e.g. foobar ?
16:12
<annevk>
zcorpan: I think so
16:13
<zcorpan>
annevk: ok
23:10
<MikeSmith>
I see Ian Fette is a Slack now
23:10
<MikeSmith>
https://www.linkedin.com/in/ianfette/
23:10
<MikeSmith>
Senior Director Of Engineering at Slack
23:10
<MikeSmith>
> Running the Search and Discovery team, and growing the NYC office