05:35
<rniwa>
annevk: yt?
05:35
<rniwa>
hayato: who works on custom elements spec now?
05:36
<annevk>
rniwa: about to get out of bed, but not really around for another two hours or so, unless it's something quick?
05:36
<rniwa>
annevk: fyi, i triaged a bunch of custom elements spec bugs
05:37
<rniwa>
annevk: and added v1 flags everywhere deemed necessary
05:37
<annevk>
great, I'll take a look today
05:37
<rniwa>
annevk: thanks.
05:38
<rniwa>
annevk: i'm somewhat concerned that custom elements spec hasn't been updated in the past month or two
05:38
<annevk>
We could maybe start putting it in DOM and HTML now
05:39
<annevk>
And fix things as we go
05:39
<rniwa>
annevk: lifecycle callback stuff certainly needs to go to WebIDL
05:39
<rniwa>
annevk: and DOM needs to enqueue tasks
05:40
<annevk>
True, it's a holy trifecta
07:01
<hayato>
rniwa: Yeah, we, google, are aware that it's very unsatisfying situation that custom elements hasn't been updated.
07:24
<annevk>
hey hayato, good afternoon
07:25
<hayato>
annevk: hi
07:26
<annevk>
hayato: still slowly wrapping my head around all the concepts to figure out how to best merge things into DOM/HTML etc.
07:26
<annevk>
hayato: plan to mostly work on that today
07:26
<annevk>
(it's still early here)
07:26
<hayato>
annevk: thanks. I guess that's tough work.
07:29
<annevk>
hayato: it's a little hard yes, especially figuring out when the various algorithms in Shadow DOM should run
07:29
<annevk>
hayato: unlike you, I haven't implemented it several times over the past five years 😃
07:29
<hayato>
I'll take a look issues filed on the spec later.
07:29
<annevk>
Thanks
07:30
<annevk>
I started filing some issues against the HTML Standard too, sort of as a summary of what we should do / what we need to resolve
07:30
<hayato>
And I'll have yet another section to clarify a lot of things, mentioning iframe, script, title attribute on style, and so on...
07:30
<annevk>
A lot of decisions of not sharing anything with the shadow DOM breaks the composition use case quite badly
07:31
<annevk>
I wonder how important the composition use case is, if it's important we should make "open shadow trees" much more similar to normal "document trees" maybe, with <iframe> having history there, etc.
07:34
<hayato>
I see. Yeah, there has been always a debate between encapsulation vs *open* for better composition.
11:19
<Ms2ger>
annevk, fyi https://github.com/w3c/web-platform-tests/pull/2639
11:31
<erlehmann_>
i just noticed that lists.whatwg.org is offline and there are no redirects put into place
11:31
<erlehmann_>
for example, https://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-November/033914.html has moved to https://lists.w3.org/Archives/Public/public-whatwg-archive/2011Nov/0186.html
12:21
<annevk>
http://nolanlawson.com/2016/02/29/high-performance-web-worker-messages/ is sad
12:51
<Domenic>
PR list is finally looking manageable
12:51
<zcorpan>
no unread notifications \o/
12:52
<zcorpan>
time for a coffee
12:52
<Domenic>
zcorpan: can you finish up the <link> in body PR for igrigorik maybe?
12:58
<annevk>
Domenic: https://github.com/tc39/ecmascript_sharedmem/issues/65 might be of interest
13:01
<zcorpan>
Domenic: yes, it's my currently open tab :-)
13:01
<Domenic>
\o/
13:12
<nox>
Domenic: I wonder if it's because Spring is coming.
13:12
<nox>
Domenic: Same thing happened to Servo's queue.
13:20
<jgraham>
jdm happened to Servo's queue
13:22
<nox>
That.
13:34
<nox>
Is there some summary of which Exposed combinations there are in the platform?
13:55
<annevk>
nox: there's 4 globals, workers are usually grouped
13:56
<nox>
annevk: Yeah I know, just need which combinations are actually used to implement Exposed in Servo.
13:56
<annevk>
nox: can't make it generic?
13:57
<nox>
annevk: I could, just don't want to.
13:57
<annevk>
Anyway, not sure about an exhaustive list of all combinations, best to grep a browser engine I guess
13:59
<nox>
annevk: Did the Constructor on XMLDocument go away?
13:59
<annevk>
nox: I don't think it ever had one
13:59
<nox>
(We have one in Servo but can't find it in DOM.
13:59
<nox>
Weird.
13:59
<nox>
Ms2ger: ^
14:02
<Ms2ger>
Huh
14:03
<nox>
Ms2ger: Filing.
15:56
<annevk>
Domenic: I cannot make much sense of https://mxr.mozilla.org/mozilla-central/source/js/src/vm/StructuredClone.cpp
15:56
<Domenic>
oh boy
15:57
<Domenic>
So I ctrl+fed for "error" and didn't seem to find anything specifically prohibiting Error objects, which supports my hypothesis. Looking more...
15:58
<annevk>
There's a couple other files too, but I cannot make much sense of any of them
15:59
<Domenic>
https://mxr.mozilla.org/mozilla-central/source/js/src/vm/StructuredClone.cpp#1178
15:59
<Domenic>
I think it is keying off of some equivalent of ES5's [[Class]]
15:59
<Domenic>
So it'll only do own-property cloning on things that return "[object Object]"
15:59
<Domenic>
which is how it excludes all the other things
16:00
<annevk>
That does kinda match what HTML used to have
16:00
<Domenic>
("returns object Object" is not precise these days because of @@toStringTag. But it seems the engine has some concept similar to that.)
16:00
<Domenic>
Yeah, ES just totally blew up that infrastructure, lol
16:01
<annevk>
"any internal slot" seems okay, perhaps with two example objects in a note
16:01
<Domenic>
Yeah, I think that's probably going to be our best bet
16:02
<Ms2ger>
I see some GetBuiltinClass
16:02
<Ms2ger>
842 * Enumeration describing possible values of the [[Class]] internal property
16:02
<Ms2ger>
843 * value of objects.
16:02
<annevk>
Once we define IDL better we should also fix that integration a bit
16:02
<annevk>
All in due course I guess
16:02
<Domenic>
Very interesting how ES just totally removed this piece of infrastructure. Arguably for good reasons, but it does make things rather different.
16:04
<Domenic>
https://mxr.mozilla.org/mozilla-central/source/js/src/jsfriendapi.cpp#267 is interesting
16:29
<Domenic>
Whooooo wants to test Safari for me!! https://github.com/whatwg/html/issues/775#issuecomment-190796607
16:39
<miketaylr>
Domenic: i can, sec
16:39
<miketaylr>
Domenic: https://cloudup.com/cACI0kI4fSV
16:39
<astearns>
https://www.irccloud.com/pastebin/B9sOMoOh/
16:40
<miketaylr>
heh, 3rd behavior
16:41
<Domenic>
wait what
16:41
<Domenic>
Maybe these don't have constructor names in Safari?
16:41
<Domenic>
Hmm wait I brought my iPad to work, I can maybe do this
16:43
<Domenic>
OK yeah
16:45
<Domenic>
table updated, thanks all
16:57
<gsnedders>
Hmm. Is "BUT LET'S KISS." inappropriate to have on a slide?
16:58
<miketaylr>
gsnedders: depends, maybe the slide is a presentation meant for your significant other
16:59
<jgraham>
In that case it's clearly inappropriate
16:59
<jgraham>
I mean I'm not a relationship expert
16:59
<jgraham>
But if you are mainly communicating through powerpoint I think it might be beyond repair
16:59
<miketaylr>
^^
17:00
<annevk>
gsnedders: with KISS not being the abbreviation?
17:01
<gsnedders>
annevk: with KISS being the abbreviation
17:01
<gsnedders>
But it *is* a pun, made unclear by the capitalisation of all of it
17:02
<miketaylr>
you can pivot to a different pun http://www.post-gazette.com/image/2014/08/19/ca19,13,2172,1391/20140819hokissmag.jpg
17:02
<miketaylr>
but those guys are pretty gross
17:03
<miketaylr>
maybe i'm just jealous of that leather armor
17:05
<gsnedders>
hah
17:09
<gsnedders>
heh, my SO doesn't see how anyone could have any problem with it, thinking it can't really be construded as objectifying any specific person or group given it makes no statement as to who is being kissed.
17:11
<miketaylr>
the way to diffuse any potential drama it is to have a picture of kittens kissing in the slide
17:11
<miketaylr>
aww http://40.media.tumblr.com/tumblr_lxpj8u62Rh1r9z84ho1_500.jpg
17:31
<annevk>
Domenic: if you find some time, I would love for you to take a look at https://github.com/whatwg/html/pull/323 and figure out how you'd fix it
17:31
<Domenic>
Hmm OK.
17:31
<Domenic>
Doing custom elements right now.
17:31
<annevk>
Domenic: there's no rush at all, I'm just having such a hard time to get my head around it
17:48
<TabAtkins>
gsnedders: In general, avoid sexualized jokes entirely.
17:48
<annevk>
TabAtkins: FWIW, it still says [ENCODING] but it does now link to the right place
17:48
<TabAtkins>
annevk: Yeah, that's intentional. Again, minimum-effort until things are fixed.
17:49
<TabAtkins>
I want to just rip out the two lines handling this when SpecRef fixes things.
17:49
<gsnedders>
TabAtkins: see, that's what I would go for, really.
18:06
<JonathanNeal>
I’m looking for the latest Selectors API. Will #Element.findAll return a collection that extends Array?
18:07
<annevk>
JonathanNeal: see https://dom.spec.whatwg.org/
18:07
<annevk>
JonathanNeal: that's the idea, but it's not reality yet, subclassing is taking its time
18:09
<JonathanNeal>
Oh, this looks different than what I saw before. Thanks, annevk! I thought .query & .queryAll would return a live collection and .find & .findAll would return a non-live collection.
18:10
<annevk>
JonathanNeal: find/findAll are gone
18:10
<TabAtkins>
They were renamed to query/All() because of the conflict with window.find().
18:10
<annevk>
JonathanNeal: and new live collections are also gone (mostly, hopefully)
18:12
<JonathanNeal>
Got it, and Elements being a subclass of Array means it doesn’t inherit changes to Array prototype?
18:12
<TabAtkins>
No, it *does* mean that.
18:12
<annevk>
JonathanNeal: I don't know, is that how subclassing is different from proto chaining?
18:12
<TabAtkins>
Subclass means proto-chaining.
18:13
<annevk>
Yeah I thought so
18:13
<JonathanNeal>
So, in a sense, Elements.prototype = new Array()?
18:13
<TabAtkins>
I think it's closer to Elements.prototype = Object.create(Array.prototype)
18:15
JonathanNeal
was too old school to remember Object.create. Nods.
18:41
<Domenic>
No, it's in fact closer to Elements.prototype.__proto__ = Array.prototype
18:41
<Domenic>
(and Elements.__proto__ = Array)
18:41
<Domenic>
I seem to be accidentally rewriting the custom elements spec
18:48
<TabAtkins>
Domenic: Your first line requires *creating* Elements.prototype somehow first; my line does so, by making it an empty object with its proto set to Array.prototype.
18:49
<TabAtkins>
I did leave out the proto shenanigans of the constructor functions, yeah.
18:49
<caitp>
those proto shenanigans are important for subclassing
18:50
<TabAtkins>
I understand. I didn't say that I left it out intentionally.
18:55
<Domenic>
TabAtkins: your line overrides it. All functions have a .prototype
19:00
<nox>
https://github.com/whatwg/html/issues/775#issuecomment-190851825
19:06
<Domenic>
yeah thanks for saving the day there
19:30
<TabAtkins>
Welp, I'm an idiot. Just figured out why I was getting 15s processing times on an empty spec.
19:31
<TabAtkins>
Turns out the invoking the HTML parser on a large CSS file hits some degenerate behavior and makes everything go very slowly.
19:31
<TabAtkins>
Welp, I'm an idiot. Just figured out why I was getting 15s processing times on an empty spec.
19:32
<gsnedders>
TabAtkins: so next PyPy and lxml releases should hopefully work together; will be interesting to revisit performance then
19:46
<rniwa>
dglazkov: yt?
20:13
<rniwa>
Domenic: yt?
20:13
<Domenic>
rniwa: yep
20:13
<rniwa>
Domenic: do you know who is responsible for updating custom elements spec these days?
20:14
<Domenic>
rniwa: myself and Koji probably; we have a meeting with Hayato to discuss that tomorrow
20:14
<Domenic>
rniwa: I am about 3/4 of the way through fixing a lot of things
20:14
<rniwa>
Domenic: okay
20:14
<rniwa>
Domenic: I'm more than happy to help out
20:14
<Domenic>
rniwa: I thought I'd do just a quick PR to get your text into the spec and then I kept updating things and now like 60% of the spec is new
20:14
<rniwa>
Domenic: but it's getting really hard to implement custom elements in WebKit without having anything concrete in the spec
20:14
<Domenic>
rniwa: that'd be great!
20:15
<rniwa>
Domenic: okay
20:15
<Domenic>
rniwa: let's land my PR then it should be easier to implement the remaining problematic parts
20:15
<rniwa>
Domenic: e.g. I could just start pushing PR for issues that aren't getting much traction
20:16
<rniwa>
Domenic: also, there is a lot of spec debt now.
20:19
<nox>
https://github.com/whatwg/html/issues/775#issuecomment-190885243
20:20
<nox>
Domenic: Am I still right?
20:20
<Domenic>
nox: seems likely, attention on custom elements for now...
20:21
<nox>
Domenic: Good luck.
20:59
<Domenic>
I am feeling optimistic about integrating custom elements into DOM and HTML now
20:59
<Domenic>
Except for parsing. I am not optimistic about that.
21:00
<dglazkov>
I AM HERE!!!
21:00
<dglazkov>
wait
21:00
<dglazkov>
everything is solved
21:01
<Domenic>
I dunno somehow I just cloned the repo and one thing led to another and it just kinda happened
21:02
<dglazkov>
that's how it always goes. 3 years later you're the HTML spec editor.
21:02
<Domenic>
so true. so, so true.
21:02
<nox>
Is it known that for document.createElement(), Safari returns <undefined></undefined>?
21:02
<nox>
I think I died inside a bit.
21:02
<Domenic>
that's amazing
21:03
<nox>
Domenic: :D
21:03
<Domenic>
I guess Blink only recently fixed our `optional` handling
21:03
<nox>
Domenic: I was complaining to a friend about that all() thing,
21:03
<nox>
told me "meh, everything is optional in JS",
21:03
<nox>
wanted to prove him wrong.
21:03
<nox>
And then this happened.
21:03
<nox>
-_-
21:16
<caitp>
nox: that's since been fixed :x
21:16
<nox>
caitp: Nice to know.
21:19
<nox>
Domenic: Btw, GitHub understands language "webidl", if you want to colorise code snippets.
21:19
<Domenic>
nox: thanks, updated
21:24
<annevk>
roc: 👋
21:25
<roc>
ta
22:18
<jgraham>
roc: :(
23:53
<rniwa>
Domenic: nice PR!
23:54
<rniwa>
Domenic: looking through it and found a few typos and errors
23:54
<Domenic>
rniwa: awesome, happy to fix up :)
23:54
<Domenic>
I said no editorial stuff but what I really meant was "no multi-day back and forth waiting for LGTMs over editorial stuff"
23:54
<rniwa>
Domenic: yeah, let's not do that stuff
23:55
<rniwa>
Domenic: btw, i think there's one big bug in my original / your PR about HTML constructor
23:55
<rniwa>
Domenic: which is the way the global object is obtained
23:55
<rniwa>
or rather Document object
23:55
<Domenic>
rniwa: I tried to fix that by using current Realm's global, but I didn't think about it as hard as I should have, which is often necessary with "which global object" questions.
23:55
<rniwa>
Domenic: it's totally reasonable for you create your own document via DOMImplementation or get iframe.contentDocument
23:56
<rniwa>
Domenic: and extend that document's prototype
23:56
<rniwa>
Domenic: in that case, we don't want to end up looking up the registry of whatever script realm you happen to be running
23:56
<Domenic>
hmmmm
23:56
<rniwa>
Domenic: so instead of doing that, I think we should just get the global object out of the prototype or the constructor object
23:57
<rniwa>
Domenic: or the global object of [[Prototype]] internal slot of the constructor
23:57
<rniwa>
Domenic: the latter one in particular should always be in the right(â„¢) document.
23:58
<Domenic>
Global out of the constructor function seems simplest
23:58
<rniwa>
Domenic: indeed
23:58
<rniwa>
Domenic: it's weird for your constructor to be extending another class in a different document anyways
23:58
<Domenic>
Yeah I'm trying to think if we can detect such mismatches and throw or something
23:58
<rniwa>
Domenic: but if we're going that rought, we may want to check that early in defineElement as well
23:58
<rniwa>
Domenic: so that author would catch it early
23:58
<Domenic>
right
23:59
<rniwa>
instead of your custom element never getting upgarded
23:59
<rniwa>
Domenic: oh wait, no
23:59
<rniwa>
Domenic: in the case you define class MyElement extends MyDocCreatedForHavingASeparateRegistry {}