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