2020-03-02 [05:34:51.0000] annevk: hi! [05:38:32.0000] hey yhirano; hoping to look at things today [05:38:42.0000] still catching up as you might have noticed šŸ™‚ [05:39:10.0000] annevk: thanks. [05:39:14.0000] annevk: reg: https://bugs.chromium.org/p/chromium/issues/detail?id=887967#c29 [05:39:48.0000] annevk: do you want me to upload every wpt update to wpt github repo? [05:41:19.0000] yhirano: apologies, that comment was wrong [05:41:32.0000] yhirano: I'll apologize there as well, I somehow missed you were updating wpt tests [05:41:38.0000] annevk: i see thanks [07:42:33.0000] yhirano: any chance a Googler could do some initial passes on COEP reporting changes? [07:43:03.0000] yhirano: I feel like I've done quite a bit of review on those already 2020-03-03 [21:22:18.0000] annevk: Thank you for the review. [21:22:29.0000] annevk: sure > reporting changes [09:02:58.0000] jgraham: (and others) is it "also specification- and testing-wise" or "also specification and testing-wise" or even "also specification-wise and testing-wise"? [09:51:10.0000] The first one looks weird the second one sounds weird [09:51:22.0000] Might just be the first one without the dash after specification [09:58:14.0000] I'm pretty sure the first one is correct [10:15:12.0000] Some random page on the internet claims it's technically correct, but little used. So as a descriptivist that sounds like "incorrect" to me :p [10:23:24.0000] jgraham: share pretty please? (I ended up avoiding it, but it's the way you'd write it in Dutch so I'd like to read more out of curiosity.) [10:24:39.0000] https://www.gsbe.co.uk/grammar-the-hyphen.html [10:26:54.0000] Wow hyphens are stupid complicated https://www.grammarbook.com/punctuation/hyphens.asp [10:27:03.0000] "Hyphenate all compound numbers from twenty-one through ninety-nine." [10:27:13.0000] "Hyphenate all spelled-out fractions. But do not hyphenate fractions introduced with a or an." [11:40:44.0000] I mean half of these things are made up "rules" that don't match what actual people do [11:42:42.0000] (not those ones specifically which I haven't read but style/grammar guides in general) [12:01:24.0000] I definitely do the one- and two-thirds thing, because that's different than one and two-thirds. But one third by itself seems fine to me. [12:26:46.0000] Yeah, I consistently do the trailing-dash when I'm breaking a hyphenated compound across a conjunction. [12:30:43.0000] but I wouldn't have used the hyphen in trailing dash there :) [13:52:31.0000] hyphenating them into a phrase; there's an implicit "trailing-dash technique" there 2020-03-04 [07:50:17.0000] Domenic: I will do the top-level origin keying tomorrow [07:50:28.0000] annevk: awesome, thanks! [07:50:52.0000] (I'd tell your colleague directly but I'm not sure we share a chat channel) [07:53:02.0000] Yeah, I'll relay [07:54:20.0000] šŸ‘šŸ» [10:07:52.0000] Maybe I'm missing something, but it seems like if an HTML byte stream starts with a BOM but has a meta charset with a different encoding, document.characterSet should be the encoding given in the meta charset. [10:08:07.0000] All three main browser engines give the "right" result instead. [10:09:32.0000] andreubotella: BOM ought to win [10:10:11.0000] andreubotella: there are some HTML <> Encoding issues, but thought this was not one of them [10:10:32.0000] This is one of them. https://github.com/whatwg/html/issues/1077 [10:10:57.0000] Also my dupe, https://github.com/whatwg/html/issues/1910, which IMO states the problem nice and clearly (since I wrote it ;)) [10:11:30.0000] Ah, ta [10:11:51.0000] And my preferred fix: https://github.com/whatwg/html/issues/1910#issuecomment-254017369 [10:13:34.0000] Right, I thought if this were a real issue and not me missing stuff, it should've been fixed long ago. [10:16:20.0000] Domenic: hmm yeah we should do something like that [10:16:45.0000] /me wonders if andreubotella is interested [10:16:46.0000] Maybe another task for the wonderful andreubotella? :) [10:20:05.0000] I guess I could have a go at it [10:22:58.0000] šŸ„³ 2020-03-05 [14:05:34.0000] Hi, [14:05:34.0000] My lecturer said today that html is a programming language. Can someone help me find some documents or place in the official documentation where he writes that it is a markup language and contradicts the statement about the programming language? [14:05:48.0000] Thanks [14:26:23.0000] Cienisty: HTML is a programming language [14:26:35.0000] CSS is a programming language too [14:26:54.0000] theyā€™re both declarative programming languages [14:27:14.0000] HTML is also a markup language [14:27:50.0000] itā€™s not an either-or; HTML is both a markup language and a declarative programming language [15:28:10.0000] Or in other words, markup languages (all of them) *are* declarative programming languages. ^_^ 2020-03-06 [00:13:55.0000] MikeSmith, TabAtkins: But I also found something like this: "Languages in which it is impossible to carry out calculations / activities (markup languages like HTML or XML, and formal grammar, for example. BNF), are not considered programming languages." [00:14:46.0000] A lot of people have overly restrictive definitions, yes. [00:15:52.0000] Grammars aren't programming anything, but most definitions of "activities" would actually include html [00:17:49.0000] Do you know any scientific article containing this statement about html and programming? [04:06:21.0000] Cienisty: that statement you made about markup languages is just incorrect, they are programming languages per definition. [04:08:11.0000] Thanks [04:08:45.0000] But do you know any article containg that informatorom? [04:09:01.0000] *information [04:44:08.0000] Cienisty: wikipedia contains it, and article describing declarative programming often use markup languages as example [12:01:47.0000] TabAtkins (or anyone): I see various people talking about select and/or option as replaced elements, but I can't find anything that says that they are replaced. Thoughts? [12:02:12.0000] They are definitely replaced, more so than any other form element. [12:04:06.0000] OK, I am surprised I couldn't find an open bug, but I'll file one. https://html.spec.whatwg.org/#replaced-elements seems to categorize them as widgets instead [12:08:00.0000] https://github.com/whatwg/html/issues/5340 2020-03-07 [19:10:01.0000] Hi! Iā€™m getting familiar with web streams (loving them so far!), and have a question about implementing something for a pipeline. Is this a good place to ask? [01:06:22.0000] computodudo: Wouldn't hurt, but stackoverflow.com might be useful too 2020-03-09 [07:52:01.0000] domfarolino: hi, why doesn't this show up in chromestatus.com? https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/loader/lazy_image_helper.cc?q=LazyLoadImageLoadingAttributeLazy&sq=package:chromium&dr=C&l=120 [07:52:47.0000] oh wait. it does! https://chromestatus.com/metrics/feature/timeline/popularity/2935 [07:55:10.0000] zcorpan: Yep, just found it too. Tis a little buried lol 2020-03-10 [04:59:59.0000] annevk: I didn't realize this yesterday, but html#5342's proxy definition of "length" might be too short and without context, it used to be "string length". [05:15:01.0000] andreubotella: since length was available in HTML I think it's fine for this to use it [05:15:29.0000] andreubotella: (it'll only be used in the context of a string) [05:16:08.0000] annevk: I guess that works [05:17:10.0000] annevk: something else I've come across just now while working on the rest of HTML changes in infra#291 is that the id of infra's length definition is javascript-string-length, not string-length [05:19:34.0000] andreubotella: let me put up a fix for Infra as we should probably preserve both [05:19:54.0000] annevk: ok [05:22:21.0000] https://github.com/whatwg/infra/pull/295 [07:59:23.0000] littledan: the other worrisome thing is adding more complexity to agents without them having been formalized; on the flipside, I do appreciate we're starting these conversations earlier these days as I'm still sour from how SAB went down (also has a flipside, Domenic and I had quite a bit of fun figuring it out) [10:30:44.0000] annevk: I don't understand what you're talking about in https://github.com/w3c/csswg-drafts/issues/4851#issuecomment-597205900 [10:31:10.0000] TabAtkins: one URL for one , so to say [10:31:22.0000] TabAtkins: anyway, it doesn't matter it's not that way [10:31:39.0000] TabAtkins: as it turns out tooling makes it look that way to me, mostly [10:34:22.0000] seeing reminded me to ask...is there a proposal for a element? saw a reference to one in aria-annotations example [10:35:33.0000] a-ja: what's ? [10:37:33.0000] dunno....think it was in example using aria-details for a term and its definition. prolly just a mistake [11:36:50.0000] Hooray for unifying our string definitions [11:36:53.0000] Hooray for Infra [11:40:32.0000] it is interesting to see https://github.com/ricea/websocketstream-explainer (the WebSocketStream thing) happening [11:41:53.0000] I had been (mis)thinking that the Web Socket API was eventually gonna get obsoleted by some combination of Streams with H/2 or H/3 or whatever [11:43:07.0000] so Iā€™d now like to learn why it wonā€™t be, and why itā€™s preferable to build on top of Web Socket [11:44:14.0000] whatā€™s lacking still in the rest of the stack that makes Web Socket still attractive as a basis to build new stuff on top of [11:46:05.0000] I had kind of thought an implicit goal of the newer stuff was to obviate the need for Web Socket going forward, by baking the right capabiities into other core bits [11:47:19.0000] (or if not an implicit goal, at least that from the newer stuff, it would just naturally fall out that Web Socket would not be needed any more) [11:48:46.0000] hmm OK at https://github.com/ricea/websocketstream-explainer I see, ā€œWebTransport will also provide backpressure, and may ultimately supercede this work. In the near future the WebSocket protocol has the advantage that it works on networks that block QUIC, and has much existing deployed infrastructure.ā€ [11:54:49.0000] MikeSmith: right, so WebTransport might obsolete it, but it's a third protocol, which will need its own stack and ecosystem spun up. [11:55:26.0000] MikeSmith: the plan to just use H/2 with streams hit a snag where implementers said actual bidirectional streaming was effectively impossible to implement in their architecture. I think there were also concerns about middleboxes. [11:58:21.0000] aha [11:59:39.0000] yeah that consistently seems to be the problem in general with getting things done in the deployed HTTP ecosystem [11:59:58.0000] (and thanks, for info on both points) [12:00:50.0000] Yeah it seems like even basic streaming uploads (not both directions at once, just both directions period) is getting a lot of middlebox concerns :( [12:04:31.0000] geez [12:08:06.0000] I guess Web Socket was architected pretty well, as as far as hitting the sweet spot for what was practical to get into implementations and for adopters to actually be able to use [14:25:40.0000] Turns out HTTP is hard [16:23:27.0000] Hi guys, could you please someone revert https://wiki.whatwg.org/index.php?title=MetaExtensions&diff=10289&oldid=10280? It adds redundant/duplicite keyword without specification [16:24:57.0000] Or move it to other (failed/incomplete) sections in that page 2020-03-11 [01:55:29.0000] https://github.com/whatwg/dom/issues/844 is great <3 [02:19:40.0000] annevk: yeah, for real [09:19:57.0000] Domenic: where do the names in https://github.com/whatwg/participate.whatwg.org/blob/master/config.json come from? [09:20:15.0000] Domenic: e.g. "Console APIs" is not a thing we use elsewhere [09:21:05.0000] annevk: that is weird. They came from an initial draft of the Participant Agreement that the lawyers/SG put together I think. [09:21:55.0000] Domenic: okay, maybe I should do more digging, but they are out-of-sync with Workstreams.md [09:22:18.0000] Domenic: I was using that data to generate Workstreams.md and got these weird subtle differences [09:22:27.0000] Yeah, updating them seems totally reasonable [09:24:43.0000] Domenic: I guess I'll consider Workstreams.md authoritative; especially if you copied them from an early draft, I remember canonicalizing those at some point [09:24:58.0000] /me leaves a comment in the relevant issue as well for good measure [09:25:39.0000] Workstreams.md also matches https://spec.whatwg.org/ it seems so that seems like a good call [09:26:09.0000] And from a spot-check of the suspicious ones it matches the

