2018-02-01 [17:21:36.0000] annevk, MikeSmith: do you accept lurkers on that meeting? https://github.com/w3c/WebPlatformWG/blob/gh-pages/meetings/18-03-Web-components.md [17:27:59.0000] annevk: I would think you would be very welcome to attend [17:28:06.0000] just need to ask kochi probably [17:28:28.0000] not sure who will be the formal chair for the meeting [17:30:10.0000] We already invited people from framework developers, so I think anyone is welcome to join. [17:30:42.0000] cool [17:31:10.0000] probably what we need is just follow w3c's code of conduct. https://www.w3.org/Consortium/cepc/ [17:31:46.0000] I haven't done setup for registration form kind of thing, for building security badge etc., and catering planning [17:55:02.0000] MikeSmith, kochi: thanks! [17:56:27.0000] I'm living in Japan. And my interest is more on the side of implementation differences in between browsers (webcompat hat). And I'm happy to stay silent for the full meeting. :) [19:15:25.0000] Should the loading of a environment-matching style sheet requested by a in block the rendering of the page? [22:48:21.0000] hi, over at https://html.spec.whatwg.org/multipage/webappapis.html#handler-onload I see "The following are the event handlers (and their corresponding event handler event types) that must be supported by all HTML elements other than body and frameset elements" [22:48:51.0000] shout-user501: yeah? [22:48:52.0000] included in this list is onload - but I thought onload was only for certain elements? [22:49:04.0000] see e.g. https://stackoverflow.com/questions/4057236/how-to-add-onload-event-to-a-div-element [22:54:03.0000] shout-user501: I guess it comes down to what “must be supported” means there [22:54:37.0000] that statement isn’t actually requiring any processing behavior [22:55:46.0000] so it means supported as in adding it doesn't break anything? is this type of language common in the spec? admittedly I'm not well-versed in it [22:57:07.0000] adding onload to an element that the load event is never fired at isn’t going to break anything [22:57:17.0000] it’s just never going to have any effect [22:57:56.0000] as far as that type of language being common, not really [22:58:49.0000] arguably it’s a deficiency in the spec that it doesn’t make unambiguous what it means by “must be supported by all HTML elements” there [23:02:34.0000] I was kind of looking for where the spec defines how it works precisely and which elements it applies to, but the section I found which describes that says it is "non-normative" https://html.spec.whatwg.org/multipage/indices.html#events-2 [23:03:06.0000] nvm, I'm looking at a single page of the multipage version [23:05:37.0000] OK [23:06:40.0000] yeah, for the elements the load event actuall gets fired at, the spec explicitly states in each case, “Fire an event named "load"...” [23:07:01.0000] or some wording close to that [23:07:41.0000] nice, i see that now :) [23:11:32.0000] I noticed the comment "While these attributes apply to all elements, they are not useful on all elements. For example, only media elements will ever receive a volumechange event fired by the user agent" at one spot - aware of a good list which matches the events to the relevant elements? [23:12:15.0000] took a look at MDN and it's not clear that they do - I guess maybe this is out of scope for the spec itself but it seems like it could be a handy reference thing for spec folks too [23:15:30.0000] shout-user501: onload on body is special [23:15:39.0000] shout-user501: it's actually tied to the Window object, iirc [23:15:56.0000] yep, it's also special on embed and various other tags too [23:16:14.0000] MikeSmith helped me out a fair bit already on that [23:16:19.0000] shout-user501: I don't think it's special on embed? [23:16:57.0000] "fired at an element containing a resource (e.g. img, embed) when its resource has finished loading" [23:17:58.0000] That doesn't make the attribute special [23:18:11.0000] seems to be fired on link, style, etc [23:18:20.0000] well it's only fired on a small handful of elements, so it's special [23:18:25.0000] Sure, but fired on is a different concept from the attribute [23:18:40.0000] They're not really related [23:18:51.0000] for me, if it's useful at all that makes it special [23:18:55.0000] You can manually fire events of any type to anything that's an event target [23:19:01.0000] since it technically is "supported" on all HTML elements [23:19:14.0000] it's fired by the browser on a very small handful of elements [23:19:24.0000] The attribute is; but that doesn't mean the event is dispatched by the UA on all of them [23:19:47.0000] it is dispatched by the UA for embed and link tho, as well as body [23:19:59.0000] No, I don't think it's dispatched on body [23:20:19.0000] It's dispatched on the global, and the onload attribute on body gets actually registered there [23:20:27.0000] That's why _that_ attribute is special [23:21:17.0000] hmm, OK - ultimately the word special doesn't have much meaning anyway.. [23:21:47.0000] Well, it has different behavior from what the attribute normally has [23:21:55.0000] I think you might be coming at it from a spec / implementation perspective, whereas I am coming at it from an app development perspective [23:21:58.0000] Normally it just registers a listener on the object it's associated with [23:22:14.0000] I'm not sure how that matters [23:22:42.0000] well, as an app developer it is fired when the resource loads - and the body is similar to an embed in that respect [23:22:52.0000] not really special at all, just different types of resources [23:23:26.0000] from a technical perspective, the fact that it ties into Window makes it seem more special? [23:23:36.0000] Again, you're conflating events and event handlers [23:30:23.0000] the UA does fire certain events which can only be captured against certain event handlers, right? I mean sure I can fire it in my app code but that seems like an antipattern [23:31:23.0000] long-run I'd be personally be happy to see a system for warnings or errors on something like that [23:32:38.0000] the non-normative explanation of load says "Fired at the Window when the document has finished loading; fired at an element containing a resource (e.g. img, embed) when its resource has finished loading" [23:32:55.0000] to me those use cases seem quite similar, but you're saying they are conceptually quite differnet? [23:34:38.0000] maybe you mean it's different because you can listen with window.onload as well as the body attribute [23:35:13.0000] I'm saying that event handlers and events are different. E.g., if you registered an event listener on body for load using addEventListener() it would never trigger since the event isn't dispatched there. The event handler (onload) would trigger since it actually ends up registering a listener on window. [23:36:06.0000] That's what makes that event handler special, whereas the others are pretty normal. You're right some objects are special in that the UA dispatches events on them, but that's not always closely correlated to the event handlers. [23:36:58.0000] oh, interesting, that seems a bit unfortunately confusing [23:56:40.0000] MikeSmith: I think we might have been measuring the wrong thing [23:56:51.0000] oh? [23:56:57.0000] MikeSmith: you've only been looking at parents, not nearest ancestor article, nav, section, aside [23:57:06.0000] MikeSmith: unless the caption is wrong [23:58:10.0000] MikeSmith: either way, it'd be good to look through a sample of those multiple

