| 01:16 | <MikeSmith> | botie, forget context |
| 01:16 | <botie> | MikeSmith: I forgot context |
| 01:21 | <MikeSmith> | TabAtkins: Domenic thanks for the tip on <{link/rel/serviceworker}>, will update the https://github.com/whatwg/html/pull/2517#issuecomment-293070580 PR right now |
| 01:22 | <MikeSmith> | Bikeshed rocks |
| 01:24 | Domenic | 's entry settings object alarm goes off (re: wanderview's link) |
| 01:24 | <wanderview> | Domenic: that error message was written based on old spec text I believe |
| 01:25 | <wanderview> | and we haven |
| 01:25 | <wanderview> | we haven't implemented the new spec text yet for the multi-global tests you wrote |
| 04:37 | <HTH-GG> | 有人吗? |
| 04:37 | <HTH-GG> | anyone there? |
| 05:12 | <annevk> | aklein: we waited for two years on TC39 not looking at the problem much ourselves |
| 05:13 | <annevk> | aklein: when we then started looking after third state et al failed we found several things that could be tightly coupled in a rather nice way |
| 05:14 | <annevk> | aklein: and would not have been possible with the TC39 proposals |
| 05:16 | <annevk> | aklein: and then a subset of that functionality got extracted as a set of base classes since it turned out we did want it in multiple places |
| 05:16 | <annevk> | aklein: that last one was rather recent |
| 05:17 | <annevk> | wanderview: nothing I can help with right? I believe we removed all the exception "footguns" |
| 06:39 | <MikeSmith> | https://github.com/Fyrd/caniuse/issues/885#issuecomment-293136872 |
| 06:40 | <MikeSmith> | https://caniuse.com/ 🎉 |
| 08:46 | <annevk> | It seems really slow |
| 09:03 | <MikeSmith> | yeah |
| 09:04 | <MikeSmith> | same here |
| 09:04 | <MikeSmith> | loads slow |
| 10:48 | <hsivonen> | MikeSmith: do you still care about the HTML4 validation modes in v.nu code? |
| 10:50 | <MikeSmith> | hsivonen: nope |
| 10:50 | <hsivonen> | MikeSmith: thanks |
| 10:50 | <MikeSmith> | planning to yank them? |
| 10:50 | <MikeSmith> | if so, happy to help |
| 10:50 | <hsivonen> | MikeSmith: very possibly |
| 10:50 | <MikeSmith> | OK |
| 10:51 | <hsivonen> | I'm currently trying to make the parser go faster, and I'm wondering if I should keep the HTML4-related flags on the attribute names |
| 10:51 | <MikeSmith> | ah |
| 10:51 | <MikeSmith> | yeah especially if it would be a performance gain, no reason to keep them |
| 10:58 | <hsivonen> | good times. the parser knows about https://msdn.microsoft.com/en-us/library/ms533706(v=vs.85).aspx Can't even remember why. |
| 11:01 | <hsivonen> | apparently because HTML 4.01 reserves it for future use! |
| 11:02 | <annevk> | dataformatas I always read that as "data formatas", not "data format as" |
| 11:02 | <hsivonen> | me too |
| 11:03 | <hsivonen> | veryverythickmathspace |
| 11:39 | <annevk> | Domenic: your definition of "agent" was wrong too |
| 11:39 | <annevk> | Domenic: a user agent is allowed to have one event loop for all its browsing contexts |
| 11:40 | <annevk> | Domenic: do we just want to make that disallowed since it cannot be observed if a user agent does that or do we actually want to work around it some other way? |
| 12:02 | <annevk> | Domenic: what ECMAScript calls the "executing thread" is what we call the event loop |
| 13:04 | <wanderview> | annevk: right, I was just mentioning it hit a relatively large site unfortunately |
| 13:04 | <wanderview> | and I guess asking JakeA if they had plans to impl the footgun fixes |
| 13:06 | <JakeA> | I'll chase it |
| 13:08 | <wanderview> | maybe its fixed in canary? I only tested in release chrome... although I don't remember seeing a chromium issue for it |
| 14:04 | <annevk> | Reminder to self: don't volunteer for seemingly trivial tasks |
| 14:14 | <annevk> | JakeA: I have more detailed nits on the Abort stuff I think from a quick skim, but I'll wait a bit for more high-level feedback first |
| 14:14 | <annevk> | JakeA: overall though it seems ready enough to me to determine implementation interest and write tests |
| 14:15 | <JakeA> | annevk: Cool. I just pushed some more to the fetch branch. Will fix the nits |
| 14:17 | <annevk> | JakeA: I guess I would like to have it explained why we normalize to FetchSignal |
| 14:17 | <annevk> | JakeA: not in spec, here or in a comment on the PR is fine |
| 14:18 | <JakeA> | annevk: I was worried that devs might write code expecting request.signal to be a particular type, and get caught out when it turns out to be another type for a rare code path |
| 14:19 | <JakeA> | I guess the signal doesn't have methods though |
| 14:19 | <JakeA> | But if they expect .priority to be there & be a number |
| 14:20 | <annevk> | JakeA: if they don't pass one in themselves it'll just be null, no? |
| 14:20 | <annevk> | JakeA: and if they pass one in themselves it should be somewhat clear what they get |
| 14:20 | <JakeA> | annevk: I was thinking of cases where they get the request object from elsewhere |
| 14:21 | <annevk> | JakeA: yeah okay, I guess it's okay |
| 14:21 | <JakeA> | annevk: should I remove FetchController? |
| 14:22 | <JakeA> | I guess we don't need it |
| 14:22 | <annevk> | JakeA: you cannot get a FetchSignal otherwise and that would mean you always get an allocation each time you invoke fetch() with a signal |
| 14:22 | <JakeA> | Hah, although if we start with FetchSignal without .priority, developers are going to have to test for its existence anyway |
| 14:22 | <annevk> | JakeA: good point |
| 14:23 | <annevk> | JakeA: maybe just drop it entirely then |
| 14:23 | <JakeA> | annevk: agreed, I'll remove the casting |
| 14:23 | <JakeA> | pffft wish I'd figured that out early |
| 14:24 | <annevk> | Well, you've learned something I'm sure |
| 14:24 | <JakeA> | \o/ |
| 14:47 | <MikeSmith> | the only way Artur Janc could have a cooler name is if his first name were Antti |
| 16:04 | <Domenic> | annevk: I think it might be time to disallow that because SABs make it observable |
| 16:04 | <Domenic> | It seems related to how I had to delete the sequential consistency guarantee from early in the spec |
| 16:39 | <annevk> | Domenic: 1) apparently an Agent is not an event loop, but maybe SAB still makes it observable somehow? If so, that seems bad? |
| 16:39 | <Domenic> | I am still pretty sure an agent is an event loop. |
| 16:39 | <annevk> | Domenic: I just talked at length with lth in jslang and he told me that was wrong |
| 16:40 | <Domenic> | yeah i think he is wrong :) |
| 16:40 | <annevk> | sigh |
| 16:40 | <Domenic> | i know :-/ |
| 16:40 | <Domenic> | it was very surprising to wake up to find out the creator of agents thinks they are just redundant with realms |
| 16:40 | <annevk> | Domenic: 2) I noticed that JavaScript has consistency requirements for Agent clusters and when I ported that requirement over to HTML WebKit folks blocked it |
| 16:41 | <Domenic> | yeah, those were unilaterally added by lth without cross-browser agreement i guess |
| 16:41 | <Domenic> | we should probably raise that in tc39 |
| 16:41 | <annevk> | Domenic: in particular, those agent cluster requirements would apply to when you kill workers and such |
| 16:41 | <Domenic> | since i don't think the jsc folks realized what was being put in the spec |
| 16:41 | <Domenic> | and they should talk to their webkit teammates |
| 16:41 | <annevk> | more sigh |
| 16:42 | <annevk> | If someone wants to introduce a new platform feature they should really work it through all the way |
| 16:42 | <annevk> | We should try to make that a requirement of sorts, you can't just land something in ecma262 and call it a day |
| 16:42 | <annevk> | At least not something with obvious Host implications |
| 16:47 | <aklein> | annevk: re: cancellation. hypothetically, had ES shipped some cancellation thing a year ago, would fetch use it? or would you have said "no, we need this to mesh well with events"? |
| 16:47 | <annevk> | aklein: I suspect we would have used it |
| 16:48 | <annevk> | aklein: but a year ago we also had a pretty poor understanding of what this could look like |
| 16:48 | <annevk> | aklein: so we might have just gone down the fastline of adding cancelation since folks are waiting on that (and have been for over two years now) |
| 16:50 | <aklein> | annevk: oh, other question from yesterday. you said "observables are gone"...what was that in reference to? |
| 16:51 | <annevk> | aklein: I forgot who I got that from, but I got the distinct impression that it didn't have sufficient interest from implementers and the only host consumer might be events, and we could also solve events on our own |
| 16:52 | <annevk> | aklein: I got the impression there was not sufficient need to add it as a primitive to the core language |
| 16:52 | <annevk> | aklein: and so browsers wouldn't ship it |
| 16:53 | <aklein> | annevk: huh, I wonder if that's what you took away from our conversation |
| 16:53 | <annevk> | aklein: could be or maybe from Domenic, my memory is not super clear on it so maybe I'm just wrong |
| 16:54 | <aklein> | annevk: myself, as an implementer, I'm certainly cautious to add new core things to the language. but I think there is still interest in the committee, including at least one implementer |
| 16:54 | <annevk> | (not that memory is ever clear...) |
| 16:55 | <annevk> | aklein: okay, I have been blocking a bit on it in DOM as well as earlier indications TC39 might do some event thing (that was long ago though), but nothing materialized thus far and it does seem nice to make the event API a little better soonish |
| 16:56 | <annevk> | aklein: we got most of jQuery covered |
| 16:56 | <aklein> | annevk: Jafar is the person to talk to about whether it's dead or not. he hasn't been able to make it to the last few meetings, so it keeps getting dropped off the agenda. |
| 16:57 | <aklein> | annevk: but this cancellation is indeed an interesting place to re-raise the event question |
| 17:06 | <annevk> | aklein: it's somewhat problematic that stuff needs to be actively lobbied through a committee and host concerns are generally not cared much for |
| 17:09 | <annevk> | I guess that's too unspecific, but I've noticed this with jobs, SharedArrayBuffer (see what's an agent?), and maybe also things like observables |
| 17:09 | <annevk> | You really can only make a case when you're in the room or have someone in the room that knows the full argument |
| 17:27 | <annevk> | Domenic: I guess the silver lining is that even though I based things on settings objects, what I wrote down is easily convertible and more accurate in the worker edge cases (I think!) |
| 17:28 | <annevk> | Domenic: but with awb's comment I'm becoming somewhat surprised I've led myself be deluded that much, since I was involved in a bunch of the previous discussions |
| 17:37 | <Domenic> | annevk: awb's comment seems about right to me. In particular the "The realms in the set are private to the Agent and may not be accessible to any other agent." seems to break the 1:1ness |
| 17:37 | <Domenic> | (as I expected) |
| 17:46 | <annevk> | Domenic: yeah, I guess I just thought when lth told me that they revamped the whole concept somehow |
| 17:46 | <annevk> | Domenic: anyway, glad I filed the bug |
| 17:47 | <Domenic> | yeah, agreed |
| 17:48 | <annevk> | Domenic: I also like awb's suggestions of actually defining the internals in much more detail |
| 17:48 | <Domenic> | yeah honestly i thought at least some of those were already defined but i guess i haven't read the agents spec recently |
| 17:48 | <smaug> | it sounds like people have great misunderstanding about passive listeners |
| 17:49 | <smaug> | that they somehow magically make performance good everywhere |
| 17:50 | <Domenic> | I wonder what the source on https://twitter.com/antimattur/status/851850917662117888 is |
| 17:53 | <annevk> | smaug: oh my, not totally unexpected, but still |
| 17:58 | <annevk> | Domenic: let me know when you find it |
| 18:04 | <aklein> | annevk: I don't think there's any general fix here. cross-cutting concerns are cross-cutting. this comes up in plenty of places other than ES <-> HTML/DOM |
| 18:52 | <aklein> | annevk: in this case, I suspect that Lars's "document" just doesn't match your concept of "document". need to go catch up on the thread |
| 19:52 | <annevk> | aklein: I recommend reading the jslang backlog, we discussed it in depth |
| 20:01 | <aklein> | annevk: yeah, I see that this conversation is split across several media |
| 20:12 | <aklein> | annevk: having read all that, still seems like this is a miscommunication, not a fundamental flaw. hopefully the github issue will help sort out the communication issues |
| 20:13 | <Domenic> | yes, i am also leaning toward miscommunication |
| 21:57 | <Domenic> | TabAtkins or anyone: is there no default "W3C" boilerplate? In particular I am pretty sure CC0/OWFa is not correct when I put "Group: W3C" |
| 21:57 | <TabAtkins> | There is not, no. |
| 21:58 | <TabAtkins> | So you're just getting the default boilerplate with that group. |
| 21:58 | <Domenic> | hmm so if i want to write a spec without a group i need to submit a bikeshed PR for that group adding all the boilerplate? :-/ |
| 21:58 | <TabAtkins> | (There's no such thing as a generic W3C spec; everything's produced under a group.) |
| 21:59 | <Domenic> | s/"without a group"/for a group that isn't in Bikeshed's tree yet |
| 21:59 | <TabAtkins> | Nah, you can add the boilerplate locally in your spec folder. |
| 21:59 | <Domenic> | Well OK, that's slightly better, but still a lot of yak-shaving |
| 21:59 | <Domenic> | I guess I don't have any better suggestion though, just complaints |
| 21:59 | <TabAtkins> | It's... the minimum amount to actually publish a valid W3C spec? |
| 22:00 | <Domenic> | I guess the issue is I don't want to publish a valid W3C spec at this point, I just want to publish something that isn't under a license that'll get me in trouble. |
| 22:00 | <Domenic> | (in trouble when I do want to go through all the work of actually publishing, that is) |
| 22:00 | <TabAtkins> | Swap out the copyright.include locally, then. Just put in an "all rights reserved" or something for now. |
| 22:00 | <jyasskin> | Domenic: Which group is it in? Can you use WICG? |
| 22:00 | <TabAtkins> | Always easy to loosen things. |
| 22:00 | <Domenic> | jyasskin: web payments |
| 22:00 | <Domenic> | TabAtkins: copyright.include, roger roger. |
| 22:01 | <TabAtkins> | Domenic: And you can do that actually inside your spec. |
| 22:01 | <TabAtkins> | <div boilerplate=copyright>All rights reserved</div> should work. |
| 22:07 | <Domenic> | Seem to be in good shape. Thanks as always for the help. |
| 22:12 | <Domenic> | TabAtkins: wasn't there a way to tell Bikeshed how much indentation I plan on using? Can't find it searching for "indent" in the docs |
| 22:53 | <TabAtkins> | Domenic: Ah, hm, it's not documented. It's "Indent: <integer>" |
| 23:06 | <weinig> | Domenic: have a moment for a question or two about the new extended attributes on types in WebIDL? |
| 23:06 | <weinig> | might be the wrong dominic :( |
| 23:07 | <weinig> | nope, got it right! |
| 23:09 | <weinig> | basically, the question is, int the case of something like |
| 23:09 | <weinig> | [Clamp] attribute long foo; |
| 23:10 | <weinig> | should the [Clamp] be in annotated type of foo |
| 23:11 | <weinig> | The https://heycam.github.io/webidl/#idl-type-extended-attribute-associated-with algorithm stiplilates that is should for union, argument, dictionary and typedef productions, but not for attributes |
| 23:12 | <weinig> | tobie: perhaps you know |
| 23:27 | <Domenic> | weinig: back from dinner! Let's see |
| 23:27 | <weinig> | Domenic: hi there |
| 23:27 | <Domenic> | weinig: so the idea is that that is now an error since [Clamp] cannot be used except on types. We need to go update all the specs to do attribute [Clamp] long foo; |
| 23:27 | <Domenic> | I'm sorry we didn't do that immediately :( |
| 23:28 | <weinig> | Domenic: ok, I’m not sure there are any |
| 23:28 | <Domenic> | I think there might be some for [TreatNullAs], but yeah, I guess it is kind of rare in general |
| 23:28 | <weinig> | Domenic: I couldn’t immediately find any use like that in real use, only our tests |
| 23:28 | weinig | nods |
| 23:28 | <Domenic> | The more common case is [X] optional Y -> optional [X] Y |
| 23:28 | <Domenic> | in arguments lists |
| 23:29 | <weinig> | yes, is that still allowed? |
| 23:29 | <Domenic> | No, optional is an annotation on the type, so it needs to become optional [X] Y |
| 23:29 | <tobie> | Domenic was too fast for |
| 23:29 | <tobie> | me. |
| 23:29 | <tobie> | :) |
| 23:30 | <weinig> | Domenic: oh i see, so step 4 of https://heycam.github.io/webidl/#idl-type-extended-attribute-associated-with, is only refereing to the non-optional variant of the argument production |
| 23:30 | <weinig> | ok |
| 23:31 | <Domenic> | Yeah, I guess "within" is ambiguous between "directly within" and "within after expanding the grammar" |
| 23:31 | <weinig> | Domenic: I was a bit confused :) |
| 23:32 | <Domenic> | Let me file an issue and fix over the next day or two |
| 23:32 | <weinig> | Domenic: thanks |
| 23:34 | <Domenic> | https://github.com/heycam/webidl/issues/341 |
| 23:35 | <weinig> | the other question was what step 3 of that algorithm is trying to do, does it mean that for something like [Clamp] long or DOMString) , the longs annotated type might have [Clamp]? |
| 23:35 | <weinig> | or am I reading that totally wrong |
| 23:36 | <Domenic> | I think the intention is that [Clamp] (long or double) means that the long has a [Clamp] associated with it |
| 23:36 | <weinig> | Domenic: ok, |
| 23:36 | <Domenic> | I hope the parens are required when defining union types... |
| 23:36 | <weinig> | oh damn, I forgot a ( |
| 23:36 | <Domenic> | ah yes they are, phew |
| 23:36 | <weinig> | Domenic: they are, I just mistyped :( |
| 23:36 | <Domenic> | It'd be good to add examples to each of these steps, actaully |
| 23:37 | <weinig> | I am unclear how that doesn’t lead to an error case however, since the [Clamp] would get added to double as well, which is not allowed |
| 23:37 | <Domenic> | Oh, I forgot where clamp is allowed |
| 23:38 | <Domenic> | OK, integer types only, so I guess... there is no good example for clamp at least |
| 23:38 | <weinig> | Domenic: just integers |
| 23:38 | <Domenic> | Yeah and you can't put two integers in a union I am pretty sure |
| 23:38 | <weinig> | right, or two strings |
| 23:39 | <Domenic> | so i guess that step is pretty much dead code given the current set of extended attributes applicable to types |
| 23:39 | <weinig> | I guess, maybe in the future, there will be an extended attribute useful on all types :) |
| 23:39 | <Domenic> | But it will be very important for [AllowShared] |
| 23:39 | <Domenic> | Because then [AllowShared] (ArrayBuffer or Uint8Array or ...) will work |
| 23:39 | <Domenic> | We will likely typedef that to SharedBufferSource |
| 23:39 | <weinig> | cool beans |
| 23:39 | <weinig> | thanks, this really helped clarify things |
| 23:40 | <Domenic> | Awesome, glad to help. I'll do my best to reflect these things back into the spec ASAP. (And also update specs to use the new syntax.) |
| 23:54 | <MikeSmith> | howdy weinig! |
| 23:55 | <weinig> | hi MikeSmith! |
| 23:55 | <weinig> | MikeSmith: gotta run though :) |