s and s too. [09:26:40.0000] <annevk> Well technically spec.whatwg.org only lists standards, not workstreams [09:27:01.0000] <annevk> (as it probably should) [09:27:27.0000] <Domenic> Fair enough [16:32:20.0000] <Bakkot> anyone offhand have a link to the part of the spec that says that `fetch('https://š•¬.com')` fetches `a.com`? [16:32:28.0000] <Bakkot> I am having trouble figuring out why that happens 2020-03-12 [17:14:36.0000] <andreubotella> Bakkot: I suspect it's part of https://url.spec.whatwg.org/#concept-domain-to-ascii [17:15:40.0000] <Bakkot> neat, thanks andreubotella [18:57:39.0000] <Krinkle> Bakkot: it would appear that opening that url in Firefox, also shows the address bar normalising to https://a.com which suggests it is not limited to fetch() itself. [18:58:06.0000] <Bakkot> Krinkle: yeah, sorry, was asking about domain name normalization in general [19:03:37.0000] <MikeSmith> I know myself from experience that starting with a specific information need like that, it can often be pretty hard to figure out which spec defines it, and which specific part of that spec [19:04:05.0000] <MikeSmith> the style in which the specs are written doesnā€™t make it very easy [19:05:06.0000] <MikeSmith> not that Iā€™m complaining; I actually like the way the Fetch and URL and Encoding specs are written, compared to how most other specs are written, or even compared to how the HTML spec is written [19:08:17.0000] <MikeSmith> but I think some cases, even an implementor who wrote browser code based on the specs would not be able to tell you which spec some part is defined in, and which specific part of that spec [19:10:16.0000] <MikeSmith> I mean, they would not be able to tell you afterwards, some time later after they had gone through writing the code, and needing to look back [20:52:00.0000] <MikeSmith> https://github.com/tabatkins/bikeshed/issues/1138#issuecomment-597959694 šŸŽ‰ [07:04:15.0000] <annevk> hurray, everyone is wasting a lot of time on meaningless upstream changes from Python [07:14:04.0000] <MikeSmith> yeah, and more to come [07:14:40.0000] <MikeSmith> not sure what the alternative is, as far as dealing with whatā€™s been handed to us [07:57:08.0000] <Domenic> Use Node.js instead! [08:17:52.0000] <jgraham> The node ecosystem is famous for never breaking anything! [08:18:48.0000] <jgraham> But, yeah the terrible disregard for backward compatibility in Python is distressing [08:32:21.0000] <Domenic> When Node core breaks things it's almost always by mistake. And third-party packages are pretty good about using semver. But the recent culture of reporting "security vulnerabilities" because you used a regex with backtracking or an object instead of a Map is causing a lot of upgrade churn, I admit. 2020-03-13 [02:38:56.0000] <JakeA> I'm playing around with the storage access API, and it just seemsā€¦ totally broken. Am I holding it wrong? https://static-misc-2.glitch.me/storage-in-iframe/ [02:39:30.0000] <JakeA> In Firefox, there appears to be _no change_ after calling `requestStorageAccess`, other than `hasStorageAccess` now returning true [02:40:05.0000] <JakeA> IDB, localstorage, cache storage, service worker, are not double keyed to begin with [02:40:32.0000] <JakeA> Cookie setting via JS appears to be a no-op before and after `requestStorageAccess` [02:44:33.0000] <JakeA> Actually, I'm wrong on the cookie thing. Cookies are not double-keyed/blocked either [02:48:22.0000] <annevk> JakeA: it seems weird that hasStorageAccess returned false before if there was no change, file a bug on that? [02:48:38.0000] <annevk> JakeA: I suspect the general issue is that Firefox only uses this API for domains categorized as trackers [02:48:54.0000] <annevk> JakeA: which makes it harder to test [02:49:17.0000] <JakeA> annevk: Maybe. Safari's behaviour seems nonsensical here too fwiw, but in exciting different ways. Maybe if there was a specā€¦ [02:49:38.0000] <annevk> JakeA: afaik Safari only flips cookies from blocked to non-blocked [02:50:06.0000] <annevk> JakeA: no disagreement there [02:50:45.0000] <annevk> JakeA: I've been trying to figure out a way forward, but it's rather hard given all the constraints everyone has and all the weird hacks that have been piled on to date [02:51:17.0000] <JakeA> annevk: Safari seems weirder than that. If I get storage access, setting cookies still fails, unless I also set the cookie in the top level page, _then_ the iframed page can also set cookies [02:51:19.0000] <JakeA> So weird [02:52:42.0000] <annevk> šŸ˜ž [02:52:51.0000] <JakeA> I'll ping Joh about it [02:52:56.0000] <JakeA> um, John* [03:03:17.0000] <JakeA> annevk: filed https://bugzilla.mozilla.org/show_bug.cgi?id=1622212. Dunno if it's in the right component [03:04:28.0000] <annevk> JakeA: thanks, has the right triage owner so that'll be fine [03:06:52.0000] <JakeA> annevk: While you're here, do you know anyone at Mozilla that'd be interested in chatting about <portal>? I'm working on making it requestStorageAccess friendly, and trying to persuade Chrome folks to strongly align it with bfcache. [03:09:22.0000] <annevk> JakeA: https://github.com/mozilla/standards-positions/issues/157 suggests dbaron has thoughts (not necessarily positive) [03:13:52.0000] <JakeA> The "not explained enough" thing is totally fair, and that's what I'm trying to fix. I guess I'd rather this was designed across browsers rather than it being Chrome-only design and other vendors getting a binary choice. [09:36:02.0000] <annevk> Domenic: I'm a bit worried about using "obtaining an agent cluster key" for the cache key as we don't want that to change based on COOP+COEP [09:36:29.0000] <annevk> Domenic: we should probably have a "obtain a site" algorithm that it delegates to [09:39:03.0000] <Domenic> annevk: that makes sense [09:45:09.0000] <annevk> Domenic: shall we turn convert-policy into publish-sg-data or some such? [09:45:37.0000] <annevk> hmm, I guess technically we could write a separate python script for the non-markdown stuff [09:45:41.0000] <annevk> maybe that's nicer [10:01:39.0000] <annevk> shu: another way would be SAB -> ABS [10:02:13.0000] <shu> annevk: like as an alias? [10:02:16.0000] <annevk> I'm not sure how strongly I feel about not making constructor-exposure host controlled though [10:02:27.0000] <annevk> shu: I was thinking rename [10:02:59.0000] <shu> well, i guess that doesn't "break" feature detection code but deteriorates existing sites, i guess [10:03:03.0000] <shu> it's a bigger refactor ask [10:09:00.0000] <shu> annevk: btw how do you feature detect COOP+COEP? [10:09:14.0000] <shu> (in the version where SAB isn't gated) [10:14:00.0000] <annevk> shu: self.crossOriginIsolated [10:14:08.0000] <shu> cool thanks [10:14:09.0000] <annevk> shu: https://annevankesteren.nl/2020/01/shared-memory-feature-detection [10:17:15.0000] <shu> i'm also wondering if it's possible to build use counters in such a way so we can gauge risk of eventually making SAB available everywhere [10:17:53.0000] <shu> i guess it'd be a counter that, on either SAB construction or self.crossOriginIsolated, checks if the other was also used in this page load [10:17:57.0000] <shu> not sure if the infra supports that [10:20:01.0000] <shu> annevk: sure, in the spec we can say constructor exposure host-dependent, though of course it'd be nicer for there to be interop here when we launch COOP+COEP [10:21:38.0000] <shu> technically, i'm not very convinced by luke's future-proofing motivation here. i do like the symmetry though [10:23:13.0000] <annevk> shu: that phrase meant to say that I'm okay with adopting what you were (initially) proposing [10:23:36.0000] <shu> ah, okay [10:23:50.0000] <annevk> host is HTML, it'd still be defined [10:24:11.0000] <annevk> it'd require changes to ECMAScript though which is its own hurdle [10:24:14.0000] <shu> annevk: let's circle back on monday, i'm waiting to chat with the wasm team here about what they want to do about WebAssembly.Memory({shared:true}) [10:24:23.0000] <shu> annevk: what needs to change in ecma262? [10:24:34.0000] <annevk> shu: well it currently exposes the constructor [10:24:50.0000] <annevk> shu: that would need to be gated on some host-provided flag, no? [10:24:58.0000] <shu> the conditional removal, because of a host-defined thing, instead of squinting and saying that the host is able to delete stuff already? [10:25:11.0000] <shu> annevk: i'll bring it up at the upcoming meeting [10:25:58.0000] <annevk> shu: I guess there's a question as to how much is not exposed and if you could still get at a SAB if there were something that returned them [10:26:31.0000] <shu> annevk: right, i'm not approaching it mainly as a compat concern [10:26:34.0000] <annevk> as for Wasm.Memory, I was under the impression that was all SAB under the hood [10:26:49.0000] <shu> annevk: the postMessage check is going to remain [10:26:54.0000] <shu> err, s/not// [10:27:00.0000] <shu> i *am* approaching it mainly as a compat concern [10:27:57.0000] <shu> it is SAB under the hood, but IIUC there's no compat concern about making WebAssembly.Memory({shared:true}) always available [10:28:00.0000] <shu> or maybe there's just no research [10:28:22.0000] <shu> maybe the wasm folks have independent reason to want that to be always available [10:29:08.0000] <annevk> I'm gonna be out for two weeks or so, though probably will be mostly at home so might check in from time to time, Luke will (hopefully) take point [10:30:04.0000] <shu> got it [10:40:48.0000] <Domenic> annevk: shu: I don't think it requires ES changes. We just modify https://html.spec.whatwg.org/#creating-a-new-javascript-realm to delete SharedArrayBuffer from the resulting global object. [10:41:37.0000] <annevk> beautiful [10:42:03.0000] <shu> a note on the allowance is probably warranted from the 262 side [16:10:59.0000] <Domenic> nahhhhh [16:11:39.0000] <Domenic> Seems similar to a note allowing running scripts which use the delete operator. Anything configurable is fair game IMO. 2020-03-14 [19:09:32.0000] <MikeSmith> Domenic: about the MDN annos in the HTML spec, what do you think about switching to using JavaScript to position them? [19:10:20.0000] <MikeSmith> I mean rather than doing what we are now, trying to append them to the right node in the generated output at build time [19:11:27.0000] <MikeSmith> specifically we can use getBoundingClientRect().top + window.scrollY to put align them with the actual elements whose dfn they annotate [19:11:59.0000] <MikeSmith> that is how TabAtkins does it in Bikeshed for the Can I Use annos [19:15:20.0000] <TabAtkins> Yeah it's way way easier that way [19:17:09.0000] <TabAtkins> Don't have to worry about using an inappropriate element just so it doesn't autoclose <p>, etc [20:26:44.0000] <MikeSmith> TabAtkins: yeah, exactly [20:27:59.0000] <MikeSmith> in the wattsi code that I wrote for the MDN annotations for HTML, the code for trying to get the annos into the right place in the DOM was by far the mostly time-consuming and un-fun to write [20:28:24.0000] <MikeSmith> and it was the most contentious part of the review process too [23:26:21.0000] <Domenic> MikeSmith: seems pretty bad to make them depend on JS IMO... especially in a spec the size of HTML. I thought we got pretty far in https://github.com/whatwg/wattsi/pull/95. [23:40:14.0000] <annevk> I'm somewhat surprised CSS doesn't have a way to tackle this, has that been discussed? (Not going to solve it for us, but...) [23:42:16.0000] <MikeSmith> Domenic: OK I can look back at that PR [01:42:02.0000] <annevk> MikeSmith: wanna approve https://github.com/whatwg/whatwg.org/pull/305 too? [01:42:16.0000] <MikeSmith> /me looks [01:43:11.0000] <MikeSmith> ah cool yeah [01:45:03.0000] <annevk> The only thing left to do is generate some page that lists the workstreams [01:45:10.0000] <annevk> And I guess link it from places [11:55:51.0000] <TabAtkins> Could I ask for a quick r+ and merge? Obvious markup error in webidl https://github.com/heycam/webidl/pull/853 2020-03-17 [06:39:13.0000] <lgrahl> Hey folks o/ [06:39:23.0000] <lgrahl> Anyone up for a couple of Streams questions? [06:58:21.0000] <lgrahl> Ping, err... Domenic [07:42:12.0000] <miketaylr> (lgrahl: generally it's good to ask the questions, then people can answer them async, when they're around) [07:43:28.0000] <lgrahl> Ok, then I'll dump my questions [07:43:42.0000] <annevk> tobie: heya, if you happen to be around, do you know if there's an issue logged about the HTML diff tool failing? [07:44:01.0000] <Domenic> https://github.com/tobie/pr-preview/issues/51 [07:44:28.0000] <annevk> ah! [07:44:49.0000] <lgrahl> All APIs that I've seen are providing ReadableStream/WritableStream instances do not allow to provide a custom strategy. And I've also seen that WebSocketStream for instance uses a strategy with a desiredSize of 1. [07:44:59.0000] <lgrahl> Since TransformStreams allow to add additional buffering, is it good practice to have as little buffering as possible when exposing a raw transport stream? [07:46:50.0000] <lgrahl> Follow-up question: A TransformStream can safely use the default strategy where the desiredSize is 1 to avoid additional buffering, correct? But this still adds one additional chunk to the total pipeline buffer per additional TransformStream, or not? [08:01:24.0000] <tobie> annevk, Domenic: sorry I missed that issue, though I've been seeing the errors come in. [08:02:04.0000] <Domenic> lgrahl: these questions are too much for my early morning brain. You might be best off filing them on whatwg/streams. I bet ricea knows the answers off the top of his head, when he's awake. [08:09:41.0000] <lgrahl> Domenic: Any chance he'll read it later? :) [08:09:55.0000] <Domenic> I don't think he hangs out in this channel. [08:12:01.0000] <lgrahl> Ok, thanks. [08:52:25.0000] <tobie> Domenic, annevk: this seems to be related to a recent W3C update to TLS 1.3 that Heroku doesn't support. As noted in the issue (https://github.com/tobie/pr-preview/issues/51), I'm out of my depth and unsure how to move forward. [08:52:39.0000] <Domenic> :( thanks for looking in to it... [08:52:54.0000] <Domenic> It's surprising that curl doesn't support TLS 1.3 either [08:56:02.0000] <tobie> Domenic: Yves Lafont is looking into it on the W3C side. [08:56:09.0000] <Domenic> \o/ [08:56:57.0000] <Domenic> Ohhh, I am slightly less confused now, the deprecated versions of TLS are 1.0 and 1.1. [08:57:15.0000] <Domenic> So using TLS 1.3 is being cutting edge, not just non-deprecated. [08:57:20.0000] <tobie> yes [08:57:23.0000] <Domenic> Now it makes more sense why things would break. [09:08:18.0000] <tobie> Alright, annevk, others, this is now fixed (thanks to ylafon) [12:34:37.0000] <lgrahl> Domenic: Perhaps a more simple... well, a question: I'm still confused by the multitude of ways to cancel/close/error a source/sink and I'm very much lost on when to use what. I can controller.close and controller.error a source but I can only controller.error a sink. Why is that? [12:35:51.0000] <Domenic> lgrahl: the user of the writable stream sends the close signal. [12:36:01.0000] <Domenic> Whereas the creator of the readable stream sends the close signal. [12:38:28.0000] <lgrahl> I'm not sure I understand, yet. Consider wrapping a WebSocket. I get a close event. What do I need to do? Should I error the sink (and why)? Should I close the source (probably)? [12:39:05.0000] <lgrahl> Should I error the source if event.wasClean is false? [12:44:04.0000] <lgrahl> And should I error the sink if event.wasClean is false? I mean I've read through the spec but I still don't really understand what parts of the close signal of a bidirectional transport need to go where after having split it into a readable and writable side. [12:47:52.0000] <lgrahl> (Btw. this seems like a common issue for stream APIs. Python's asyncio also makes cancellation complicated when having split a transport into a StreamReader and StreamWriter. Unfortunately, I don't have a good solution other than good docs with good practices.) [12:51:29.0000] <lgrahl> Domenic: ^ [12:52:18.0000] <Domenic> lgrahl: the close event comes from the server? Then yes, that's an error. You can no longer write, even though the user of the writable stream did not call writer.close(). [12:52:48.0000] <Domenic> https://streams.spec.whatwg.org/#example-both [12:53:46.0000] <Domenic> (Hmm, that example seem to overwrite onclose a few times, probably should be using addEventListener.) [12:54:05.0000] <lgrahl> Yeah, I noticed that, too. Sorry for not having filed an issue. :) [12:55:10.0000] <lgrahl> The thing is that I don't really see that this needs to be an error. Why can't the server close the connection intentionally? If the writer doesn't have any queued writes, this should not be an issue. [12:57:54.0000] <lgrahl> Domenic: Okay, so, maybe I'll try to point to different things in the example instead: For the source, shouldn't it also check for event.wasClean and controller.error if it's false? [12:58:18.0000] <Domenic> It is always an error in the streams contract when you can no longer write despite never having called .close() [13:00:30.0000] <lgrahl> Hrm, I guess that makes sense. [13:02:52.0000] <lgrahl> Domenic: In WebSocketSource, should `this._ws.onclose = () => controller.close();` not be `this._ws.onclose = (event) => { if (event.wasClean) { controller.close() } else { controller.error(...) } };`? [13:07:46.0000] <lgrahl> In WebSocketSink, I don't understand why onclose is being rebound to null if the error event fired. [13:08:35.0000] <lgrahl> And then, finally, in WebSocketSink's abort method, should it really wait until closed? [13:11:09.0000] <Domenic> lgrahl: I really have a hard time doing these sorts of evaluations synchronously while also doing my other work. I hope you can take these questions to the issue tracker to allow myself and others to better process them. [13:13:37.0000] <lgrahl> Domenic: Will do. Sorry - I know how hard it can be to get into a flow. :) [13:13:45.0000] <Domenic> :) [13:59:08.0000] <annevk> tobie: thanks so much! 2020-03-18 [20:40:41.0000] <sky> any autofill gurus around? [20:40:56.0000] <sky> have random element getting a Zip code autofilled. has no clear link that I can understand [20:41:32.0000] <sky> need suggestion on how to make it not guess unrelated field is zip code [20:42:18.0000] <sky> has none of the autofill tokens [20:56:27.0000] <sky> so I even set the element to autocomplete="off" and it still fills in zipcode [04:41:09.0000] <annevk> Does anyone know where WebAssembly.Memory({ shared: true }) is defined? [04:46:12.0000] <annevk> I guess it's part of https://github.com/WebAssembly/threads but the corresponding https://webassembly.github.io/threads/ doesn't seem to have the js-api and web-api patches [04:53:56.0000] <annevk> /me files https://github.com/WebAssembly/threads/issues/151 [16:12:27.0000] <eeeps> Fun typo: "you a sniffing" in the last sentence of the last bullet point here https://wiki.whatwg.org/wiki/Why_not_conneg#Negotiating_by_format (hsivonen must have been dictating?) 2020-03-19 [09:06:30.0000] <bkardell> hey @Domenic - could you help me figure out the number and order of pulls and tests that we need in order to get this interface name changed? [09:09:43.0000] <bkardell> I'm happy to do whatever, but it feels like we are going in circles a little and while I'm sure we can work through it, I'm unsure how. The changed `HTMLOrForeignObject` interfafce name isn't 'observeable', but the things that reference it are and have impacts. There seems to be confusion, at least for me, about how to resolve this appropriately... would appreciate any guidance [09:16:22.0000] <Domenic> bkardell: it sounds like you need to do a PR to change tabIndex's behavior on HTMLOrSVGElement first. [09:21:53.0000] <bkardell> Domenic: so... first a pull that adds the tabIndex behaviors for links in MathML Core, very like the one reviewed earlier, right? [09:22:08.0000] <Domenic> bkardell: no, to HTML [09:22:58.0000] <Domenic> bkardell: i.e. pull out https://github.com/whatwg/html/pull/5248/files#diff-36cd38f49b9afa08222c0dc9ebfe35ebR74621 into a separate one-line PR, with its own issue template, which can have its own implementer-support debate with rniwa. [09:23:36.0000] <bkardell> that is what I meant - that behavior is decided by mathml core, based on your questions [09:23:45.0000] <bkardell> previously, it basically wasnt specified [09:23:58.0000] <bkardell> ok [09:24:37.0000] <bkardell> will do... just wanted to make sure I didn't send that and someone say "why this?" and we work backwards back to where we were :) [09:29:27.0000] <Domenic> Yeah, I mean, I prefer doing them together, but rniwa seems to feel pretty strongly, I guess because the tabIndex changes are more controversial than anticipated. [09:29:54.0000] <Domenic> (This makes me extra glad we didn't just do the renaming, and used it as an opportunity to get the appropriate scrutiny on the integration!) [09:47:19.0000] <annevk> shu: did you consider deleting SAB on Window only? [09:47:48.0000] <annevk> That TC39 discussion sure is full of confusion btw [10:08:14.0000] <innovati> Is it explained or written anywhere the reasons or motivations or benefits of HTML having tag omission built in? [10:11:06.0000] <TabAtkins> Legacy of extremely old HTML parsers written to be permissive to badly-written HTML, where people thought that tags were formatting commands rather than tree-building instructions. [10:14:43.0000] <annevk> No, it was an SGML brevity feature [10:15:57.0000] <shu> annevk: deleting SAB on window only instead of? [10:16:15.0000] <annevk> shu: we have many globals [10:17:21.0000] <annevk> shu: Window, 3 worker variants, X worklet variants, some WebRTC thing I believe never shipped [10:17:23.0000] <shu> annevk: well i'm not proposing anything for what HTML should do. on 262 i think all we're gonna do is add a sentence that says SAB might not be there [10:17:40.0000] <shu> annevk: oh workers, i see, [10:17:57.0000] <annevk> shu: wait what? I thought V8 was proposing to not expose it? [10:18:19.0000] <annevk> shu: in an HTML issue [10:18:56.0000] <shu> annevk: we are. i'm sorry i misunderstood the globals things [10:19:44.0000] <shu> annevk: the goal here is just backwards compat and i don't have data on what kinds of globals the feature detection code runs on in addition to window [10:19:56.0000] <shu> annevk: i imagine workers would need removal as well [10:20:06.0000] <shu> annevk: worklets, probably not? i just don't have the data though [10:20:37.0000] <annevk> shu: Iā€™m also very surprised Firefox has not had one report of something being broken [10:21:14.0000] <annevk> shu: did you try Firefox Nightly on one of these sites? [10:22:17.0000] <shu> let me see if i have the data to try [10:22:18.0000] <TabAtkins> annevk: I don't think that's right? That's the <foo/> feature. [10:22:34.0000] <TabAtkins> innovati is, I believe, talking about end-tag omission and html/head/body omission. [10:22:42.0000] <annevk> Seems unlikely it would affect service workers [10:22:58.0000] <annevk> TabAtkins: DTDs encoded that kind of stuff iirc [10:23:18.0000] <shu> annevk: the thing is how do i actually check for breakage? [10:23:36.0000] <annevk> TabAtkins: itā€™s not new in HTMLā€5ā€ [10:24:10.0000] <TabAtkins> non sequitur? nobody mentioned it being new. [10:24:23.0000] <annevk> shu: dunno, an ad that stops working seems kinda okay [10:24:37.0000] <annevk> TabAtkins: up until 5 it was SGML-based [10:24:46.0000] <shu> annevk: that is a not a product decision i can make, you know? [10:26:25.0000] <TabAtkins> annevk: Ok, I have no idea what you think you're responding to. [10:26:58.0000] <annevk> That tags being optional is related to bad parsers; it was by design [10:27:13.0000] <TabAtkins> end tags being optional was never an sgml feature [10:27:20.0000] <annevk> Some stuff is related to bad parsers, but not that [10:28:19.0000] <annevk> TabAtkins: thatā€™s wrong [10:28:41.0000] <TabAtkins> SGML had the ability to close a tag with a plain /, but you couoldn't completely omit it afaik [10:28:54.0000] <TabAtkins> p/her'es some test in a paragraph/ [10:30:25.0000] <jgraham> DTDs which afaik are SGML-based can express optional end tags for elements [10:30:55.0000] <annevk> Yeah I recommend reading the syntax section on Wikipedia or some such [10:31:12.0000] <TabAtkins> ah indeed i'm wrong [10:31:14.0000] <TabAtkins> sorry [10:32:06.0000] <TabAtkins> https://en.wikipedia.org/wiki/Tag_omission [10:37:02.0000] <jgraham> SGML very muh had the design philosophy "there should be at least three, and preferably more than three, increasingly non-obvious ways to do it" [10:39:17.0000] <shu> annevk: okay, i don't think there's much value in having SAB omitted from only a subset of globals in html [10:39:41.0000] <shu> annevk: that would be an even weirder transitional state [10:39:55.0000] <annevk> shu: mostly to enshrine the hopefully temporary nature of this [10:40:27.0000] <shu> annevk: fair enough. though to me that enshrining is that you can workaround via wasm [10:40:49.0000] <shu> annevk: i'll raise the question internally [10:40:54.0000] <shu> about e.g. worklets [10:41:04.0000] <annevk> shu: fair, I donā€™t care strongly, was mostly curious [10:41:37.0000] <annevk> shu: btw, do you know why Memory requires maximum when shared is true? [10:41:44.0000] <shu> that i do not [10:42:01.0000] <shu> i've heard that wasm memory have restrictions in general, like alignment and page boundaries and such [10:46:05.0000] <annevk> shu: also, with the 262 ā€œapproachā€ Iā€™m not really sure what HTML should say [10:46:44.0000] <annevk> shu: prose I suppose whenever we create a global that indicates it? [10:47:38.0000] <shu> annevk: i think HTML is safe to go ahead with speccing it as a deletion [10:48:22.0000] <shu> the 262 PR, AFAIU, is only to give allowance for being "conformant" in accordance with that paragraph, even if SAB isn't there, because there're different interpretations of "should all globals be present to be considered conformant" [10:48:31.0000] <shu> which, tbqh for me, is a pedantic non-interesting question [10:51:43.0000] <annevk> Yeah it doesnā€™t help [10:52:40.0000] <annevk> And the continued insistence that host equals implementation also continues to baffle me [10:53:37.0000] <shu> annevk: well, as an editor, i am happy to better define the terms up front [10:53:59.0000] <shu> annevk: what's the language HTML uses to distinguish? [10:57:07.0000] <innovati> Indeed I did mean </foo> and not <foo /> but thanks very much for the replies! very insightful <3 [11:03:27.0000] <annevk> shu: HTML directly targets user agents [11:03:49.0000] <annevk> shu: so implementation-defined is per-user-agent [11:04:53.0000] <annevk> shu: I would expect host-defined things to be consistent across user agents of a given host (unless the host makes it implementation-defined) [11:07:32.0000] <annevk> shu: also, didnā€™t know you were, congrats [11:08:15.0000] <shu> annevk: so the contention has always been that ecma262 can't distinguish implementation-specific and host (upstream spec)-specific observability. the reality is something like, editorially, host-defined means "go read about it upstream" and implementation-defined means "good luck" [11:08:22.0000] <shu> annevk: thanks! [11:08:29.0000] <annevk> (Did notice you resolving one of the event loop integration issues which was nice to see!) [11:08:37.0000] <shu> annevk: yeah sorry that took so long :/ [11:10:09.0000] <annevk> shu: in that case make everything a hook and let upstream decide, but I donā€™t think thatā€™s what implementers want [11:11:03.0000] <annevk> shu: I suspect implementers want some stuff to not be defined and are happy with upstream deciding the remainder [11:11:47.0000] <shu> annevk: correct [11:12:03.0000] <shu> annevk: some things are legit impl-defined, like exponentiation, etc [11:12:05.0000] <shu> NaN bits [11:12:15.0000] <bkardell> dont forget those early sgml ideas are from when memory was extremely precious too ... [11:13:17.0000] <bkardell> the reasoning of something like 'a paragraph, by definition, can not be inside another' so we can save some characters made some sense [11:14:47.0000] <bkardell> /me waded into conversation late, with no good relevant input :-p [11:56:25.0000] <annevk> Some, maybe, but the fact youā€™d need a DTD in order to parse, maybe not from that perspective [12:01:01.0000] <annevk> shu: yeah, that matches my understanding; be great to slowly move things in that direction [13:09:18.0000] <jgraham> bkardell: It did occur to me that if I'd said something mean about SGML in 2007 there would have immediately been a thread on xml-dev complaining about how WHATWG people don't understand CS or something, so compared to thatā€¦ [13:23:54.0000] <bkardell> lol [14:12:10.0000] <annevk> shu: ā€œOr is the confusion perhaps that providing concurrent access is a dynamic property, and not a host property?ā€ Yup [14:13:51.0000] <shu> annevk: ah ha, let me ponder that and try to wordsmith [14:20:33.0000] <annevk> I mean, I guess itā€™s both [15:29:57.0000] <Bakkot> annevk thoughts on changing it to "Hosts are not required to provide the SharedArrayBuffer constructor *in cases where* they do not provide concurrent access to SharedArrayBuffer objects" [15:30:03.0000] <Bakkot> (here "in cases where" has replaced "if") [15:30:08.0000] <Bakkot> unrelated: with CSP, does `strict-dynamic` allow inserting inline scripts? [15:30:17.0000] <Bakkot> chrome and firefox say yes, the spec (afaict) says no [15:30:23.0000] <Bakkot> I asked on the CSP issue tracker as well but I have lost all hope of getting responses to my questions there 2020-03-20 [17:41:48.0000] <MikeSmith> TabAtkins: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)> when running bikeshed update [17:42:18.0000] <MikeSmith> any clues? [17:43:16.0000] <MikeSmith> this is after rebasing my mdn-annotations branch against current master, and fixing python2-isms to be python3-compatible [17:46:14.0000] <TabAtkins> Hm, i'll check [17:53:13.0000] <MikeSmith> TabAtkins: it seems to maybe be a macOS-specific problem [17:53:34.0000] <MikeSmith> Iā€™m using the Apple-installed system Python3 [17:54:00.0000] <MikeSmith> I guess I could try installing python3 from homebrew [17:54:01.0000] <TabAtkins> That would explain why I didn't run into it [17:55:38.0000] <MikeSmith> yeah [18:26:57.0000] <MikeSmith> url in Worker(url) constructor must be same-origin, but where the spec actually state that requirement? [18:27:36.0000] <MikeSmith> from https://html.spec.whatwg.org/multipage/workers.html#dom-worker itā€™s not clear there is a such a requirement [18:27:54.0000] <MikeSmith> just a non-normative note [18:27:57.0000] <MikeSmith> > Any same-origin URL (including blob: URLs) can be used. data: URLs can also be used, but they create a worker with an opaque origin. [18:29:16.0000] <MikeSmith> well there is the SecurityError in the first step, but thatā€™s optional [19:01:27.0000] <MikeSmith> TabAtkins: with python3 installed from homebrew, I donā€™t get that SSL error [19:02:03.0000] <MikeSmith> so I think the Apple-installed Pthonall hope of getting responses to my questions there [19:02:09.0000] <TabAtkins> Interesting, okay [19:03:01.0000] <MikeSmith> (oofs, fat-fingered a copy/paste there; please ignore) [19:03:15.0000] <MikeSmith> to my questions there [19:03:18.0000] <TabAtkins> People always used to have problems with the system version if py2 on Mac too. Word but unsurprising, I guess [19:03:26.0000] <MikeSmith> (dang did it again) [19:04:11.0000] <MikeSmith> TabAtkins: yeah I think there is no system-installed Python3 on macOS, yet [19:04:26.0000] <MikeSmith> it is instead installed by XCode [19:04:57.0000] <MikeSmith> or maybe that was true for Python2 as well, I dunno [19:05:41.0000] <MikeSmith> and in general I think some XCode-installed stuff can break when you also install stuff from homebrew [19:11:46.0000] <MikeSmith> TabAtkins: OK, the SSL thing seems to be a known issue; I found https://stackoverflow.com/a/60334957/441757, which claims ā€œApple will not fix this, because Apple does not think this is a problemā€ [19:11:57.0000] <MikeSmith> see also https://github.com/HandBrake/HandBrake/issues/2216#issuecomment-527114519 [19:13:20.0000] <MikeSmith> apparently whatever Apple person responded to it seemed be saying the solution is to not use urllib but instead use the requests library [19:13:47.0000] <MikeSmith> well, or else explicitly pass cafile to urllib [19:27:24.0000] <MikeSmith> TabAtkins: OK, it can be ā€œfixedā€ by importing certifi and giving a cafile arg to all urllib.request.urlopen calls [19:27:31.0000] <MikeSmith> e.g., urllib.request.urlopen(ghPrefix + "manifest.txt", cafile=certifi.where()) [19:28:56.0000] <MikeSmith> dunno whether itā€™s worth doing that or not, since in the case of XCode-installed Python3, that would require the user to pip install certifi, which I think they need root perms to do [19:29:22.0000] <MikeSmith> but I can make a patch/PR for it anyway [20:58:20.0000] <Domenic> MikeSmith: worker thing looks like a legit bug; may have gotten lost when I tried to allow cross-origin module workers and then annevk undid that. Please file; can fix tomorrow. [21:16:43.0000] <MikeSmith> Domenic: OK, will do ā€” thanks [23:34:46.0000] <annevk> I donā€™t think itā€™s a bug, itā€™s supposed to fail during fetching and does [23:37:09.0000] <annevk> Bakkot: yeah I guess, it still seems really vague to me overall. I guess Iā€™d prefer not doing anything or providing an explicit hook [00:11:21.0000] <MikeSmith> annevk: which spec states that it must fail? Fetch? [00:28:54.0000] <annevk> MikeSmith: yeah, fetch mode is "same-origin" [02:07:30.0000] <annevk> Domenic: https://github.com/whatwg/html/issues/3238#issuecomment-601383619 looks great. Curious though, why not an identifier? Tricky due to IDL's weird identifier rules? [02:35:39.0000] <annevk> Why is CSS Images 4 not a superset of 3? [02:43:49.0000] <gsnedders> annevk: I think all the work is happening in level 3, and level 4 is outdated? [02:44:08.0000] <annevk> gsnedders: not entirely, HTML depends on 4 for something [02:44:22.0000] <annevk> gsnedders: I was looking at https://github.com/whatwg/html/pull/5358 which made me wonder [02:45:12.0000] <gsnedders> ĀÆ\_(惄)_/ĀÆ [03:11:57.0000] <andreubotella> "Outdated" here means that it doesn't yet incorporate all of images-3's changes, right? [03:12:05.0000] <andreubotella> not that it's deprecated or anything [03:12:50.0000] <andreubotella> because on a project for a client of mine I have a tracking bug for images-4 since we could really use object-fit: cover scale-down; [03:13:46.0000] <gsnedders> andreubotella: right, I think it still shows broad ideas for new features in l4, but how stable they are idk [03:14:06.0000] <andreubotella> right [03:14:10.0000] <andreubotella> thanks [05:13:44.0000] <grvpanchal> MikeSmith Framework iterate an array over div using either v-for, ng-for Array.map(). Can there be a rules for iterating on HTML. we have array type HTML elements like ul, ol, dl, table, tr. Something like only those would be used? [05:14:17.0000] <grvpanchal> MikeSmith Can there be new elements for grid layout? [05:23:20.0000] <MikeSmith> grvpanchal: I donā€™t know why you are asking me in particular [05:25:23.0000] <grvpanchal> I saw yor name in w3.org/html/wg/next/markup/ [05:26:33.0000] <MikeSmith> aha [05:26:51.0000] <MikeSmith> that doc is very out of date [05:27:02.0000] <grvpanchal> ohh ok [05:27:31.0000] <grvpanchal> If I have to propose such changes How do I go along? [05:28:21.0000] <MikeSmith> grvpanchal: well these days if you have a problem that youā€™re hoping to solve, the place to post a description of the problem is https://github.com/whatwg/html/issues [05:28:42.0000] <MikeSmith> I donā€™t suggest you start by proposing specific changes [05:28:49.0000] <annevk> grvpanchal: prolly best to start at https://whatwg.org/faq#adding-new-features and https://whatwg.org/working-mode [05:29:45.0000] <MikeSmith> grvpanchal: yeah what annevk said ā€” see step #1 at https://whatwg.org/faq#adding-new-features [05:29:52.0000] <grvpanchal> Thanks MikeSmith annevk [05:32:48.0000] <grvpanchal> I was thinking if there are three different implementation on grid layout i.e. float, display:flex and display:grid. Why not native grid elements that transcend through web component's shadow DOM? [05:33:13.0000] <grvpanchal> what do you guys think? [05:33:49.0000] <MikeSmith> TabAtkins could definitely give some insight on that [05:34:33.0000] <annevk> grvpanchal: it seems that would conflate separation of content and style [05:39:09.0000] <grvpanchal> annevk true I observed that css of user agent stylesheet (http://trac.webkit.org/browser/trunk/Source/WebCore/css/html.css) can transverse shadow DOM. Something similar could be great for grid elements [07:21:00.0000] <Domenic> annevk: a string seems to make a lot more sense as the actual value space we're working in, leaving identifiers for programming-language identifier things. Also, you need to solve http-equiv <-> httpEquiv, and I think [Reflect="http-equiv"] is nicer than [Reflect=http_equiv] with a rule that converts _ to - [07:23:53.0000] <Domenic> Hmm I guess I am wrong about - not being allowed [07:25:18.0000] <Domenic> Enumerated attributes are still really hard though [07:25:47.0000] <annevk> Domenic: because they are case-insensitive and not enums therefore? [07:26:01.0000] <annevk> Domenic: could we (ab)use an enum? [07:26:06.0000] <Domenic> Nah just hard to come up with a data model that expresses all the things that the spec does [07:26:11.0000] <Domenic> And yeah I think enums would be some component of it [07:26:59.0000] <annevk> Domenic: did you consider exposing hooks so the weird cases could be done in prose? [07:27:12.0000] <annevk> Domenic: e.g., the crossorigin funkiness [07:27:14.0000] <Domenic> Yeah, I mean, that could work [07:27:21.0000] <Domenic> Or [ReflectCORS] [07:28:29.0000] <Domenic> I think there are three tiers of them: simple 1:1 keyword:states, many:1 keywords:states (<area shape="">), and CORS settings attributes (one state has no keyword) [07:28:53.0000] <Domenic> (There are others in the second tier besides <area shape="">) [07:29:29.0000] <Domenic> Hmm maybe CORS isn't alone in being weird [07:29:38.0000] <Domenic> translate="" also has a no-keyword state [07:30:00.0000] <Domenic> I dunno, it's doable, not "hard", just a good deal harder. [07:31:20.0000] <annevk> One thing you could decide to not do is states [07:31:55.0000] <annevk> E.g., since <area shape> isn't limited to known values it doesn't really matter [07:32:15.0000] <Domenic> Yeah TimothyGu was suggesting that too [07:32:53.0000] <Domenic> I have a harder time with that since my mental picture of enumerated attributes intimately includes states. But I think you're right it could simplify things a good bit. [07:32:57.0000] <annevk> Because yeah, trying to fit a table structure in there doesn't seem great [07:33:39.0000] <Domenic> However from a code-generator point of view, if not a spec-writing point of view, you kind of want the attribute <-> state mapping to be generated automatically [07:33:53.0000] <Domenic> I guess it doesn't have to be done in IDL, but it sure would be convenient [07:33:58.0000] <annevk> Hmm, this week is clearly not the week I'm getting caught up on COOP/COEP, but I did some bits [07:34:17.0000] <annevk> I guess I'll have a go at updating tests at least for this deleted constructor idea [07:35:12.0000] <annevk> Domenic: we could still do most of that [07:35:35.0000] <annevk> Domenic: each enum value is a state, missing default is a state (unless it's an enum value) invalid default is a state (unless it's an enum value) [07:35:59.0000] <annevk> Domenic: and then in prose we switch on state and group states that are treated equivalent [07:37:52.0000] <annevk> Domenic: you'd have to refactor <area shape> (and potentially equivalent others); CORS requires some additional logic but perhaps most can be shared [07:40:18.0000] <annevk> Domenic: other alternative is to change https://heycam.github.io/webidl/#idl-record and go full on ordered maps šŸ™‚ [07:46:08.0000] <Domenic> Not quite sure how that'd work, but it's early yet :) [07:53:58.0000] <annevk> Ugh, hiding the constructor ends up affecting a lot of tests [08:06:11.0000] <annevk> HMM [08:06:35.0000] <annevk> new WebAssembly.Memory({ shared:true, initial:1, maximum:1 }).buffer.byteLength is? [08:06:57.0000] <Domenic> Didn't we decide there was no spec for that [08:07:13.0000] <annevk> 65536 [08:07:27.0000] <annevk> There kinda is and more importantly it does something in Chrome and Firefox [08:07:36.0000] <Domenic> O_O [08:10:24.0000] <annevk> Maybe it goes per 16 bits of bytes? [08:10:57.0000] <annevk> Seems like it [08:14:44.0000] <annevk> Domenic: not sure how curious you are, but there's https://github.com/WebAssembly/threads/blob/master/proposals/threads/Overview.md#javascript-api-changes and https://github.com/WebAssembly/threads/blob/master/document/js-api/index.bs#L603 (and they're out-of-sync in that one says TypeError and the other RangeError; browsers do TypeError; I filed an issue on that) [08:15:10.0000] <Domenic> Ah OK, it's just the rendered version that you couldn't find [08:16:39.0000] <annevk> And yeah, the numbers are in 64KiB increments [08:18:18.0000] <Domenic> Not quite a full replacement for a SAB then, I suppose [08:18:33.0000] <annevk> Yeah, though I wasn't able to find Overview.md initially either and generally it's just super confusing how everything is organized there [08:19:02.0000] <annevk> Not really, unless you're willing to deal with largish buffers [08:51:55.0000] <shu> annevk: following up on your question yesterday about "what about deleting SAB from a subset of globals", i followed up internally and the feeling is "rather not" [08:52:30.0000] <annevk> shu: mkay, fixing tests seems less trivial in a number of cases than I had hoped [08:52:48.0000] <shu> annevk: also practically, i assume you saw the chrome release freeze? will affect COOP+COEP rollout on chrome's end [08:52:52.0000] <annevk> shu: e.g., Encoding tests rely on not having to set COOP/COEP and using the Wasm hack requires workarounds [08:53:23.0000] <annevk> shu: yeah [08:53:25.0000] <shu> annevk: wait, there are existing single-threaded tests that use SAB? [08:53:36.0000] <annevk> shu: yeah of course [08:53:58.0000] <shu> oh, like, for the pure purpose of testing if the API can work with SAB regardless of headers? [08:54:19.0000] <annevk> shu: yup or throws or whatever [08:54:31.0000] <shu> instead of changing the tests wouldn't it be easier to mock the headers in the test runner? is that possible? [08:54:59.0000] <annevk> shu: https://github.com/web-platform-tests/wpt/issues/22358 has a list of potentially affected tests (though html/ probably not so much if at all) [08:55:08.0000] <annevk> shu: not possible for .any.js tests [08:55:35.0000] <annevk> shu: and we'd also have to change them to force HTTPS in that case [08:55:42.0000] <shu> as an aside what does the .any. mean [08:56:11.0000] <annevk> shu: https://web-platform-tests.org/writing-tests/testharness.html#multi-global-tests [08:56:30.0000] <shu> ah [11:33:04.0000] <annevk> Domenic: btw, since most APIs take a view, the backing buffer being somewhat largish isn't a big deal, though ymmv [11:33:15.0000] <Domenic> Yeah that makes sense [15:38:09.0000] <TabAtkins> MikeSmith: Thanks so much for diagnosing it, I've added a note to the install instructions about it. [15:39:10.0000] <TabAtkins> I'm curious why you say using certifi would require the user to do something themselves and have sudo? I can just pick up more dependencies now, it's not a big deal. [15:39:37.0000] <TabAtkins> (Really, I guess I shoudl rewrite to use requests for more stuff; I'm already using it for some things.) 2020-03-21 [17:46:04.0000] <MikeSmith> TabAtkins: ah yeah if it could be handled like that other dependencies then thatā€™d work great [17:47:19.0000] <MikeSmith> I donā€™t have a strong opinion on urllib vs requests, but if requests comes with SSL root-cert management out of the box, thatā€™s a pretty nice plus [17:48:40.0000] <MikeSmith> as far as urllib, one real-world problem I ran into with it is that it doesnā€™t send and User-Agent header; if you want a UA header, you have to manually add it in your code [17:50:07.0000] <MikeSmith> the specific problem that caused me is, tools.ietf.org apparently persisently blocks IP addresses from which clients that donā€™t send a User-Agent header in requests [17:50:41.0000] <MikeSmith> ...and it keeps the blocking for that IP address in place for a week [17:52:01.0000] <MikeSmith> so I got blocked after running a script I wrote that checks fragment IDs in documents [17:53:54.0000] <MikeSmith> given urllib is intentionally low-level, I guess it makes sense that it doesnā€™t send a default User-Agent header; but itā€™s kind of a surprising gotcha [18:08:06.0000] <gsnedders> post PEP 476 (Py2.7, 3.4, 3.5) urllib.request should do cert validation out of the box by default? [18:08:49.0000] <gsnedders> but in general the recommendation is to use requests in general [18:09:36.0000] <MikeSmith> gsnedders: but urllib needs to have the root certs installed on the system somewhere right? [18:10:19.0000] <MikeSmith> in the case of the XCode-installed Python3, it does not install any certs on the system anywhere [18:10:24.0000] <gsnedders> MikeSmith: yes; do many systems /not/ have certs installed at this point? how many Linux distros don't include ca-certs in their base install? [18:10:38.0000] <gsnedders> MikeSmith: it should just use the system level roots [18:10:50.0000] <MikeSmith> sure, it should [18:10:56.0000] <MikeSmith> but it doesnā€™t [18:11:43.0000] <MikeSmith> I mean, specifically the XCode-installed Python3 doesnā€™t [18:13:11.0000] <MikeSmith> gsnedders: see my summary at https://lists.w3.org/Archives/Public/spec-prod/2020JanMar/0008.html [18:13:54.0000] <gsnedders> https://stackoverflow.com/questions/42098126/mac-osx-python-ssl-sslerror-ssl-certificate-verify-failed-certificate-verify [18:13:59.0000] <MikeSmith> https://openradar.appspot.com/7111585 and https://stackoverflow.com/a/60334957/441757 amd https://github.com/HandBrake/HandBrake/issues/2216#issuecomment-527114519 [18:14:41.0000] <MikeSmith> gsnedders: yeah that is if you install Python yourself from the upstream release distro [18:15:10.0000] <gsnedders> they don't even ship the script to add the certs anywhere? bleh. [18:15:14.0000] <MikeSmith> right [18:15:41.0000] <MikeSmith> they are really going out of their way to eff it up [19:03:53.0000] <devsnek> when there are multiple overrides of a method in webidl [19:04:10.0000] <devsnek> like request(name, options, callback) and request(name, callback) [19:04:16.0000] <devsnek> and a step says "if options was not passed" [19:04:23.0000] <devsnek> what logic is being used to decide if options was passed [19:04:36.0000] <devsnek> the types of the arguments? number of arguments? a combination? [19:17:28.0000] <gsnedders> devsnek: https://heycam.github.io/webidl/#es-overloads [19:17:42.0000] <devsnek> oh my [19:17:51.0000] <gsnedders> probably see the note below the algorithm? [19:18:29.0000] <gsnedders> but in a case like this, it's done based on the number of args [19:18:51.0000] <gsnedders> things get more complicated when you have multiple overloads with the same number of args [19:19:07.0000] <devsnek> yeah as long as the types are different 2020-03-22 [13:16:58.0000] <innovati> Will there ever be self-closing custom elements in HTML? Is that a no, or a not yet? [15:15:47.0000] <MikeSmith> innovati: you mean void custom elements? [15:16:36.0000] <MikeSmith> https://github.com/w3c/webcomponents/issues/624 [15:16:43.0000] <MikeSmith> https://github.com/w3c/webcomponents/issues/113 [15:17:22.0000] <MikeSmith> https://github.com/whatwg/html/issues/919#issuecomment-276329905 [15:59:06.0000] <innovati> @MikeSmith precisely, thanks! <3 [15:59:18.0000] <MikeSmith> cheers 2020-03-23 [19:21:37.0000] <MikeSmith> TabAtkins: so I experimented with replacing the urlib.urlopen calls in Bikeshed with requests.get ā€” and updating the associated response-handling code ā€” and it all worked fine... until I ran into the APIClient() calls, which it seems to run into the same problem that the urllib.urlopen do, if Python canā€™t find the certs [19:22:34.0000] <MikeSmith> I guess thatā€™s probably do to the APIClient() code in the json_home_client library being built on urllib.urlopen [19:22:39.0000] <MikeSmith> *due to [19:24:05.0000] <MikeSmith> so I guess itā€™s not worth changing the code ā€” since the only known environment it causes any real problem in is the XCode-installed Python one [00:23:31.0000] <annevk> Is there an article on why we're not really changing the HTML parser? [00:40:05.0000] <MikeSmith> if there were, I reckon hsivonen would know [02:17:11.0000] <annevk> self.SAB = new WebAssembly.Memory({ shared:true, initial:0, maximum:0 }).buffer.constructor; [02:17:25.0000] <annevk> (credit: Adam Rice) [08:32:30.0000] <TabAtkins> @MikeSmith: thanks for the effort. You still got the code around? I'm amenable to switching anyway, and can ping plinss about switching json_home_client [09:59:18.0000] <MikeSmith> TabAtkins: yeah Iā€™ll make a patch and submit a PR ofr it [10:00:43.0000] <TabAtkins> danek [10:02:11.0000] <MikeSmith> hey by the way, Iā€™m done futzing with https://github.com/tabatkins/bikeshed/pull/1564 (the MDN annotations PR) ā€” so can be reviewed without worry about me changing anything out from underneath it during review [10:03:06.0000] <shu> annevk: oh cool [10:03:14.0000] <shu> (the workaround) [10:07:12.0000] <TabAtkins> MikeSmith: I'm reviewing it literally right now, so nice. ^_^ [10:08:34.0000] <MikeSmith> heh :) [10:08:35.0000] <MikeSmith> cheers [10:24:51.0000] <TimothyGu> Something I never understood. Why do promise tasks have to run at a high priority than regular tasks (and hence be microtasks)? [10:50:10.0000] <TabAtkins> Chaining off a promise feels "almost synchronous", especially when `await` is used. Pumping the normal queue in between code split by a promise was seen as likely to result in bugs. [10:52:22.0000] <annevk> TimothyGu: initially we got mutation observers, which were a bit less sync than mutation events, but still sync enough to not let a lot of other code run in between [10:52:59.0000] <annevk> TimothyGu: and I think promises wanted similar timing as they used mutation observers and such as workarounds [10:53:30.0000] <annevk> TimothyGu: perhaps also because often a promise is resolved as the result of a task, if it would then take another task you'd get a lot of delay [10:57:26.0000] <TimothyGu> annevk: is mutation event totally sync? [10:58:11.0000] <annevk> TimothyGu: yeah, see also https://github.com/whatwg/dom/issues/305 [11:01:16.0000] <TimothyGu> Okay, I see [11:17:08.0000] <Domenic> My point of view is that chaining off a resolved promise should be zero-cost. I.e. a 1000-deep resolved promise chain should be as fast as a `for (let i = 0; i < 1000; ++i) { /* do nothing */ }`, modulo extra GC pressure. Microtasks allow this in theory, while tasks do not. This gets you close to "zero-cost abstraction". [11:17:11.0000] <Domenic> However, implementations seem to be unable to achieve this, mostly because of JS/C++ transitions and difficulty inlining. [11:18:03.0000] <Domenic> And I suppose it doesn't help that I made promises unnecessarily complicated to support subclassing. Although implementations have done some heroic fast-paths to get around that, at least. [11:53:00.0000] <annevk> Subclassing had a lot of hype but little payoff thus far [15:26:22.0000] <Domenic> annevk: https://chromium-review.googlesource.com/c/chromium/src/+/2116833 (should show up on WPT side soon) would welcome your review, either on WPT or Chromium repos. I also added you as an owner for the directory. (dtapuska fixed the message vs. messageerror bug so I can write WPTs now!) 2020-03-24 [18:32:48.0000] <Krinkle> Do we allow browsers to suspend execution between microtasks? E.g. to keep the main thread responsive. I'm guessing the answer is 1) Yes, so long as it doesn't end up executing user-land JS during the suspension and 2) If the browser needs to do work to keep the UI responsive that doesn't require calling JS, it should already be just not doing that on the main thread anyway. [18:32:51.0000] <Krinkle> is that right? [20:48:30.0000] <MikeSmith> Domenic: do you know if the WHATWG review-draft builds for Bikeshed spec use the ā€œSlim Buildā€ option? [20:56:13.0000] <MikeSmith> TabAtkins: are the cases where the ā€œSlim Build Artifactā€ option gets set internally, due to other options being set? [20:56:28.0000] <MikeSmith> I guess I just need to look at the source to see [20:56:48.0000] <TabAtkins> It's a metadata used just by the review drafts [20:56:56.0000] <MikeSmith> oh [20:57:32.0000] <MikeSmith> I donā€™t see where the review drafts builds explicitly set it [20:57:36.0000] <TabAtkins> Specifically to exclude a bunch of stuff to make them both slimmer and more about to use [20:57:50.0000] <TabAtkins> It's probably in the makefile [20:57:55.0000] <MikeSmith> looking at https://github.com/whatwg/whatwg.org/blob/master/resources.whatwg.org/build/deploy.sh [20:58:12.0000] <MikeSmith> ah yeah I need to look at the makefile too [21:00:13.0000] <MikeSmith> Iā€™m still not finding it; I guess thereā€™s just something Iā€™m missing [21:00:54.0000] <TabAtkins> Hmm, yeah, not sure either [21:01:04.0000] <TabAtkins> That's definitely what I added it for tho [21:01:17.0000] <MikeSmith> yeah, certainly makes sense [21:01:37.0000] <MikeSmith> OK, well, anyway, I think most likely that Bikeshed code I added for ensuring the data-mdn-for attributes get preserved, that came from testing with the DOM spec review-draft build [21:02:22.0000] <MikeSmith> ...because the W3C MoU explicitly requires the W3C review drafts to have annotations [21:04:25.0000] <MikeSmith> TabAtkins: I see it set in bikeshed/boilerplate/whatwg/defaults-RD.include [21:04:51.0000] <MikeSmith> so I guess the WHATWG review drafts use "RD"? [21:05:10.0000] <TabAtkins> Ah yes, they do [21:05:27.0000] <MikeSmith> ah OK I guess that's the culprit then [21:05:40.0000] <TabAtkins> MoU? [21:05:56.0000] <MikeSmith> W3C-WHAWG Memo of Understanding [21:06:11.0000] <MikeSmith> https://www.w3.org/2019/04/WHATWG-W3C-MOU.html [21:06:33.0000] <MikeSmith> > As the W3C process requires implementation experience to advance beyond CR, while WHATWG process requires only implementation commitments, Review Drafts will include feature implementation status annotations in the margin. [21:06:51.0000] <MikeSmith> > The granularity of the annotations should be such that they can be reasonable indicators of which features have implementation experience. [21:07:13.0000] <TabAtkins> Ah, interesting [21:07:30.0000] <MikeSmith> yeah, thatā€™s part of the reason I added the engine-count indicators in the annos [21:08:36.0000] <MikeSmith> itā€™s just good and useful in general to have those; itā€™s just a plus that also helps with that requirement from the MoU too [21:10:41.0000] <MikeSmith> TabAtkins: anyway, given all that, if for ensuring the MDN annotations work in review-draft builds, thereā€™s a better way than that special-casing code I added for ensuring the data-mdn-for attributes get preserved, then Iā€™m fine with doing in any other way [21:11:07.0000] <TabAtkins> I'll think about it [21:11:14.0000] <MikeSmith> OK [21:11:18.0000] <MikeSmith> I realize now it was only for that review-draft case that I added it [21:11:51.0000] <MikeSmith> it wasnā€™t for any other issue that I observed in testing with other specs [21:12:44.0000] <MikeSmith> TabAtkins: thanks super much for reviewing and making the fixes and merging. Iā€™m really happy to see this landing. [00:08:40.0000] <annevk> MikeSmith: how would you feel about PR'ing the note in https://fetch.spec.whatwg.org/#concept-request-redirect-mode with some of https://stackoverflow.com/questions/42716082/fetch-api-whats-the-use-of-redirect-manual? [00:08:52.0000] <annevk> MikeSmith: oh wait, I guess I still can't ask you to write PRs ffs [00:08:57.0000] <MikeSmith> yeah :( [00:09:00.0000] <annevk> (sorry about the swearing) [00:09:30.0000] <annevk> Okay, I might do something since that keeps coming up and it's indeed super confusing [00:09:31.0000] <MikeSmith> I can empathize with the swearing [00:12:05.0000] <MikeSmith> if it were not for the draconian nature of the participant agreement, I estimate there are literally dozens of PRs I would have submitted over the last two years [00:12:48.0000] <MikeSmith> because in the previous two years before the participant agreement went into place, I know I submitted at least a hundred [00:14:40.0000] <MikeSmith> but as things are now, anger over the situation prevents me from even being willing to take the time to raise issues instead ā€” because thatā€™s just more work for me, to get around restrictions that I personally donā€™t think are even solving in real problems [00:17:00.0000] <MikeSmith> I have really come around to thinking that itā€™s even ethically wrong for me to help perpetuate a situation where the only people who are allowed to contribute PRs are privileged people [00:17:53.0000] <MikeSmith> because I honesty think thatā€™s where we have ended up here ā€” unintentionally of course [00:18:56.0000] <MikeSmith> I mean, itā€™s always hard for any of us to see our own privilege and to understand when we are benefiting from privilege [00:19:44.0000] <MikeSmith> and itā€™s hard to genuinely understand and empathize with the people who are not in a similar position of privilege [00:22:18.0000] <MikeSmith> but I believ that unless a potential contributor whoā€™s employed in some organization is in a position of privilege to be able exert influence on the legal department of their employer, then we are locking them out from contributing [00:23:55.0000] <MikeSmith> essentially we are telling them they are unwelcome to contribute at the WHATWG because they are not sufficiently powerful enough to get move higher-up authority figures who control their professional lives [00:36:13.0000] <annevk> Yeah, it's really taking them much longer than I thought šŸ˜Ÿ [00:45:31.0000] <MikeSmith> yeah itā€™s pretty demoralizing for me, really [00:47:08.0000] <MikeSmith> on the plus side, over the last two years, itā€™s freed on some of the time to be able to contribute elsewhere ā€” working on MDN and the BCD stuff, and Stack Overflow [00:50:10.0000] <MikeSmith> annevk: speaking of MDN, now that the MDN-annotation support landed in Bikeshed, the "Include MDN Panels: true" option can be added to the .bs sources for all WHATWG specs [00:54:16.0000] <annevk> MikeSmith: that's a change we can make in bikeshed [00:54:36.0000] <annevk> MikeSmith: we only put stuff in the source of a spec if it's different per spec [00:54:59.0000] <annevk> MikeSmith: otherwise it goes in a template managed by bikeshed [00:56:01.0000] <MikeSmith> ah right [00:56:14.0000] <MikeSmith> OK, I can get the change made in Bikeshed [03:26:12.0000] <MikeSmith> annevk: Iā€™m reviewing https://github.com/whatwg/fetch/pull/1010 [03:26:34.0000] <annevk> MikeSmith: at least that's allowed [03:29:44.0000] <MikeSmith> heh [03:30:10.0000] <MikeSmith> that change is a nice clarification [03:31:39.0000] <annevk> I'll give it a day to see if the original reporter has something to add [03:32:18.0000] <MikeSmith> yeah [03:47:46.0000] <MikeSmith> annevk: diff for https://github.com/whatwg/html/pull/5390 is so big that Github wonā€™t let me review it online [03:48:00.0000] <MikeSmith> am checking out the branch locally to review [03:48:18.0000] <annevk> MikeSmith: that's great, it'd be nice to land that to avoid bit rot [03:48:45.0000] <annevk> I finally ran a couple search & replace operations to remove all the newlines that bothered me for years [03:48:58.0000] <annevk> Turns out there were literally thousands [03:53:06.0000] <MikeSmith> yeah, 4433 to be exact :) [03:53:56.0000] <MikeSmith> I was gonna comment that there are also two indent changes in there, for </li> and </dl> end tags, but I see you already commented about that [03:54:41.0000] <annevk> Yeah, I'm pretty sure those were wrong [03:54:47.0000] <annevk> (before I fixed them, that is) [03:55:33.0000] <MikeSmith> yeah [03:56:09.0000] <MikeSmith> and fwiw, I just checked now to confirm that none of the removals are within pre elements [03:58:33.0000] <MikeSmith> but now the branch has a merge conflict, it looks like due to the ā€œMake document's character encoding reflect byte order markā€ change [04:02:14.0000] <MikeSmith> however I donā€™t see an actual conflict there ā€” looking at the conflict-marked view of the source, I donā€™t see any actual conflict; I donā€™t see why git canā€™t just merge that particular bit from the ā€œMake document's character encoding reflect byte order markā€, because thereā€™s nothing it conflicts with in the source on the branch... [04:05:13.0000] <MikeSmith> anyway, looks like you can resolve it by just by accepting the HEAD change [04:06:10.0000] <annevk> I'll see about rebasing [04:06:38.0000] <andreubotella> Looks like annevk removed the blank line between <li> and <p>, where I inserted the BOM sniffing stuff [04:07:42.0000] <annevk> Nah, the problem is that the next bit still had the newline [04:07:52.0000] <annevk> So it got confused there [04:08:45.0000] <annevk> Anyway, it was easy enough to resolve [04:51:16.0000] <annevk> andreubotella: thanks again for all the patches btw! [04:52:47.0000] <andreubotella> annevk: no problem! [07:11:39.0000] <Domenic> annevk: I realized I may have been talking about origin isolation + SAB wrong. The current consensus is that SAB won't be transferrable at all unless you have COOP+COEP, right? In which case it will only be transferrable same-origin, not same-site, because crossOriginIsolated implies origin isolation, right? So that means origin isolation doesn't restrict SAB sharing, because SABs aren't ever sharable cross-site in the [07:11:39.0000] <Domenic> first place... right? [07:12:10.0000] <annevk> Domenic: yeah, I pointed that out somewhere [07:12:15.0000] <Domenic> Dang OK. [07:12:33.0000] <annevk> Domenic: it does affect WebAssembly.Module I think, which is agent cluster restricted [07:12:38.0000] <Domenic> Oh fun [07:15:38.0000] <Domenic> annevk: you convinced yourself that it is fine to diverge WebAssembly.Module and SAB in that way? [07:16:58.0000] <Domenic> I guess it is fine for security, but aligning them might make things simpler. [07:17:05.0000] <annevk> Domenic: WebAssembly.Module doesn't enable timing attacks; I think the primary motivation is that folks don't want to recreate data structures in other processes [07:17:26.0000] <annevk> Domenic: and I suspect it'd be a hard sell to require COOP+COEP for it retroactively [07:18:09.0000] <annevk> Domenic: when COOP+COEP are enabled though, WebAssembly.Module and SAB are aligned [07:18:11.0000] <Domenic> Well we could just restrict it to same-origin agents [07:18:24.0000] <Domenic> Hmm no I see [07:18:30.0000] <Domenic> That doesn't make anything symmetric after all. [07:18:35.0000] <Domenic> OK, makes sense. [07:18:56.0000] <annevk> Yeah, I opened that issue for the same-origin restriction and ended up not liking it as it had holes [07:19:06.0000] <annevk> The only way to avoid holes is to change keying of agent clusters [07:19:07.0000] <Domenic> Filed https://github.com/WICG/origin-isolation/issues/22 to update origin isolation explainer. [07:25:44.0000] <annevk> šŸ‘šŸ» [08:17:23.0000] <annevk> Domenic: https://chromium-review.googlesource.com/c/chromium/src/+/1890952 adds tests for the cache keying, though I haven't looked in detail [08:18:19.0000] <Domenic> annevk: nice. Seems to only do popups though. [08:19:17.0000] <Domenic> I always forget we don't have the issue template for all repos [08:20:15.0000] <annevk> Ah yeah, that's another thing I've been meaning to get to [08:20:28.0000] <annevk> I want a repo-syncer thingie [08:21:31.0000] <annevk> Probably manual at first, but having all the files that each spec needs organized as templates would be a good improvement (and help with setting up new stuff) [08:22:08.0000] <Domenic> We could also create a template spec repository [08:22:13.0000] <Domenic> There's first-class support for template repositories [08:22:20.0000] <annevk> There is? [08:22:29.0000] <annevk> o_O [08:23:19.0000] <annevk> /me finds https://help.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository [08:25:01.0000] <annevk> I guess that's not quite what I had in mind since I'd like the README and such to be templated files [08:25:38.0000] <annevk> But we should put it in a repo and then you run a Python command with your spec details and you get a new repo for that spec [08:26:08.0000] <annevk> (and that's also capable of updating an existing repo if we change the templates) [08:32:17.0000] <Domenic> Yeah it still would require some tweaks afterward, and a script sounds good. But it helps with stuff like .editorconfig/Makefile/LICENSE/etc. [08:38:44.0000] <annevk> My idea was that you run a script and give it a target directory and it fills that up with those files [08:38:49.0000] <annevk> Or it updates those files [08:39:17.0000] <annevk> Maybe similar to html-build it expects to be a parallel dir or some such [09:03:07.0000] <Domenic> That makes sense, just seems nicer to have the canonical source for those files be a template repository, instead of e.g. strings in a .py file. [09:03:34.0000] <Domenic> Maybe you use the GitHub feature to create a new repository from the template, clone the repository, and run `./finish-setup.py`, which modifies the templated files appropriately and then deletes itself. [09:03:49.0000] <Domenic> annevk: https://github.com/web-platform-tests/wpt/pull/22406 has initial origin isolation tests; thoughts welcome (but not required) [09:05:15.0000] <annevk> Yeah that could work I suppose [09:05:23.0000] <annevk> I don't have time today [09:05:52.0000] <Domenic> No worries [09:06:13.0000] <Domenic> Review is slow over in Chromium land for the prereq patches as well, so I doubt they will land today [10:59:00.0000] <annevk> shu: can you get someone from Chrome/V8 to review https://github.com/web-platform-tests/wpt/pull/22385 please? It's the final PR for this hiding SAB thing [11:01:12.0000] <shu> annevk: okay let me try to find someone, not sure who usually reviews wpt [11:05:31.0000] <annevk> shu: ta [11:38:03.0000] <shu> annevk: nobody's biting, the changes themselves look small enough that i can review them without really understanding how WPT works [11:38:22.0000] <shu> wdyt [11:40:23.0000] <annevk> shu: sgtm [12:19:22.0000] <JakeJimothy> Hello :) [12:19:46.0000] <JakeJimothy> English is my not my first language, so I have trouble reading url spec. Have question?: [12:20:31.0000] <JakeJimothy> Any reason for un-percent-encoded question (?) in url excluding query? [12:28:51.0000] <JakeJimothy> wow faggot [12:40:00.0000] <TabAtkins> annevk or Domenic: I don't know what tools y'all have available. Any way to block the person just above? 2020-03-25 [18:26:14.0000] <MikeSmith> for those who participated in the Web Components Virtual F2F meeting this week, it would be good to record some detailed feedback about how the logistics went: What worked well, what didnā€™t. The info could be useful to other groups whoā€™ll be doing similar ā€œvirtual f2fā€ meetings over the coming months [18:34:46.0000] <MikeSmith> I guess https://github.com/w3c/webcomponents/wiki/2020-Spring-Virtual-F2F would be good place to write it down [05:11:20.0000] <annevk> MikeSmith: thanks for the review, could you review https://github.com/whatwg/meta/pull/165 too? [05:16:15.0000] <MikeSmith> annevk: yeah was looking at it but had to step away for story time [05:16:16.0000] <MikeSmith> back now [05:38:36.0000] <annevk> thanks! 2020-03-26 [09:35:53.0000] <Domenic> annevk: do you remember why [[CanBlock]] is true for shared workers? [09:37:08.0000] <annevk> Domenic: mainly because there was no compelling reason to set it to false for them, I think [09:37:34.0000] <Domenic> So for service workers it's false because blocking the network is bad, I guess? Not because it's a shared resource? [09:37:36.0000] <annevk> Domenic: arguably it being the only agent cluster instantiating agent that can set it to true might be a reason to set it false [09:37:43.0000] <annevk> Domenic: yeah [09:37:52.0000] <Domenic> Makes sense [09:37:57.0000] <Domenic> And yeah we could potentially flip it [09:38:03.0000] <Domenic> Although I guess that would be a breaking change [09:38:09.0000] <annevk> Firefox has it false at the moment, I believe [09:38:15.0000] <Domenic> Oh nice [09:38:26.0000] <Domenic> Because Firefox is the only affected browser I believe [09:38:36.0000] <Domenic> (IIRC Chrome does not supported nested workers in shared workers?) [09:38:52.0000] <annevk> Domenic: Chrome might still be affected due to Atomics.wait() not throwing [09:39:15.0000] <annevk> Domenic: but that could be true; I have a hard time remembering because I never played with that myself [09:39:17.0000] <Domenic> Yeah, true, "affected", but not web-compat issues (unless someone's doing something really weird) [09:55:48.0000] <annevk> Domenic: if at some point you could give me some quick pointers to how Bikeshed's boilerplate system fits together that would help [09:56:04.0000] <annevk> Domenic: I'm having a hard time figuring out how the Commit Snapshots come together now [09:56:33.0000] <Domenic> annevk: so commit snapshots partly predate the boilerplate system so they don't use all the modern features that RDs do [09:57:30.0000] <Domenic> https://github.com/whatwg/whatwg.org/blob/master/resources.whatwg.org/build/deploy.sh#L106-L110 basically patches a lot of the existing metadata, using WHATWG defaults as the base [09:57:48.0000] <Domenic> WHATWG defaults are done in https://github.com/tabatkins/bikeshed/blob/master/bikeshed/boilerplate/whatwg/defaults.include and https://github.com/tabatkins/bikeshed/blob/master/bikeshed/boilerplate/whatwg/computed-metadata.include [09:58:59.0000] <Domenic> I think the ideal would be to create a computed-metadata-LS-COMMIT.include, like https://github.com/tabatkins/bikeshed/blob/master/bikeshed/boilerplate/whatwg/computed-metadata-RD.include [09:59:21.0000] <Domenic> Maybe also a head-LS-COMMIT to replace the Text Macro stuff [09:59:46.0000] <Domenic> Although I dunno, getting the SHA in there would be trickier [09:59:51.0000] <Domenic> Any particular questions? [10:00:12.0000] <TabAtkins> Hm, what's the SHA from? [10:00:29.0000] <Domenic> Scripts [10:00:34.0000] <Domenic> It would have to be a new text macro [10:00:50.0000] <Domenic> https://github.com/whatwg/whatwg.org/blob/master/resources.whatwg.org/build/deploy.sh#L33 [10:01:49.0000] <TabAtkins> Hmmm, I already extract the repo information, I could just make that available as a predefined macro. [10:35:09.0000] <annevk> TabAtkins: wait you look at whatwg/dom when you get dom.bs? [10:35:44.0000] <TabAtkins> If you don't specify a `Repository` metadata, I check if the document is in a git repo and infer the repo metadata from that. [10:38:04.0000] <annevk> TabAtkins: how does that work with the CLI? [10:38:17.0000] <annevk> TabAtkins: sorry, the api.csswg.org thingie [10:38:33.0000] <TabAtkins> Oh, it doesn't. No git repo there, can't infer anything. [10:38:41.0000] <annevk> TabAtkins: that's what we use [10:38:52.0000] <TabAtkins> Ok then yeah, y'all will have to keep doing it yourself. [10:39:20.0000] <TabAtkins> Out of curiosity, why y'all still using the API like that? It's so easy to just do it locally in a travis or whatever. [10:39:42.0000] <annevk> Getting Travis to fetch all of bikeshed each time seems worse? [10:41:03.0000] <TabAtkins> I mean, bandwidth is free. ^_^ [10:41:26.0000] <annevk> TabAtkins: it seems bad to use more computing resources than necessary [10:43:42.0000] <TabAtkins> if you insist [10:43:43.0000] <a-ja> TabAtkins, https://techcrunch.com/2020/03/25/88-out-of-top-200-u-s-cities-have-seen-internet-speeds-decline-this-past-week-3-cities-by-more-than-40/ [10:43:46.0000] <a-ja> :) [10:44:27.0000] <a-ja> "only" down 20% here [10:44:42.0000] <annevk> Domenic: why would getting the SHA into a template be trickier? Some of those files already seem to look at environment variables such as SHORTNAME and such [11:24:46.0000] <annevk> Domenic: note that even for computed-metadata-RD.include we'd need the SHA in there as we put it in the title [11:29:17.0000] <annevk> TabAtkins: can includes use md-Text-Macro? [11:29:57.0000] <TabAtkins> Yeah, the `md-` flag syntax is just a way of adding metadata; you can any of that via <pre class=metadata> or any of the metadata includes. [11:30:44.0000] <TabAtkins> https://tabatkins.github.io/bikeshed/#metadata-text-macro [11:31:16.0000] <annevk> great, then I can just pass the SHA in [11:31:32.0000] <annevk> I guess I'll put something together tomorrow, bit late now [11:31:41.0000] <annevk> thanks! 2020-03-27 [02:33:59.0000] <yoav> annevk: do you know what destination should an SVG image fetched as a `<use>` use? https://www.w3.org/TR/SVG2/linking.html#processingURL-fetch doesn't seem fetch integrated nor does it mention destinations :/ [02:46:41.0000] <annevk> yoav: table at https://fetch.spec.whatwg.org/#concept-request-destination doesn't mention it either, not sure [02:47:11.0000] <yoav> yeah, that's where I first checked :) [02:47:13.0000] <annevk> yoav: file an issue against each spec I guess? [02:47:22.0000] <annevk> and cross ref them [02:47:30.0000] <yoav> ok [02:47:49.0000] <annevk> I suspect the answer depends a lot on what we'd want CSP to do [02:47:59.0000] <yoav> The immediate issue that brought me to poke at this is https://bugs.chromium.org/p/chromium/issues/detail?id=1065069 [02:48:33.0000] <yoav> In Chromium's implementation, these images are fetched as an SVG document [02:49:00.0000] <yoav> which is very different "ResourceType" from images [02:49:10.0000] <annevk> yoav: what does that mean for CSP? [02:49:29.0000] <yoav> dunno, but I can find out [02:49:32.0000] <annevk> yoav: and yeah, if the result can execute script I don't think we want "image" [02:49:48.0000] <annevk> yoav: maybe "script" would suffice [02:50:44.0000] <yoav> would be very hard to explain to devs that preloading SVG sprites need a "script" `as` value, but that's a second-order issue [02:50:56.0000] <annevk> I do vaguely recall a bunch of issues with SVG as image and SVG as document now that also pertain to CSS linking SVG [02:51:25.0000] <annevk> Not sure those ever got solved properly [03:02:47.0000] <yoav> https://svg-discrimination.glitch.me/csp.html seems to indicate the SVG doc download is guarded by `img-src` [03:03:46.0000] <yoav> in Chrome but not in Firefox... [03:04:54.0000] <yoav> Safari also likes `img-src` here [03:05:02.0000] <yoav> I'll file issues [03:11:32.0000] <annevk> I guess the question is whether it can execute script [03:13:57.0000] <yoav> https://github.com/whatwg/fetch/issues/1012 [03:16:57.0000] <yoav> doesn't seem like it can [03:17:19.0000] <yoav> added a script to the SVG in the test, and it's only running when the SVG is browsed to as the main document [03:46:18.0000] <annevk> Great, in that case image seems fine to me [03:46:41.0000] <annevk> Though we should prolly investigate why Chrome has a different type [08:18:30.0000] <annevk> Domenic: feel free to take over that Bikeshed PR btw to do your work on top and change it to how you like it to be, I don't care too strongly [08:18:46.0000] <Domenic> annevk: OK cool, thanks [09:25:15.0000] <TabAtkins> And just ping me when it's ready to merge [09:58:06.0000] <annevk> TimothyGu: if you're around, is there a way to run specific tests? [09:58:29.0000] <annevk> TimothyGu: and is it correct that the initial value of a DocumentFragment's _host is undefined? [09:59:06.0000] <annevk> TimothyGu: and when does it give more detailed output from a particular test, only at the end? [09:59:43.0000] <Domenic> annevk: https://github.com/jsdom/jsdom/blob/master/Contributing.md#tests `To run specific to-upstream web-platform-tests: yarn test-tuwpt --fgrep domparsing` [09:59:56.0000] <Domenic> And yeah I think it'll save the detailed output to the end [10:00:14.0000] <Domenic> Sorry, I quoted the wrong line: `To run specific web-platform-tests already enabled via to-run.yaml: yarn test-wpt --fgrep dom/events` [10:00:49.0000] <TimothyGu> annevk: yes, looks like the "default" host is undefined [10:01:20.0000] <TimothyGu> but just to be safe I'd assume it could be either undefined or null [10:01:30.0000] <TimothyGu> we haven't been super consistent with that unfortunately [10:13:04.0000] <annevk> I really dislike this issue [10:47:45.0000] <annevk> Found the flaw in my logic, but still some test changes to analyze and not sure Iā€™ll get to it todayā€¦ Oh well, some progress at least. Thanks for the jsdom help! Works well with test-wpt plus grep [10:56:52.0000] <TimothyGu> Good to hear! [11:09:39.0000] <Mek> TabAtkins: the FileAPI spec doesn't seem to build anymore with the latest bikeshed version, failing with "FATAL ERROR: Couldn't find the MDN data for 'fileapi' nor 'fileapi'." [11:10:14.0000] <Mek> (https://travis-ci.com/github/w3c/FileAPI/builds/155915673) [11:11:04.0000] <TabAtkins> Ah, MikeSmith has been turning MDN annotations on for various groups, one of which includes FileAPI, and there must not be any MDN annotations for FileAPI. [11:13:21.0000] <Mek> not sure what it means for there to "be MDN annotations"? [11:14:10.0000] <TabAtkins> https://w3c.github.io/mdn-spec-links/ [11:14:19.0000] <TabAtkins> Means MDN has some articles that link back to your spec [11:14:36.0000] <Mek> fileapi is definitely listed there [11:15:42.0000] <TabAtkins> ah indeed it is, and it's in bikeshed's data folder. HMM [11:15:45.0000] <TabAtkins> i'll investigate [11:21:39.0000] <TabAtkins> Hm, I should probably also add a value to the metadata that allows "add if present", so it's safer to put into group boilerplates without new specs getting a fatal error. [11:22:27.0000] <Mek> yeah, having it in WICG especially seems problematic, as there are any wicg specs that aren't on mdn yet [11:28:14.0000] <TabAtkins> After I diagnose and fix this issue with fileapi i'll add the metadata value and fix the boilerplates, because otherwise it would hide this issue. ^_^ [11:29:27.0000] <Mek> okay, thanks! [11:30:43.0000] <Mek> I'm curious, where is bikeshed's data folder that is supposed to contain this mdn data? [11:37:23.0000] <TabAtkins> bikeshed/spec-data/mdn [11:37:30.0000] <Mek> nope, no such directory [11:38:49.0000] <TabAtkins> In your bikeshed directory, go to the bikeshed sub-directory? [11:39:13.0000] <Mek> yeah, no mdn subdirectory in the spec-data directory [11:39:42.0000] <Mek> (and I did run bikeshed update) [11:44:01.0000] <Mek> `bikeshed update --skip-manifest` seems to have done the trick? (I imagine `bikeshed update --mdn` would also have worked) [11:48:42.0000] <TabAtkins> Hmmmm, okay I can reproduce the manifest update not picking up the new data, even tho it shows up in github.com/tabatkins/bikeshed-data/ [11:48:58.0000] <TabAtkins> thanks for pointing this out, will fix [11:57:06.0000] <TabAtkins> Mek: And this led me to find I was fucking up the updates a lot worse than I thought ^_^ thanks so much for pointing out the error ^_^ [12:23:55.0000] <annevk> TabAtkins: so api.csswg.org was not updated to Python 3 but the Bikeshed copy was updated? [12:24:16.0000] <TabAtkins> What do you mean by "the Bikeshed copy"? [12:24:23.0000] <annevk> At least, I think that's what https://travis-ci.org/github/whatwg/dom/builds/667847147 indicates [12:24:49.0000] <annevk> TabAtkins: well, the Bikeshed instance that api.csswg.org uses [12:28:24.0000] <TabAtkins> Yeah, something happened that caused the api server to update bikeshed unexpectedly, I'm talking with plinss about it now. [12:30:32.0000] <TabAtkins> annevk: Try it again? plinss just manually set it to the last py2 commit [12:30:47.0000] <TabAtkins> (and will be updating it to py3 and master this weekend) [12:32:18.0000] <annevk> Great! Travis isn't loading for me, but maybe soon I can try again [12:33:22.0000] <annevk> The amount of Python 3 bullshit I've had to deal with in a time of international crisis is too damn high [12:34:19.0000] <TabAtkins> heh, same [12:34:42.0000] <TabAtkins> to be fair, we've all had like a year of warning and chose to procrastinate ^_^ [12:39:15.0000] <annevk> If the changes didn't seem so artificial and pointless I would be less spiteful [12:39:30.0000] <Domenic> /me is almost done making agent cluster allocation imperative... [12:41:43.0000] <annevk> o_O [12:42:16.0000] <annevk> I gotta watch some Mando, but tomorrow [12:42:55.0000] <annevk> Travis will also have to wait, completely unresponsive somehow [13:19:08.0000] <TimothyGu> TabAtkins: do you know if any plans to reinstate `SVGUseElement`'s `instanceRoot` in Chrome or elsewhere? [13:21:47.0000] <Domenic> Do I even want to know what that is [13:21:56.0000] <Domenic> Most things about SVGUseElement fill me with fear [13:24:20.0000] <TimothyGu> SVGUseElement is defined in terms of shadow DOM these days, and instanceRoot is supposed to be the `<svg>` element in the shadow root, I think [14:09:35.0000] <TabAtkins> TimothyGu: I doubt it, but I have no special insight into the matter. [14:09:48.0000] <TimothyGu> got it [16:12:32.0000] <MikeSmith> TabAtkins: Mek_: is the issue with the File API spec an MDN annotations fixed? [16:12:42.0000] <TabAtkins> should be, yes [16:12:42.0000] <Mek_> yes [16:12:55.0000] <MikeSmith> Ok cool [16:13:05.0000] <Mek_> I think there is still the problem that most wicg specs won't have mdn annotations, so requiring that in the wicg template probably doesn't make sense [16:13:06.0000] <TabAtkins> MikeSmith: Before adding to more boilerplates, wait for me to add the "add if possible" value to the metadata. [16:13:18.0000] <MikeSmith> TabAtkins: OK [16:13:21.0000] <TabAtkins> too busy with other stuff to do that yet [16:13:27.0000] <TabAtkins> (I'll fix the ones you've already done.) [16:15:15.0000] <MikeSmith> yeah I have been doing a ton of testing but I have to admit now that the only specs I have been testing with are the ones I know to have MDN annotations [16:16:03.0000] <MikeSmith> it seems obvious now that I should have tested randomly with some others too [16:16:31.0000] <MikeSmith> because even hitting on just one that didnā€™t have annos would have made me realize the problem [16:16:36.0000] <TabAtkins> it's fine, we'll fix in a bit [16:16:41.0000] <MikeSmith> ok [16:16:42.0000] <MikeSmith> thanks [16:16:54.0000] <TabAtkins> i haven't been regenning the tests yet, or else i'd have hit it too [16:17:17.0000] <MikeSmith> ah 2020-03-28 [00:18:12.0000] <annevk> TimothyGu: Domenic: if you have any tips for maintaining a WPT PR while simultaneously using those tests for jsdom I'd love to hear them; the best idea I have is writing a small tool that copies the relevant files over [07:32:10.0000] <Domenic> annevk: we don't have anything good. In jsdom we work in the "to-upstream" directory but upstreaming is a manual process that we do very rarely. 2020-03-29 [00:18:54.0000] <annevk> ecobos: I think we need to fix the standard on non-fetch schemes and ideally prevent the fingerprinting angles [00:19:23.0000] <ecobos> annevk: I'm extremely confused about both our old and our less-old behavior in that case [00:19:43.0000] <ecobos> annevk: So this testcase: [00:20:01.0000] <ecobos> ``` [00:20:02.0000] <ecobos> <!doctype html> [00:20:02.0000] <ecobos> <iframe id="myframe"></iframe> [00:20:02.0000] <ecobos> <pre id="log"></pre> [00:20:02.0000] <ecobos> <script> [00:20:02.0000] <ecobos> onload = function() { [00:20:02.0000] <ecobos> let iframe = document.querySelector("iframe"); [00:20:03.0000] <ecobos> let log = document.getElementById("log"); [00:20:03.0000] <ecobos> let ex = null; [00:20:04.0000] <ecobos> try { [00:20:04.0000] <ecobos> iframe.contentWindow.location.href = "very-unlikely-to-exist:foo"; [00:20:05.0000] <ecobos> } catch (e) { [00:20:18.0000] <ecobos> err [00:21:17.0000] <ecobos> annevk: http://software.hixie.ch/utilities/js/live-dom-viewer/saved/7867 [00:21:35.0000] <ecobos> annevk: anyhow that test-case, before firefox 64 used to _both_ navigate and throw [00:22:30.0000] <ecobos> annevk: that's so bonkers. We added a hack to not throw only for unknown protocol, which is terrible, https://bugzilla.mozilla.org/show_bug.cgi?id=680300. That didn't fix the underlying issue at all [00:23:07.0000] <ecobos> annevk: and then at some later point we apparently fixed the underlying issue that was throwing for all those errors [00:23:17.0000] <ecobos> annevk: but during all this time this has been detectable [00:23:28.0000] <ecobos> annevk: by just trying to poke at the error page loaded at the frame [00:23:54.0000] <ecobos> annevk: so... lol? [00:25:41.0000] <ecobos> /me shrugs, rips off the hack, will file a bug for actual mitigations for this [07:12:51.0000] <annevk> ecobos: ugh, I prolly dropped the ball on this at some point; throwing while still navigating is definitely bad news [07:15:09.0000] <nox> The real question is why are you talking about specs on a Sunday. [07:16:17.0000] <annevk> nox: itā€™s Sunday? Thanks for the heads up. [07:50:22.0000] <nox> Hah. [10:49:00.0000] <Krinkle> Hm.. It appears column-width is forcing children to be limited by the column width (and leading to overflow). I had always imagined it would go as narrow as the child allows somehow, so that if in one cirumstance, the contents are too wide, there would be fewer columns. But I"m seeing that Firefox, Safari, and Chromium all behave this way, E.g. at https://www.mediawiki.org/wiki/Category:Resource_loader_variables [10:49:03.0000] <Krinkle> https://usercontent.irccloud-cdn.com/file/dsjFpIFu/column-width%20problems.png [10:49:43.0000] <Krinkle> I imagine there's a way to loosen that up, but not seeing it.. [10:53:23.0000] <Krinkle> I guess conceptually it's not very different from if a device were as narrow as the column width, and I'd need to handle that too, so I guess word-break is the only available option here. That works :) [10:54:47.0000] <Krinkle> or rather, overflow-wrap: break-word, in this case. [11:11:53.0000] <TabAtkins> Krinkle: Hmm, `column-width: max(33%, min-content);` should work, I think. But yeah, you'll need to handle overflowing items on narrow viewports anyway, so might as well do that *too*. [11:53:07.0000] <Krinkle> TabAtkins: interesting. min-content is something I can specify in column-width on a parent like <ul> and will be applied in context of each <li> element? [11:53:21.0000] <Krinkle> I assumed 33% etc would be in relation to the <ul> itself. [11:53:45.0000] <TabAtkins> The ul's min-content size involves asking its children for their min-content size. [11:54:30.0000] <TabAtkins> https://drafts.csswg.org/css-sizing/#column-sizing [11:55:10.0000] <TabAtkins> (No *guarantees* on this working, btw; it's combining two newish things. Precede it with a `column-width: 33%;` in case it fails to parse.) [11:55:23.0000] <Krinkle> Oh I see. min-content is a special value specific to column-width [11:55:49.0000] <Krinkle> I assumed it was a generic width/height value as that would mean each column gets the width of the total of all children which is not what I want indeed. [11:55:56.0000] <Krinkle> Firefox says the syntax is invalid [11:56:12.0000] <TabAtkins> Yeah, when used on column-width it does "what you'd expect" and asks the children. If used on the ul it'll ask the children, then multiply it by the # of columns. [11:56:25.0000] <TabAtkins> "on the ul" I mean on the ul's `width`. [11:56:47.0000] <Krinkle> neat [11:57:14.0000] <Krinkle> Chromium rejects it as well. [11:57:48.0000] <Krinkle> and Safari too. [11:57:52.0000] <Krinkle> I guess very new then :) [11:58:06.0000] <Krinkle> or priority victim by vendors [11:59:32.0000] <TabAtkins> I don't think max() is in any public builds yet; it should be in the dev or beta channels for Safari, Chrome, and Firefox. [11:59:43.0000] <TabAtkins> Dunno about column-width:max-content [12:00:01.0000] <TabAtkins> ...oh wait, i'm dumb, there's no way that max-content would work, since we don't allow keywords in calculations yet. [12:00:03.0000] <TabAtkins> NEVER MIND 2020-03-30 [06:47:43.0000] <annevk> We should probably have a team for focus [06:47:58.0000] <annevk> /me wonders if Domenic wants to set that up [06:58:23.0000] <jgraham> focus? [07:00:47.0000] <annevk> https://github.com/whatwg/html/labels/topic%3A%20focus [07:05:13.0000] <jgraham> Ah, that kind of focus [08:14:41.0000] <jgraham> Oh look, W3C is moving to slack [08:46:27.0000] <Ms2ger> Domenic, could you reopen https://bugs.chromium.org/p/chromium/issues/detail?id=947523 ? [08:46:40.0000] <annevk> Domenic: thoughts on having a .metadata.json in each repo that we use for centralized updates? [08:47:41.0000] <annevk> Domenic: perhaps db.json could be used, come to think of it [08:47:54.0000] <Domenic> annevk: right, I'm unclear what would be in the metadata file [08:48:18.0000] <annevk> Domenic: things like ENCRYPTION_LABEL I guess [08:49:11.0000] <annevk> Domenic: but maybe there's a .yml parser... Trying to keep things somewhat simple [08:54:41.0000] <Domenic> I'm a bit confused what you would need to parse out the ENCRYPTION_LABEL for [08:55:01.0000] <annevk> Domenic: we might have changed our .yml template? [08:55:15.0000] <Domenic> I see, so a future concern [08:55:36.0000] <annevk> Domenic: well, I wanted to include it now, but I guess I could leave it out [08:56:00.0000] <Domenic> I'm still a bit confused, but it seems like you don't need to parse it now, just write it [08:56:30.0000] <annevk> Domenic: I need to parse it to get the current value for that variable so I can insert it into the "new" template [08:57:01.0000] <Domenic> You could just enter it manually? [08:57:23.0000] <Domenic> Like, it's not like we're going to be regenerating these things all the time, so their inputs don't need to be all automated [08:57:57.0000] <annevk> Domenic: I was hoping I could update all existing repos automatically [08:58:18.0000] <annevk> Domenic: apart from the PR bit that is [08:58:38.0000] <Domenic> I guess that's up to you, whether you use a script to find all the encryption labels or use some manual clicking and copying [08:58:39.0000] <annevk> Domenic: but I was thinking of having it generate the relevant branches with a commit in it [08:58:49.0000] <annevk> Domenic: it adds up for 15 repos [08:59:05.0000] <annevk> Domenic: I think I'll leave it out for now since it's likely to stay the same [08:59:13.0000] <Domenic> SGTM 2020-03-31 [19:22:48.0000] <MikeSmith> TabAtkins: I remain curious whatā€™s special about the IDL in the Web Audio that causes so much errors [19:23:01.0000] <MikeSmith> https://github.com/WebAudio/web-audio-api/issues/2185#issue-588835836 [19:27:55.0000] <TabAtkins> Stuff around heavy references to arguments, which have always been weird. Definitely a Bikeshed bug. [19:31:51.0000] <MikeSmith> OK [19:47:24.0000] <MikeSmith> Chromium question: given a commit hash, how can I tell what release it first shipped in? [19:48:00.0000] <MikeSmith> in the past I have seen links to https://storage.googleapis.com/chromium-find-releases-static/ URLs which show that [19:48:19.0000] <MikeSmith> example: https://storage.googleapis.com/chromium-find-releases-static/ab5.html#ab5ae32c6233fe7938b9a0b53cf1c74918310d7a [19:49:15.0000] <MikeSmith> https://storage.googleapis.com/chromium-find-releases-static/6c2.html#6c2d80337cb1988e53ae29f7418b52e9d81dec8e [19:49:27.0000] <MikeSmith> https://storage.googleapis.com/chromium-find-releases-static/009.html#00971f38908388728f49cd5127b9c6c6761d035f [19:50:03.0000] <MikeSmith> aha [19:50:05.0000] <MikeSmith> nm [19:50:12.0000] <MikeSmith> figured it out [19:51:07.0000] <MikeSmith> dunno if there is so frontend that will it for you, but I realize now you need to replace the NNN.html part with the first three characters of the hash [22:03:12.0000] <Domenic> MikeSmith: https://omahaproxy.appspot.com/ [22:03:47.0000] <MikeSmith> /me looks [22:04:14.0000] <MikeSmith> ah beautiful [22:04:26.0000] <MikeSmith> exactly what I was looking for [22:04:36.0000] <MikeSmith> Domenic: thanks much! [22:04:49.0000] <MikeSmith> that omahaproxy names sounds familiar now [23:48:43.0000] <annevk> This declarative shadow DOM thread is something [03:14:58.0000] <yoav> annevk: question regarding monkey patching. Is something like https://w3c.github.io/performance-timeline/#dfn-frozen-array-of-supported-entry-types OK from your perspective (e.g. extending HTML-defined objects to add new objects associated with them)? [03:15:27.0000] <yoav> I know that algorithmic monkey-patching is something we should avoid if possible, but less sure about this one [03:45:08.0000] <annevk> yoav: why are we bringing back hasFeature()-style APIs? [03:45:24.0000] <annevk> (That's not what you asked for, but that would be my main concern with this API.) [03:51:23.0000] <annevk> Domenic: https://github.com/annevk/spec-factory is my initial take, it can do updates fairly well, but some repositories are more custom than anticipated (e.g., Streams has a pretty custom .pr-preview.json and Compatibility calls its main file compatibility.bs rather than compat.bs) [04:19:27.0000] <yoav> it's something we added a while back: https://github.com/w3c/performance-timeline/issues/77 [04:21:48.0000] <yoav> there's also https://dom.spec.whatwg.org/#dom-domtokenlist-supports [05:28:30.0000] <annevk> yoav: did that end up working out? [05:55:12.0000] <yoav> annevk: yeah [05:55:55.0000] <yoav> annevk: thoughts on the original question? is it OK to extend HTML defined objects with associated objects? [05:56:03.0000] <yoav> (outside HTML) [05:59:02.0000] <annevk> yoav: that seems okay, did bz's issue ever get addressed? [05:59:21.0000] <annevk> yoav: it's also a bit vague as to which globals might support which strings [06:02:52.0000] <yoav> yeah, I believe https://github.com/w3c/performance-timeline/pull/133 fixed it [06:06:17.0000] <yoav> yeah, I guess the registry could've defined which entries are e.g. not supported in WorkerGlobalScope [07:41:48.0000] <annevk> Domenic: "GitHub UI does not follow renames" what does that mean? [07:42:08.0000] <Domenic> annevk: when you go to the commit history page for a renamed file you only see commits since the rename [07:42:26.0000] <annevk> Ah yeah, though GitHub's blame is fine with it [07:42:57.0000] <annevk> Domenic: and we encourage https://github.com/whatwg/compat/commits over specific files, right? [07:43:15.0000] <Domenic> True, I suppose [07:43:57.0000] <annevk> I think you had to deal with this too as our build script scans for the .bs file rather than using {shortname}.bs [07:44:32.0000] <annevk> It'd no longer have to do that with this rename (we had more of this before I think) [07:44:41.0000] <Domenic> Yeah I thought some things did index.bs [07:45:02.0000] <Domenic> Ah yeah console and streams do index.bs [07:45:10.0000] <Domenic> Maybe spec-factory can scan for index.bs instead [07:45:24.0000] <Domenic> s/scan for index.bs/scan for .bs/ [07:51:42.0000] <annevk> Yeah, that would create slightly less churn [08:07:20.0000] <annevk> Domenic: oh so Compatibility's .pr-preview.json file is also wrong as it points to compat.bs rather than compatibility.bs [08:07:28.0000] <annevk> Domenic: I should have written this tool ages ago [08:07:29.0000] <Domenic> Heh, nice [08:11:54.0000] <TimothyGu> annevk: would you happen to know who at Mozilla to contact for https://github.com/w3c/fxtf-drafts/pull/395? [08:14:26.0000] <annevk> TimothyGu: I'd try emilio [08:37:22.0000] <TimothyGu> annevk: cool thanks [08:59:21.0000] <annevk> Domenic: hmm HTML's .editorconfig does have specific indentation rules for [source] so your editor might be off [09:06:32.0000] <Domenic> Ah boo [09:06:49.0000] <Domenic> annevk: what do you mean by "associate agents and agent clusters directly"? We add the agents to agent clusters, which seems pretty direct [09:24:12.0000] <annevk> Domenic: 1) I was wondering if the agent cluster had to exist first 2) I was wondering if the agent needs a pointer to the agent cluster (how also do you get to it?) [09:24:33.0000] <annevk> Domenic: as I said though, we can wait with this until shu et al get to it [09:25:04.0000] <Domenic> Ah yeah, we're using a bit of magic spec language with "the agent cluster that contains the agent" [09:25:34.0000] <shu> annevk: this week's TC39 so time's going to be hard. is there an issue with background i can push onto my queue? [09:25:35.0000] <Domenic> Also, I'm thinking of removing "responsible event loop" now as you can go with global object's relevant agent's event loop. [09:25:58.0000] <Domenic> shu: I don't think it's urgent; if we crystallize what we want we can file an issue or PR on ES. [09:26:03.0000] <shu> sgtm [09:26:06.0000] <Domenic> I might do a PR for the explicit realm -> agent pointer soon [09:26:32.0000] <Domenic> I guess I'll leave "responsible event loop" but make it an alias [09:27:25.0000] <annevk> Domenic: another thought I had (but didn't investigate) was only having typed agents and no longer having typed event loops (or vice versa) [09:28:44.0000] <Domenic> I think typed event loops are reasonable as a convenience, e.g. saying "If this is a worker event loop" instead of "if this is an event loop whose agent is a dedicated/shared/service worker" [09:56:55.0000] <Domenic> Hmm I wanted to work on streams as my next cleanup but while I'm here I'm tempted to remove responsible document... [09:57:11.0000] <Domenic> Also "responsible browsing context", probably... will file a separate issue for that [10:41:02.0000] <annevk> Domenic: where is EXTRA_FILES configured? [10:42:41.0000] <annevk> Domenic: it seems it should be in .travis.yml, but https://github.com/whatwg/compat/commit/3067cc49b6684017d6637da8969c56e9e084f8be removed that and https://compat.spec.whatwg.org/review-drafts/2019-06/stroked-text.png loads [10:43:37.0000] <Domenic> annevk: Makefile. travis calls the makefile [10:44:10.0000] <MikeSmith> did Location ever have username and password properties? [11:01:37.0000] <annevk> Domenic: but not for review drafts [11:02:02.0000] <annevk> Domenic: oh wait, that also goes through make deploy I guess [11:02:04.0000] <Domenic> Right [11:02:08.0000] <annevk> oh that's weird [11:03:23.0000] <annevk> thanks [12:26:31.0000] <annevk> Domenic: not really working on it atm, but should we move it to db.json potentially or is that too weird? [12:27:35.0000] <annevk> Domenic: extracting it from the Makefile is kind weird, but doable I suppose [12:27:42.0000] <Domenic> annevk: move what, EXTRA_FILES? I would rather keep it in the makefile. [12:27:48.0000] <annevk> kinda [12:28:21.0000] <annevk> I guess duplication is what Iā€™d be after [12:28:38.0000] <Domenic> If you wanted to add an extra db to spec-factory that seems reasonable I guess [12:28:48.0000] <Domenic> But it shouldn't be the SG's source of truth [12:41:25.0000] <annevk> Anyone have context for https://twitter.com/the1truestripes/status/1245051944558686209? [12:42:59.0000] <annevk> Domenic: yeah okay, I suspect Iā€™ll do that and maybe also open a couple of these Meta: PRs to at least fix some things and get PR templates in more places