s [00:08:21.0000] annevk: right yeah I can change it to look at ancestors [00:15:29.0000] MikeSmith: cool; I hope those numbers would line up a bit more with the 3% usage [00:16:00.0000] MikeSmith: although on the other hand if they don't the change would not make much of an impact and is therefore fairly safe... [03:26:36.0000] /me missed that Ms2ger eventually pushed more tests [03:26:58.0000] So, yeah, r? :) [03:27:31.0000] Yeah looking now, though might take a while since I'm getting hungry [03:59:25.0000] Ms2ger: hmm so what if a Blob is a WebM resource? [03:59:39.0000] The specification for createImageBitmap() was really quite bad [03:59:46.0000] Well, still is [04:00:14.0000] Per spec, it's not an image, so not supported, I guess [04:00:45.0000] I guess that's fine [04:02:22.0000] Ms2ger: although Safari added MPEG support to so... [04:02:35.0000] Without really defining what that means... [04:02:40.0000] I donno, man [05:00:48.0000] surma: are you interested in creating a better test suite for structured cloning? [05:01:18.0000] /me is looking at the current mess [05:36:26.0000] annevk: Seems like that might be in order, huh? [05:41:05.0000] surma: yeah, we can then also add tests for Symbol throwing [05:41:25.0000] surma: there's tests in webmessaging/ and in html/ in various folders [05:41:52.0000] surma: html/browsers/history/the-history-interface and html/infrastructure/safe-passing-of-structured-data [05:42:10.0000] surma: also workers/semantics/structured-clone [05:44:08.0000] surma: my thinking is that we'd want a JavaScript resource that sets up various test scenarios and expectations and that's imported into various wrappers for the different APIs [05:44:13.0000] annevk: Alright. I’ll take a stab. Should I create a re-usable set of tests than can be used for all methods that use structured(De)Serialize under the hood? [05:44:16.0000] Ha! [05:44:22.0000] annevk: sg :) [05:44:41.0000] much appreciated \o/ [05:50:27.0000] surma: FWIW, stuff that'd be nice to be able to test include things like postMessage(Symbol(), "*", [new ArrayBuffer(2)]) throwing and not detaching the buffer (want to be able to test the order things happen in) [05:51:38.0000] annevk: Ah good one. [05:52:01.0000] I’ll go through the spec and see what I come up with :) [05:52:34.0000] cool; once you have a framework I'm happy to help out filling it out for various objects [08:29:26.0000] shout-user501: another useful thing is that you can do e.g. body.ondragexit = ... and catch bubbled dragexit events. That is part of why those are defined on all elements. [09:50:49.0000] Domenic: are records perhaps always passed by reference? [09:50:57.0000] Domenic: in that case my pointer comment can be disregarded [09:51:25.0000] annevk: yeah I think everything in specs is, generally. I am going to check the PR soon, but my impression seeing it in my email was that it's not an issue. [09:51:49.0000] kk [09:52:10.0000] if this works it'd be a pretty sweet simplification [10:14:23.0000] HTML has an interesting defense against -0: [10:14:26.0000] > If sign is "positive", return value, otherwise return the result of subtracting value from zero. [10:14:57.0000] /me is trying to find +0/-0 issues [10:37:42.0000] Domenic: as I update https://github.com/whatwg/html/pull/3437, shall I keep it two distinct commits? [10:37:48.0000] Domenic: or would you prefer a fixup commit? [10:38:02.0000] Domenic: (I might not get to doing it until tomorrow, but would like to know how) [10:38:02.0000] Oh I didn't notice the two commits hmm [10:38:53.0000] annevk: can you remove the placeholder without the other change, or does it depend on the bugfix first? [10:39:16.0000] Domenic: I think it can be done separately [10:39:35.0000] Hmm OK, then separate seems good. I'll try to understand better how that's possible... [10:39:51.0000] Maybe reorder so that goes first, if it's not extra work. [10:41:42.0000] Domenic: let me try it in a new PR [10:41:50.0000] awesome [10:41:51.0000] I have a bit of time [10:42:01.0000] /me keeps banging my head against is="" [10:42:12.0000] I do not envy you [10:42:23.0000] hmm, why does `bikeshed update` claim local data is already up-to-date, while showing me a timestamp from 3 days ago... did really nothing change between now and then? [11:30:26.0000] hmm, DOM defines a Document's URL as being a URL record. Which would mean that if it's a blob: URL the url would contain that blob as its object, which from reading the spec means that for example location.reload() should work on a document created from a blob URL even after the blob URL is revoked (since it just passes the already parsed URL on to navigate/fetch...) [11:30:56.0000] I wonder if any browser actually implements it like that... [11:53:57.0000] Domenic: if instead of uninitialized value we use an empty record? Would that work? How is it different? [11:55:40.0000] annevk: I don't think so? The issue is you're changing only what memory[transferable] points to. But lots of other places, inside _serialized_ now point to the placeholder/uninitialized value, which don't get updated. [11:56:22.0000] annevk: I guess if you set it to an empty record and then instead of creating dataHolder, just updated all the fields of it, that would work [11:56:28.0000] Although records traditionally have a more fixed set of fields [11:58:03.0000] Domenic: we already violate that with transfer steps [11:58:34.0000] Domenic: although we could fix that [11:58:36.0000] No I mean once you create a record you don't change its fields [11:58:47.0000] Oh, yeah, we do [11:59:39.0000] Domenic: I have an idea of how to fix both, but breaks downstream transferables if any [11:59:50.0000] Hmm [11:59:56.0000] Unsure if worth it, at least for transfer steps [12:09:23.0000] Ok, we can consider that separately then [12:11:16.0000] I think the placeholder thing is not so bad, now that it's all defined in terms of lists and records at least. [12:11:37.0000] It was bad when it was within a graph of JS objects; it was like, how do you traverse such a graph? Does it trigger getters? Ugh. But now it makes sense. [12:12:01.0000] That said something like discussed above is probably more efficient, in the event implementers are anywhere close to verbatim following our algorithms. [15:05:56.0000] Mek: Because my computer at work auto-restarted while I'm in Sydney, and that's what runs the update script. I should be able to run it manually today. [15:06:13.0000] TabAtkins: ah, okay, thanks [15:52:54.0000] Mek: Ran it manually now. 2018-02-02 [16:31:55.0000] Ah, that's why I haven't seen TabAtkins around recently. :) [16:34:22.0000] jsbell: Also: you're in the SF office ^_^ [16:34:26.0000] (I'll be there on Tuesday.) [16:35:22.0000] In other news, wrote a content script extension to work around https://github.com/whatwg/meta/issues/10 and now my tabs look ossm [16:39:00.0000] Haha, nice. annevk zcorpan, still holding firm on no PNG favicons for specs? [16:47:46.0000] so I just learned yesterday that https://developer.microsoft.com/en-us/microsoft-edge/platform/usage/ exists [16:48:50.0000] data showing percentage of use CSS properties and values [16:50:02.0000] e.g., https://developer.microsoft.com/en-us/microsoft-edge/platform/usage/css/--var/ shows CSS variables used in 0.559% of documents, and shows that vast majority of usage is for pixel values and colors [16:50:48.0000] Oh yeah I remember that from when it launched [16:51:00.0000] I wonder how often they update it... July 2017 last update [16:52:09.0000] I wonder what a Bing-powered scan means paired with "Contains data from: Edge, Chrome, Firefox" [16:52:40.0000] right, I was confused by that too [16:54:36.0000] in other news, one of of the use counters I added to the HTML checker this week was for the style attribute [16:54:56.0000] disappointing to find that 65% of documents checked are using it [16:55:04.0000] It's the new hotness [16:55:12.0000] React and inline styles are best friends [16:55:19.0000] ah [16:55:31.0000] wish they wouldn’t do that [16:56:21.0000] but oh well. I guess it means I should have the checker report non-conforming CSS in style-attribute values [16:56:26.0000] along with style element [18:28:01.0000] Oooh [23:40:53.0000] annevk: log of URLs for documents that have multiple h1 without an section/article/aside/nav ancestor: https://gist.githubusercontent.com/sideshowbarker/8284404/raw/9220fb7b5a1befbabc04dc27943a5255cdfecc3e/h1.log [23:42:25.0000] youtube.com is there but when I checked the source I notice the h1s are