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