10:26
<annevk>
I have a collection of objects and now I want to describe a subset of that collection via some kind of comparison. What's the way to write that down? (An agent whose set of realms consists of all the Window objects whose [comparison that needs to hold true for any Window objects in the subset].)
10:27
<annevk>
I guess I'll just go for some indirection
11:55
<nox>
annevk: I want to add another new concept,
11:56
<nox>
annevk: I want a "children change steps" thing,
11:56
<nox>
Because in HTML we have:
11:56
<nox>
'When a script element that is not marked as being "parser-inserted" experiences one of the events listed in the following list, the user agent must immediately prepare the script element: (…) The script element is connected and a node or document fragment is inserted into the script element, after any script elements inserted at that time.'
11:57
<nox>
And that seems a bit hand-wavy to me. What do you think?
11:59
<annevk>
nox: that handwavy thing should be fixed by these deferred steps
11:59
<nox>
annevk: Nope.
11:59
<nox>
annevk: This part is about inserting nodes in a script.
12:00
<nox>
So deferred steps are about the inserted scripts in that script,
12:00
<nox>
not the script itself.
12:00
<nox>
See what I mean?
12:01
<annevk>
nox: what's the test that demonstrates the effect that cannot be explained by deferred steps?
12:01
<nox>
annevk: Let's say you insert 2 scripts and a text node in an empty script.
12:02
<nox>
annevk: How do you make sure you prepare the script exactly once after the two scripts and the text node were added?
12:03
<annevk>
nox: it does seem like you need children changed for that, if that is what actually happens
12:04
<annevk>
nox: so this is when you do: script=document.body.appendChild(document.createElement("script"));script.appendChild(2 scripts and a text node)?
12:04
<nox>
annevk: I can write a test yes, but AFAIK that's what Chrome and Firefox do.
12:04
<nox>
annevk: Yes
12:05
<annevk>
nox: and the HTML Standard already deals in a special way with empty scripts? (what's empty? whitespace?)
12:05
<annevk>
nox: anyway, then I guess, yes
12:05
<nox>
Whitespace I think is ok
12:05
<annevk>
nox: incidentally, "children changed" might help us with some mutation observer feature request
12:06
<nox>
My plan is to run "children changed" just before we start executing the deferred steps,
12:06
<annevk>
nox: perhaps text children changed should be removed then though?
12:06
<nox>
with the "children changed" of script elements just queuing themselves to the passed deferred steps.
12:06
<nox>
annevk: Ugh, it can't be children changed,
12:07
<nox>
children changed sounds like something that also exists on children removal,
12:07
<nox>
but scripts don't do anything when you remove their children.
12:07
<nox>
annevk: I don't know about removing text children changed, that would e.g. make a style recreate a stylesheet when adding an element in them. That currently doesn't happen.
12:08
<annevk>
nox: well, it can be children changed and the observer for various elements does the appropriate filtering?
12:08
<annevk>
nox: anyway, general idea sounds good
12:08
<nox>
The observer? You mean passing to children changed the same kind of additional data as the childList mutation observers,
12:08
<nox>
?
12:09
<annevk>
nox: yeah, not 100% sure yet though
12:10
<annevk>
I'd need to review all the various call sites and vague web components related proposal
12:17
<nox>
annevk: If I name the sink "deferredSteps",
12:17
<nox>
what do I need the items inside when I dequeue them?
12:18
<annevk>
nox: it seems fine to call it deferredStepsQueue
12:18
<nox>
Ok
12:18
<nox>
annevk: and sorry again for all the questions, HTML does "Let steps be the result of dequeueing from parallelQueue's algorithm queue.", how do I link "dequeueing"?
12:18
<annevk>
The principle of not putting types into variable names does not really apply to containers I think, though I'm not sure if that's stated anywhere
12:18
<nox>
I know I can do <a for=queue>dequeue</a> but I don't know about the -ing
12:19
<annevk>
At some point I should study some literature around this I guess
12:20
<annevk>
nox: I think Bikeshed knows enough English for it to work, but you can always use <a for=queue lt=dequeue>deqeueing</a> if it fails
12:20
<annevk>
nox: I'd try without lt="" first though
12:20
<nox>
https://tabatkins.github.io/bikeshed/#conjugating
12:20
<nox>
Nice
12:23
<nox>
annevk: Found https://github.com/whatwg/dom/issues/34#issuecomment-125571750 linked in an HTML document near the definition of "insertion steps", hah.
12:26
<annevk>
"Seems fairly trivial."
12:26
<annevk>
I've learned since then to avoid those words
12:32
<nox>
TabAtkins: My bikeshed is stuck at "Downloading anchor data..."
12:33
Ms2ger
grumbles at TabAtkins
12:33
<Ms2ger>
Mentioned me in one wpt commit, and I got at least two dozen emails about it
12:34
<nox>
And if I try to use the one online, it goes "FATAL ERROR: Found unmatched text macro [SNAPSHOT-LINK]. Correct the macro, or escape it with a leading backslash."
12:35
<nox>
The most frustrating part is that --verbose does nothing;
12:35
<nox>
so I can't see how it fails to download the thing.
12:36
<gsnedders>
Ms2ger: you're not the only person who has grumbled about that recently
12:40
<nox>
Welp, can't find a bikeshed issue that helps me, so I can't check my work :(
12:40
<nox>
Is it often broken?
12:43
<nox>
[SNAPSHOT-LINK] isn't even written in dom.bs, this is frustrating.
12:48
<nox>
annevk: https://github.com/whatwg/dom/pull/732
12:48
<nox>
annevk: Probably half a gazillion people to ping on that but I don't know who.
13:03
<nox>
annevk: What does "IPR" stand for?
13:04
<nox>
Ah, clicking on the link helps
13:04
<nox>
annevk: Ok, made my membership public as told on the wiki.
13:05
<annevk>
nox: ta
13:05
<annevk>
nox: you can now contribute to the WHATWG \o/
13:06
<annevk>
contribute PRs*
13:06
<nox>
annevk: So that means last time I contributed I wasn't even an employee? :D
13:06
<nox>
Omg,
13:06
<nox>
my last contrib before that one was "Sun Feb 28 14:53:05 2016",
13:06
<annevk>
nox: that's pre-IPR
13:06
<nox>
I started at Mozilla 2 weeks later hah.
13:07
<nox>
Oh ok :
13:07
<nox>
:)*
13:07
<annevk>
If you were not employed today you could sign up in some other manner
13:07
<annevk>
https://participate.whatwg.org/agreement
13:07
<nox>
I fixed stuff in adopt a node and replace a node years ago, nice to see there are still tree mutation issues. :P
13:13
<annevk>
I've heard that most browsers still do some dumb stuff with (multiple adjacent) empty text nodes
13:14
<annevk>
That probably warrants more test coverage
13:14
<nox>
What kind of dumb stuff?
13:18
<annevk>
nox: don't update rendering was one of them
13:18
<annevk>
nox: if one of those nodes is modified
13:20
<nox>
Nice
14:01
<nox>
annevk: The text content changed stuff isn't observable AFAICT, I just don't think it's particularly useful to run them, say, 3 times for 3 text nodes added. I can revert this part of the change though.
14:02
<nox>
Anyway, lunch time :)
14:02
<annevk>
nox: ah okay, no then it's probably better like this
15:16
<nox>
annevk: I’ll write the HTML patch next
15:18
<annevk>
nox: \o/
15:18
<annevk>
nox: I need to go for the day, but this is all very exciting, getting a little closer to understanding what "insert" actually means
15:18
<annevk>
Main remaining piece is mutation events I suppose
15:19
<annevk>
*hint* *hint*
15:19
<nox>
annevk: It’s years overdue, don’t worry about needing to go for the day :D
15:19
<nox>
annevk: Do you have sound notifications on IRC or can I ping you during the weekend just so you can read what I said on Monday?
15:25
<nox>
I don’t want to disturb you during time off heh.
16:12
<annevk>
nox: I only see stuff when I look
16:13
<annevk>
Does anyone know about GSoC? Is there a WHATWG entry? I got an email…
16:20
<Domenic>
Ms2ger: regarding writing a test for NewTarget's realm vs. current Realm, are you aware of Reflect.construct?
16:20
<Ms2ger>
Domenic, I tried this: http://software.hixie.ch/utilities/js/live-dom-viewer/saved/6584
16:35
<TabAtkins>
nox: [SNAPSHOT-LINK] is in the whatwg boilerplate, and provided by the build script
16:36
<TabAtkins>
Weird that updating was frozen tho
16:40
<nox>
TabAtkins: I realised afterwards that I can just make a PR and let whatever bot that puts the preview links in the PR description do its job, no problems. :)
16:40
<TabAtkins>
That works too.
16:42
<TabAtkins>
Wait, also: if you've got "Downloading anchor data", either you're purposely doing a --skip-manifest, or your Bikeshed is *very* old.
16:45
<TabAtkins>
nox: Have you run `git pull` in your bikeshed folder in, like, the last year?
16:45
<nox>
TabAtkins: Yes. :D
16:46
<nox>
My HEAD commit is d76ab51ece93be5af3a1621c820b89fd4f9cc432
16:46
<TabAtkins>
Yeah, that's the right HEAD. And you're just running `bikeshed update`?
16:47
<nox>
Yep
16:47
<TabAtkins>
Do you get a "Falling back to a manual update" message?
16:47
<nox>
TabAtkins: Yep!
16:48
<nox>
https://irccloud.mozilla.com/pastebin/EM07FlnF/
16:48
<nox>
Full output ^
16:48
<TabAtkins>
Oh, you have... no data files at all.
16:50
<TabAtkins>
Ok, new question. When you're running `git pull`, are you in the folder mentioned in those error messages?
16:50
<TabAtkins>
Because I suspect you didn't run the install correctly, and it put bikeshed in an odd place and is running off of that instead.
16:51
<nox>
Ah right, that's probably it.
16:52
<TabAtkins>
Quite often when someone is running into mysterious errors it's because they wildcatted the install, rather than doing what the instructions said. ^_^
16:53
<nox>
I did pip install . at some point
16:56
<TabAtkins>
Yup, missed the `--editable /path/to/cloned/bikeshed` arg there
17:15
<nox>
Oh
17:26
TabAtkins
tut tuts
17:31
<nox>
annevk: FYI some bits of the spec say " <li>Let <var>removedNodes</var> be the empty list."
17:32
<nox>
(the empty list vs an empty list)
17:38
<annevk>
nox: oh I do like the for strings
17:38
<nox>
annevk: I can't parse that. 😂
17:39
<annevk>
nox: less clear on things that get mutated
17:39
<nox>
Oh I see.
17:39
<annevk>
nox: I guess you can leave that nit and Domenic and I should standardize on style in Infra
17:40
<nox>
TabAtkins: I think I correctly followed the instructions that time, bikeshed update succeeded.
17:40
<nox>
Now doing bikeshed spec dom.bs says `FATAL ERROR: Couldn't find an appropriate include file for the defaults inclusion, given group='whatwg' and status='None'.`
17:41
<nox>
Running just bikeshed says `FATAL ERROR: Found unmatched text macro [SNAPSHOT-LINK]. Correct the macro, or escape it with a leading backslash.`
17:41
<TabAtkins>
Dom has a make file that fills in some things not included in the spec itself
17:41
<nox>
oh
17:42
<TabAtkins>
That's not part of Bikeshed, it's just how annevk does things
17:42
<nox>
Ack, I didn't even have to install bikeshed apparently given it goes through the Web API.
17:42
<TabAtkins>
Lol
17:44
<nox>
annevk: Amended, pushed and commented.
19:10
<MDude>
Huh, this is odd. Supposedly, HTML5 has tags like <aside> which ought to have certain layout attributes by default, but they apparently don't work properly unless some CSS style is applied to them?
19:10
<MDude>
I guess their isn't a way to tell the browser to just use some default style instead of either explicitly defining one or just having no layout control at all.
20:09
<Domenic>
MDude: what do you mean by "out to have certain layout attributes by default"?
20:29
<TabAtkins>
The sectioning elements are all display:block by default, but that's all they get.
20:36
<MDude>
Ah
20:41
<MDude>
It just seemed like they would do something on their own, or else they would just be implemented as class attributes instead of as their own tags.
20:44
<Domenic>
MDude: not sure what other styles you would expect. But, they're mostly about semantics, not about styling.
20:44
<TabAtkins>
They were introduced *because* they were found to be extremely common classes; by promoting those words to tagnames, mechanical tools (like screenreaders or search spiders) can make more informed decisions about how to treat the contents, rather than guessing based on classname.
20:44
<Domenic>
I.e., they make it easier for human readers of the source code (and theoretically search engines and accessibility tools, although I'm not sure about implementation status there) to understand the content.
20:46
<TabAtkins>
a11y tools do indeed take advantage of them, since they come with the appropriate landmark roles by default