2016-10-01 [22:51:04.0000] jyasskin: that seems correct. In general putting nullable things in dictionaries is very questionable, as they're already optional so using `null` as a signifier is not great. [00:24:06.0000] Domenic: I agree that nullable things in dictionaries is sketchy, but why does that paragraph allow nullable interfaces, enumerations, callback functions and typedefs but disallow just nullable dictionaries? Even stranger, if you typedef the dictionary, you can now make it nullable? [00:25:01.0000] Was there an attempt to constrain WebIDL to only syntactic checks instead of including semantic constraints? [00:25:40.0000] That would match bz's preference to put the OpenDictionary key-type constraints in the grammar. [08:33:39.0000] I don't understand how that would be possible, or at least sensible... e.g. what if I do typedefs [08:33:57.0000] I guess even the semantic checks disallow typedefs right now as written? [10:03:58.0000] can we get HTMLHyperlinkElementUtils.fragment returning '#' when url.href.substr(-1) === '#' and '' when url.href.substr(-1) !== '' ? :P [10:04:07.0000] also, hi all [10:04:32.0000] * !== '#' [10:09:21.0000] Netmo: that seems likely to break a lot of sites, so probably not [10:10:00.0000] indeed, asking for an alias that behaves that way, .hash and .fragment would behave the same, except that bit [10:10:55.0000] https://xkcd.com/927/ [10:11:58.0000] or, boolean HTMLHyperlinkElementUtils.isEmptyHash or something [10:15:55.0000] It seems pretty easy to write a JavaScript function to take care of this. No need to standardize, get agreement from all browsers, and ship extra code to every web page in the world. [10:21:16.0000] makes sense. i see you guys are spending a lot of effort trying to normalize existing stuff, rather than adding more [10:21:39.0000] actually makes sense, dom is already full of redundancies [15:50:59.0000] There's definitely a place for new stuff, but ideally when it adds genuinely new capabilities to the platform, or drastically increases effectiveness or similar via a better API. 2016-10-02 [07:00:44.0000] Is UIEvent supposed to be exposed only on Window? [07:14:22.0000] nox: seems logical [14:10:44.0000] esprehn: you might recall why HTML spec has compound microtasks? [14:12:57.0000] I'm not familiar with that term [14:13:49.0000] ah. I'm mostly wondering why MutationObservers and others (well, Promises) get processed differently [14:14:28.0000] feels like a bug to me, but I'm clearly missing something, since I don't know why we have these special cases [14:17:27.0000] smaug: the spec doesn't define the term, this whole section probably needs some love [14:17:52.0000] it looks like compound microtask are related to spinning nested event loops if im reading this right [14:17:55.0000] well, https://dom.spec.whatwg.org/#queue-a-mutation-observer-compound-microtask [14:18:07.0000] and then HTML spec uses that [14:18:21.0000] but I don't understand why MutationObservers are special here [14:19:38.0000] hmm that looks like batching ? [14:19:55.0000] the spec needs to define what a compound vs ... microtask is and what they're for [14:23:20.0000] Why each MO couldn't be notified as a normal microtask? [14:23:53.0000] smaug: or not. this actually seems like it's trying to describe the behavior where mutations inside microtasks queue more MutationObserver deliveries [14:24:30.0000] that's a good question. I dont think we have any of this special handling in the engine. I'm curious what the spec is trying to do here. [14:26:28.0000] esprehn: ok. thanks. I'll try hunt the source for this particular spec text tomorrow. [14:26:33.0000] our system is based on a scope with a depth counter. when the scope is exited and the depth is zero run microtasks. anything that would queue a microtask while in the process of delivering microtasks prolongs that delivery step. [14:26:35.0000] maybe Domenic remembers [14:27:13.0000] in Gecko MT (MutationObserver one, not the buggy Promise stuff) is also based on depth number [14:27:13.0000] This was Raf Weinstein's design I believe [14:27:22.0000] upon returning to the event loop we always perform a checkpoint as well [14:27:26.0000] Something about ensuring that the order of the mutation observers are notified is the same as the order they were subscribed in [14:27:44.0000] So you just have a single microtask that then runs through all the mutation observers or something. That's what a compound microtask is, I think. [14:27:46.0000] which catches cases like editing or the parser mutating without calling into script [14:28:03.0000] (whereas if you used normal microtasks it would just notify in the order that the mutations happened, which is for some reason not desired) [14:28:37.0000] Domenic: microtask processing in the spec is pretty confusing. I wish this was more pseudo code like. [14:28:44.0000] :) [14:29:07.0000] esprehn: concrete suggestions would be helpful; from my perspective it's pretty straightforward and algorithmic, but I'm sure I'm just too deep into it. [14:29:24.0000] Anyway yeah tomorrow someone should dig up the old bugs where I'm sure Hixie and raf had a long back and forth designing this system [14:31:43.0000] for starters the spec should define what the two types are [14:32:12.0000] it just mentions them and the links back are to the mentions, not to descriptions of their purpose [14:33:07.0000] ah i see yeah [14:33:18.0000] oh yeah, I was wondering what "solitary callback microtasks" are couple of days ago. [14:41:44.0000] the spec doesn't really guarantee ordering of MO. If callback for MO A modifies DOM, MO's after A will get notified first, since callback for MO A will be called only after 'perform a microtask checkpoint' is called the next time [14:41:46.0000] hmm 2016-10-03 [02:21:37.0000] I wonder how https://github.com/whatwg/html/pull/1842#pullrequestreview-2450763 happened [02:21:43.0000] The user no longer exists... [02:24:22.0000] weird [02:37:12.0000] smaug: https://github.com/whatwg/html/issues/1742 [02:37:59.0000] let me review a patch first [02:43:29.0000] smaug: I'm trying to figure out the compound microtask thing, but no luck thus far [02:43:31.0000] smaug: https://www.w3.org/Bugs/Public/show_bug.cgi?id=24810 [02:43:52.0000] smaug: it seems to be mainly about when microtasks run as tasks or some such [02:44:29.0000] smaug: so maybe when the user performs a "cut" operation and there's a mutation observer? [02:44:36.0000] is rafaelw still around? Haven't seen comments from him for awhile? [02:44:51.0000] not around [02:44:56.0000] for a long time [02:45:01.0000] as far as I can see [02:49:55.0000] smaug: I tried an email [02:51:59.0000] thanks [02:53:28.0000] github's way to link to comments is a bit annoying. Hard to see from the link which comment is being linked to [02:54:48.0000] So I did some searching and I think Rafael left Google and formed a company: https://github.com/rafael-atticlabs [02:55:50.0000] oh, plenty of ex-googlers http://attic.io/ [02:56:14.0000] Yeah, just noticed Aaron Boodman is there too [02:56:39.0000] Oh wow, Erik Arvidsson [04:07:46.0000] annevk: Seems like the Fetch spec website doesn't get updated anymore. [04:07:59.0000] https://fetch.spec.whatwg.org says 15 September 2016. [04:08:05.0000] annevk: Known problem? [04:09:05.0000] nox: fixed manually [04:09:19.0000] nox: will have a look later [04:09:25.0000] annevk: Thanks! [05:54:13.0000] Ms2ger: finally created https://github.com/servo/servo/issues/13557 [05:54:34.0000] Thanks [06:42:02.0000] Hi! I have a question about Web Sockets (RFC 6455). Can I use SPNEGO authentication and support SSO while using web sockets? [07:17:22.0000] https://jeenalee.github.io/doge-standard/ [07:26:19.0000] That's great [07:43:30.0000] The accompanying article is really good too [07:43:54.0000] http://jeenalee.com/2016/10/03/implementing-doge-for-servo.html [07:44:21.0000] I think I'll write a counterpart article for jsdom, just because it's such a great way of introducing people to contributing and the IDL/impl split and so on. [08:15:53.0000] annevk: ok, I think https://www.w3.org/Bugs/Public/show_bug.cgi?id=22296#c25 is good enough for me about microtasks. The reasoning isn't super clear though [08:55:11.0000] smaug: doh, forgot to read the linked bugs šŸ˜ž [12:21:47.0000] annevk: Domenic: has it been decided where .cookie should live? [12:21:51.0000] Document or HTMLDocument? [12:22:05.0000] I don't think anything has been decided [12:22:27.0000] I still think everything should be on Document and HTMLDocument should be an alias or empty vestige, but nobody seems to agree, so I'm bowing out of that discussion. [12:24:05.0000] IMO, aliasing is misleading [12:24:22.0000] empty, perhaps [12:24:31.0000] it's just a legacy thing IMO [12:24:36.0000] alias necessary for web compat [12:24:50.0000] but then, open/write/close really don't make sense outside HTML [13:23:37.0000] smaug: there is an issue with discussion on whatwg/dom [13:24:08.0000] smaug: I kinda argued to keep things limited to HTMLDocument too [13:24:38.0000] smaug: one problem is that browsers don't agree on where they use that object [13:29:27.0000] well, Gecko and webkit are quite similar [15:18:52.0000] I might have asked this before - both DOM and HTML define "ascii case-insensitive" - which reference should I prefer? annevk domenic [15:19:21.0000] Yeah... you did, and I think I answered "we should consolidate and make one point to the other", but annevk wasn't there to weigh in [15:19:23.0000] And whichever is preferred, can we get the other to un-dfn or at least hide their dfn from Bikeshed? [15:19:25.0000] I guess we should file an issue [15:19:26.0000] Ah, kk [16:13:12.0000] Hmm, HTML spec has "performing a microtask checkpoint" which really doesn't work in case someone uses showModalDialog [16:15:01.0000] (not that the spec has showModalDialog anymore) 2016-10-04 [18:18:55.0000] Yet again implementers are misled by a non-normative note -_- [20:46:04.0000] Domenic: which note? [20:46:57.0000] https://github.com/whatwg/html/issues/1852 [20:52:41.0000] /me looks [21:16:21.0000] posted a comment just now [21:16:31.0000] with link to https://github.com/whatwg/html/commit/65216fce862018e2052a7edd24485e41839dae6d [21:16:56.0000] which is not any more enlightening [00:15:53.0000] MikeSmith: https://github.com/whatwg/html/pull/1847 is waiting for you [00:45:55.0000] annevk: yeah will take a look at it shortly [04:02:38.0000] annevk: https://github.com/whatwg/html/pull/1854/files#diff-36cd38f49b9afa08222c0dc9ebfe35ebR78676 have we stopped with "return null and abort these steps" in HTML? [04:07:26.0000] zcorpan: https://twitter.com/zcorpan/status/783212065850875905 good point. Someone should write that as a followup [04:07:46.0000] idk if someone should be me :) [04:08:11.0000] šŸ™‚ [04:45:21.0000] annevk: I'm speccing navigationPreload.getState() to return an object like {enabled: false, headerValue: "blah"} - would the returned object have its own interface in webidl?? [04:45:30.0000] hah, too many ? [04:45:42.0000] makes it sounds stressy [04:49:16.0000] JakeA: return a dictionary [04:49:37.0000] ta! [05:08:28.0000] https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f#.bte6fur6n [05:31:22.0000] heh [05:31:31.0000] and I guess rather true [05:51:05.0000] annevk: I'm struggling to find a spec that returns a dictionary, they only seem to be used for arguments. Know anywhere I can cargo-cult from? [06:03:03.0000] JakeA: maybe RTC somewhere? It exists for sure [06:03:16.0000] annevk: will keep digging, cheers! [06:17:24.0000] JakeA: as for language, just create an IDL dictionary with the right members in prose and return that [06:58:01.0000] smaug: could you check https://github.com/whatwg/dom/pull/336#issuecomment-251067202 please? [06:59:02.0000] JakeA: might be better to create a WIP PR next time if you need feedback [06:59:10.0000] hrm, spec issue being discussed in a pull request [07:00:04.0000] annevk: sure. I'll create one when I fix those issues & add the preload response promise [07:00:15.0000] annevk: thanks for the feedback [07:00:53.0000] smaug: seems to just happen [07:01:14.0000] smaug: recently one happened on a commit, but I steered it towards an issue [07:01:47.0000] smaug: maybe it's something where if we remind folks enough it doesn't happen anymore at some point? [10:12:42.0000] are there still some cases when there is nested event loop spinning happening in the spec in such way that there might be JS on stack? [11:45:45.0000] Would it be helpful to anybody else than me to link to things like ES [[Get]] from the WebIDL spec? [11:50:34.0000] smaug: not sure, don't think so [11:50:58.0000] smaug: but bz now and then mentions alert() does not match reality [11:51:15.0000] smaug: and UAs still mess up sync xhr [11:51:38.0000] annevk: oh, I know what Gecko does [11:51:45.0000] but those are special cases [11:51:56.0000] showModalDialog is/was a bit different [11:52:07.0000] since the underlying page was still kind of running [11:53:01.0000] it is just that the spec prevents entering to microtask loop if we're there already [11:53:23.0000] Hmm okay [11:53:29.0000] my guess is that it never worked with showModalDialog and it got just fixed by removing showModalDialog [11:53:48.0000] That matches what I remember, yes. [11:54:00.0000] I've never really understood the full model [11:54:23.0000] Close, but there was always something [12:45:31.0000] is there any way to review spec changes using the generated HTML files? Some tool which shows then in the new page what was added and perhaps in previous version what was removed? [12:51:59.0000] tobie: it would be helpful, however, part of the issue is that most places that link to [[Get]] should probably instead be linking to Get() [12:52:09.0000] as part of the ES5 -> ES6+ update [12:52:54.0000] smaug: there is https://html.spec.whatwg.org/commit-snapshots/ which is currently kind of broken pending https://github.com/whatwg/html/pull/1857 [12:57:11.0000] Domenic: https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots-get-p-receiver ? [12:57:41.0000] tobie: the problem is that's only the definition for ordinary objects [12:57:49.0000] it's not applicable to any web platform objects for example [12:58:54.0000] Domenic: does that mean there's something else applicable in that case, or does that mean we're missing bits here? [12:59:13.0000] tobie: Yes, please link from WebIDL to ES. https://tc39.github.io/ecma262/#sec-get-o-p in this case. [12:59:37.0000] So for example, in the modern era, "value is the result of calling the [[Get]] internal method of V passing key and V as arguments." should become "Let value be ? Get (V, key)" [12:59:55.0000] With the link going to the thing jyasskin said [13:00:00.0000] (for Get(), not for [[Get]]) [13:04:39.0000] Oh poop, there's no way of getting DataTransfer objects [13:10:03.0000] Domenic: where is [[Get]] defined for platform objects, tho? [13:11:06.0000] tobie: indeed it looks like [[Get]] is one of the few things platform objects don't overwrite; my bad. But it's still incorrect to link to ordinary object [[Get]] in most cases, since e.g. in that dictionary case, we could be handed a proxy. [13:26:03.0000] Domenic: any idea who we talk to to get better links in the ES spec? [13:26:19.0000] tobie: bterlson, preferably by filing an issue. [14:35:10.0000] Whelp, rewrite of Blink's UTF-16 decoder landed. What could go wrong... [15:58:06.0000] annevk I guess?: Yo I stole your caniuse styles for Bikeshed. 2016-10-05 [23:53:45.0000] Domenic: platform objects by default should not require a proxy [23:54:05.0000] TabAtkins: likely Hixie [00:37:20.0000] annevk: re-open dictionary, why are we not picking the same processing model for open dictionary than for existing dictionaries? [00:37:58.0000] tobie: not sure, would make sense if we did [00:38:47.0000] tobie: maybe currently impls don't, but does not seem like a breaking change [00:39:32.0000] annevk: not sure what you mean. Open dic isn't implemented anywhere, is it? [00:47:45.0000] tobie: Fx has MozMap [00:48:07.0000] tobie: not sure what others do for Headers [00:48:26.0000] annevk: IS the only use case of MozMap Headers? [00:48:57.0000] tobie: I think there is some other internal usage [00:49:22.0000] annevk: I see. [00:50:52.0000] annevk: if we want open-dictionaries and dictionaries to be variants of the same "type" and want conversion with half-open dictionaries in the not too distant future, then I believe we want the same processing model for both [00:52:37.0000] annevk: if the only reason for a model change is to map (pardon the pun) MozMap, then it feels like that shouldn't be a huge compat issue [00:53:24.0000] annevk: if there are other reasons I'm not aware of (e.g. perf?) then the story is different. [00:53:30.0000] tobie: note that I'm not sure what the reason for the diff is [00:53:41.0000] tobie: jyasskin might know [00:54:04.0000] tobie: but seems like something we should get clarified [00:54:23.0000] annevk: yup--commenting on the issue [01:05:02.0000] ta [01:30:12.0000] zcorpan: as I chatted with rniwa about alternative stylesheet handling in shadow dom, I read again https://github.com/w3c/webcomponents/issues/391 and found https://www.w3.org/Bugs/Public/show_bug.cgi?id=29349 is still open. Does it make sense to move the bug to csswg-drafts issue and work on it? [01:31:47.0000] kochi: submitting a PR to close that bug is fine too [01:32:10.0000] kochi: that's what we do for legacy bugs for most WHATWG drafts [01:34:35.0000] annevk: okay, no need to migrate the issue to github. [01:35:16.0000] kochi: yeah, perhaps only if it needs a lot more discussion that's worth it, since it's easier for folks to use GitHub [01:35:42.0000] kochi: but moving all the issues from one place to another creates a lot of noise unfortunately [01:36:26.0000] annevk: i see, probably the discussion is all set for the issue, what is left is to update cssom spec accordingly. [02:01:35.0000] When is something a trusted event? [02:01:44.0000] If the ECMAScript stack is empty? [02:05:15.0000] If the UA dispatches it, generally [02:06:00.0000] Ms2ger: but click() is dispatched by the UA too [02:06:46.0000] "generally" :) [02:07:13.0000] Yeah, so when would ECMAScript stack being empty not be a good condition? [02:07:46.0000] postMessage? I guess that might run off a task [02:08:03.0000] annevk: click() dispatches synchronously? [02:08:32.0000] ondras: yes [02:09:04.0000] ah [02:09:50.0000] Ms2ger: it does, but I guess it's an exception therefore, since isTrusted is false [02:10:10.0000] Oh, it is? [02:10:18.0000] Maybe smaug has more of this paged in [02:11:28.0000] I think he might be the only one [04:04:45.0000] annevk, what's this "trailer" stuff in fetch? [04:05:16.0000] Ms2ger: feature from HTTP folks wanted to see exposed [04:05:48.0000] Ms2ger: some subset of implementers of most browsers seemed okay with it, but nobody started implementing afaik [04:05:56.0000] I see [04:12:23.0000] smaug: per your comment about postMessage() needing to dispatch trusted events, does that mean it's basically about the JavaScript stack being empty? [04:12:50.0000] smaug: also, how does that make click() an exception? Since in that case the JavaScript stack wouldn't be empty (and the event is untrusted, or should that be trusted too?) [04:13:25.0000] annevk: well, mutation events are trusted [04:13:52.0000] smaug: I see [04:14:19.0000] smaug: that is a little weird [04:14:39.0000] smaug: but I guess it depends on what the principles all [04:14:41.0000] are* [04:16:55.0000] all the UA dispatched events are trusted, and click() is a special case since it is just a shorthand to: element.dispatchEvent(new MouseEvent("click")); [04:17:01.0000] something like that [04:17:22.0000] I think click() is a little more complicated than that, but okay [04:17:40.0000] I'm going to open an issue against whatwg/dom to get this settled throughout specifications [04:19:25.0000] click() does check/set/clear the "is handling click event flag", but other than that, it just dispatches the event [05:36:21.0000] why is a callback function not distinguishable from a dictionary? [05:37:44.0000] ā€¦or from an object? [05:41:28.0000] A dictionary is just an object [05:43:08.0000] write, but a callback function is a function, right? [05:44:15.0000] And a function is little more than an object :) [05:45:12.0000] well, it's precisely "little" more (it is callable). [05:46:40.0000] Sure [05:47:06.0000] Dunno if the distinguishability check ever looked at IsCallable [05:47:19.0000] tobie: annevk: how could you possibly have the same processing model for them? they're completely different. [05:47:29.0000] dictionaries have a set of known keys, open dictionaries need to enumerate all keys. [05:47:59.0000] Domenic: it's about considering just own props vs also protoprops [05:48:10.0000] Domenic: that ^ [05:48:19.0000] Domenic: that's one of the differences bz highlighted [05:48:23.0000] OK. [05:48:28.0000] Domenic: tobie: I'm typing a reply to the issue atm [05:48:39.0000] I think a JS implementation would probably do Object.keys() [05:48:55.0000] in ES we've made a few decisions based on own-enumerable as the "copying protocol" [05:49:05.0000] E.g. Object.assign or the upcoming { ...objectSpread } [05:49:25.0000] Domenic: so that would be different from dictionaries in IDL then [05:49:44.0000] Right, because they're very different models... [05:49:49.0000] Domenic: and wouldn't cater for flattening DOM objects [05:49:50.0000] For dictionaries you just do `obj.prop` [05:50:05.0000] For open-ended things you enumerate the props [05:50:22.0000] At TC39 we discussed this as "classes vs. records" [05:50:29.0000] classes have prototype chains, records do not [05:50:37.0000] Property access needs to work for both so it uses the prototype chain [05:50:41.0000] Domenic: you should totally weigh in with this stuff I thikn [05:50:49.0000] but things like Object.assign, Object.keys, { ...objectSpread } do not [05:50:50.0000] Yeah [05:50:56.0000] Just woke up ^_^ [05:50:59.0000] Domenic: esp ...objectSpread, decisions made in TC39/JavaScript so far, etc. [05:51:02.0000] Domenic: fair [05:52:51.0000] But for devs, imagine how crazy it'll be if half-open dictionaries allow properties on the proto if those are defined by a dictionary member but on the object only if they're not. [05:53:35.0000] tobie: yeah, web animations seems to have that mismatch at the moment, I agree that's weird [05:53:39.0000] Domenic: ^ [05:53:55.0000] I think jyasskin's intuition is right and that the difference only matters in obfuscated JS contests [05:54:10.0000] For the common case of foo({ bar: x, baz: y }) it does not matter [05:57:33.0000] Domenic: I can totally imagine creating a base class with shared options, which would work well for those properties defined with member dictionaries but break unexpectedly the minute I add an unspecified property [05:57:53.0000] tobie: that's the reason why we distinguish between classes and records. [05:58:00.0000] You can't in general use classes for options [05:58:13.0000] It'll break many parts of the language (Object.keys, Object.assign, object spread) [05:58:32.0000] Rereading that thread I notice that I indeed missed jyasskin already pointed out that difference (though no motivation, so asking still seems reasonable) [05:58:42.0000] But more importantly, bz dropped a StructuredClone bug report in there [05:59:04.0000] I really thought we went through StructuredClone with aklein and got everything right, last time :-S [05:59:50.0000] Domenic: can't we move away dictionaries from fetching stuff on the prototypes, then? OR would that break web-compat? [06:00:39.0000] tobie: I don't think that's desirable, since it would mean dictionaries do something more exotic than `foo.bar`. The problem here is with the JS language which hasn't reified the difference between records and class instances. [06:01:59.0000] Domenic: you mean apart from the serializing/deserializing mess? -_- [06:02:15.0000] heh [06:02:36.0000] tobie: we can't move away from that, e.g., new Request(url, oldRequest) is a thing now [06:03:25.0000] but oldRequest isn't specified as a dictionary there, is it? [06:03:52.0000] Domenic: I understand your perspective and I agree that it makes sense from it, but that seems like favoring technical purity over dev experience. [06:03:54.0000] tobie: it is, the class just happens to match the record layout [06:04:14.0000] (to use Domenic's terms) [06:04:30.0000] /me 's head explodes [06:05:45.0000] maybe half-open dictionaries are a dreadful idea. [06:06:46.0000] Domenic: seems bz missed that StructuredClone fails on proxies, pfew [06:07:12.0000] tobie: well, I think web animation shipped [06:08:38.0000] I don't think the dev experience will be changed either way [06:10:19.0000] well, a long time ago I would have argued these weird corner cases are the reasons people hate Web developmentā€¦ [06:10:28.0000] nowadays we have this: https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f [06:11:24.0000] tobie: https://twitter.com/steveklabnik/status/783321843793010688 [06:12:37.0000] Corner cases not working across browsers is more problematic I think [06:12:48.0000] And it's not clear we have good solutions here [06:13:30.0000] annevk: imo that's missing the problem; the big problem with JS-land is we have multiple different package managers which work in different ways, many of which are really designed for server-side JS but we use them for client-side stuff anyway. [06:14:37.0000] also the JS community is so full of fads that come and go so fast; there's so little stability in what's considered good [06:15:20.0000] annevk: whereby "here" you're referring to the Web in general or half-open dictionaries? [06:15:32.0000] annevk: sort of lost context [06:15:52.0000] tobie: heh, half-open dicts [06:16:01.0000] tobie: though I guess same for web in general? [06:17:09.0000] annevk: yeah, the latter goes without saying, I could have framed my question more precisely. :) [06:19:47.0000] speaking of web dev today, I find it kinda sad I have little motivation to write in JS or CSS, rather than languages that compile to them [06:39:02.0000] there's only one package manager for JS these days, and it's designed for both ecosystems... [06:41:07.0000] gsnedders: Which languages btw? [06:42:14.0000] Domenic: depends whether you consider npm and bower the same, which they probably aren't [06:45:09.0000] nox: TypeScript and SCSS mostly [06:45:31.0000] gsnedders: Nice. I fancy the TS engineering even though I don't use JS nor anything that targets it. [06:46:39.0000] my experience with TypeScript is that it didn't really solve any real problems and just gave me a bunch of extra crap to do to get anything done, while simultaneously breaking liveedit and debugging [06:47:22.0000] I'm not sure why anyone feels that's a good thing, but I guess opinions and experiences vary :x [06:49:29.0000] tobie: jyasskin : Domenic: so maybe the solution is to have record and for half-open we could do (record<> or DictionaryName) [06:49:29.0000] bower doesn't really exist anymore [06:49:48.0000] I guess maybe polymer pretends it does [06:50:15.0000] annevk: the union type doesn't work because halfopen wants to grab several fields with type conversions/required/etc. and then enumerate the rest [06:50:39.0000] Domenic: yeah, I guess that would end up being a little confusing [06:53:52.0000] Domenic: as for why I'll argue npm is really designed for server-side stuff: it doesn't really handle non-JS assets in any decent way. bower is still relied on by a fair few things, for better or for worse. [06:54:06.0000] well, given Domenic's input on the issue itself, it seems this is essentially a problem with ES itself. [06:55:16.0000] caitp: I definitely have experiences of TS finding bugs that would've been missed otherwise in all likelihood. And given plenty of things rely on build-steps anyway, liveedit is pretty much already dead for better or for worse. [06:55:26.0000] gsnedders: I guess this is just ignoring the reality of JS dev as it exists today, which is that people use npm for client side including all non-JS assets with no issues. [06:55:50.0000] Domenic: oh, I'm not saying people *don't* use it for it [06:56:00.0000] Domenic: I'm just saying that it doesn't address those needs well [06:56:14.0000] gsnedders: it'll eventually do so. it's on their roadmap [06:56:37.0000] I wouldn't be so offended by the "extra crap it forces you to do" if optional types were an engine feature, and I believe Mozilla is interested in exploring that possibility? At least, that's what "typed objects" sounds like [06:56:45.0000] tobie: I don't doubt it; it's an obvious thing to fix for the front-end side of things. [06:57:51.0000] caitp: I think there's generally an interest in adding gradual typing to ES, but I think there's some hesitancy about it given ES4's gradual typing was certainly a significant downfall [06:58:51.0000] caitp: aren't typed objects just ArrayBuffer objects with fancy access? [06:59:16.0000] I have no idea, I'm not familiar with their plan for it [06:59:20.0000] caitp: and, uh, what annevk just said. [06:59:25.0000] but it sounds similar to v8's experiments [06:59:31.0000] by title alone [06:59:58.0000] annevk: they aren't necessarily array-like, though [07:00:42.0000] gsnedders: what I remember sounded like structs, which I'm also not super familiar with, mind you [07:01:12.0000] /me doesn't know quite what the current proposal is, having been out of the TC-39 world for a long while now [07:02:19.0000] are you thinking like, the "value types" thing? [07:02:36.0000] annevk: wrt new Request(url, oldRequest), couldn't you redefine the constructor's second argument as (dictionary or Request) or are there weird WebIDL rules that prevent you from doing so? [07:03:56.0000] tobie: it's possible, though it would be subtly different of course and doesn't address other places that take dictionaries [07:04:10.0000] annevk: agreed. [07:04:48.0000] tobie: I guess we need to decide how important half-open is [07:04:58.0000] tobie: otherwise record<> seems like the way to go for now [07:05:29.0000] tobie: we could separately discuss if redoing dictionary is worth it, but I suspect not, given that dict.member is kinda intuitive [07:06:13.0000] annevk: agree. well, not reaching into the proto chain could be explained by the fact we're passing by value. [07:06:45.0000] annevk: i.e. there's some form of cloning going on (however that's described in the spec) [07:28:15.0000] beverloo: I can try land that now [07:29:12.0000] annevk, thanks! we're looking at one or two more things and then we're going to pause for a while, at least until you or Microsoft catch up [07:29:14.0000] beverloo: actually, if John could enable contributions from others to that branch I can fix it up and land it [07:29:40.0000] beverloo: he should have a little checkbox in the sidebar [07:31:30.0000] annevk, done [07:45:04.0000] beverloo: same [07:45:25.0000] beverloo: please say "thanks John" [07:45:54.0000] done :) Thank you! [08:02:55.0000] annevk: Yeah, "value types" are fancy wrappers around array buffers basically, + some niceties about comparison and possibly operator overloading. [08:03:56.0000] /me still really wants someone to champion them so we can use them in CSS. [08:04:21.0000] value types are different from typed objects [08:04:31.0000] i think it's typed objects that are wrappers around array buffers [08:05:52.0000] Hmm I guess it all fits together per latest thinking https://github.com/nikomatsakis/typed-objects-explainer [08:05:53.0000] I was under the impression that value types were still limited in what they could contain to basically be array buffers. [08:06:07.0000] Yeah, otherwise you don't get value equality. [08:06:30.0000] "How It Feels to Learn Javascript in 2017" is going to be great with this stuff [08:07:03.0000] I liked https://twitter.com/jdalton/status/783348903940718593 on that subject [08:08:38.0000] I think that tweet misses the point [08:09:04.0000] I disagree with all the disagreement to that article. JS really is in a confusing state right now, and has been for a few years. I don't think it's just a normal amoutn of complexity, compared to other languages. [08:09:40.0000] it is a mess, definitely [08:09:40.0000] The criticism of js is that there's a lot of accidential complexity that people deeply embedded in the community don't notice because they learnt each new thing incrementally [08:09:44.0000] TabAtkins: In Bikeshed, if I have "Let response be the result of fetching request" and I wanted "fetching" to link to https://fetch.spec.whatwg.org/#concept-fetch, what's the best way to do that? [08:10:01.0000] Whereas for someone coming in it's a wall of WTF [08:10:16.0000] JakeA: That should just work? [08:10:40.0000] jgraham: Right. And it hasn't been integrated or polished yet so that it's approachable for newcomers. [08:10:59.0000] JakeA: fetching should work, that is. [08:11:46.0000] (and ftr I don't think it's a "js-the-language" criticism so much as a "js-the-ecosystem" criticism) [08:11:47.0000] TabAtkins: Bikeshed somehow understands that "fetching" should point to https://fetch.spec.whatwg.org/#concept-fetch? I thought I'd have to add "text: fetching; url: concept-fetch" to the anchors [08:12:08.0000] I think you could write our own article about js-the-language, tbh, but yes [08:12:09.0000] JakeA: Oh gosh no. Anchor block is just for specs that aren't in the Bikeshed db; Fetch definitely is. [08:13:08.0000] the ecosystem is scary, but people feel they have to use that ecosystem instead of just js-the-language, so the two are sort of undistinguishable [08:13:16.0000] TabAtkins: ahh, so is "fetching" linked to "fetch" somewhere? [08:13:30.0000] Or does it perform magic around ing [08:13:43.0000] Bikeshed's got some auto-Englishing around "dfn" type autolinks. [08:13:52.0000] caitp: I think I agree with that, but my point is that I don't see what language changes you could make to solve the problems [08:14:01.0000] Most of the standard English word variants will work. [08:14:28.0000] ahh ok. Cheers! [08:14:44.0000] jgraham: they'll add new paragraphs about "use babelXXX preset 2019 to use value types, but note that these are not the same as the support for typed objects by TypeFlowScript v. 29.0.1" [08:16:33.0000] http://cube-drone.com/comics/c/how-it-feels-to-learn-javascript-in-2016 [08:17:46.0000] compare it to learning rust or objc [08:18:36.0000] anyways, time to get back to doing productive things [08:19:01.0000] I mean the fact that js seems to get far more feedback of this kind than any other language could mean something. Or you could ignore it and imply that everyone who isn't totally happy with the ecosystem is a caveman, I guess [08:21:02.0000] I imagine that, for example, Lisp had the same complaints about it before they went and standardized an enormous stdlib. Lots of different OO systems floated around for a while, for instance. [08:21:48.0000] jgraham: I think JS gets far more of this feedback because it is used far more. [08:22:28.0000] Domenic: how crazy would it be to have open dictionaries iterate the prototype chain? The spec language is more complicated, but it looks doable. [08:22:57.0000] jyasskin: not _crazy_, but I tried to argue this morning for why I think it is a bad idea. [08:23:29.0000] I haven't read the issue yet; I'll go do that. [08:30:07.0000] Domenic: That would imply people are ~equally frustrated by ecosystem problems when they try to learn Java, C#, C, Python and PHP (based on various programming language popularity metrics I can find, which are of course not of great reliability) [08:30:27.0000] jgraham: that's been my experience, especially in Java and PHP. [08:30:49.0000] I'm pretty sure it's not true of Python [08:31:20.0000] So if your claim is "js is no worse to use than Java or PHP", I guess that might be true [08:31:28.0000] But it's a pretty low standard [08:32:16.0000] Well, the metrics I have seen indicate it outstrips those (especially Python) by a lot [08:32:32.0000] I don't think this discussion is terribly productive though, so we can just agree to disagree and move on. [08:32:50.0000] Sure, all I have are unreliable programming language ranking websites [08:32:55.0000] Sure [09:02:12.0000] TabAtkins: How do I solve "Multiple possible 'dfn'"? I guess I'm looking for an attribute or something where I can remove the ambiguity [09:05:23.0000] JakeA: The error message should tell you how to solve that. [09:05:50.0000] TabAtkins: Multiple possible 'dfn' local refs for 'type'. Arbitrarily chose the one with type 'dfn' and for 'service worker'. [09:05:55.0000] Doesn't seem so [09:06:07.0000] Oh, multiple locals. [09:06:11.0000] I want it to be https://fetch.spec.whatwg.org/#concept-response-type [10:28:00.0000] Domenic: you should know, what does promise.then(another_promise) do? [10:29:52.0000] Smaug: nothing, it's just an error [10:30:11.0000] aha [10:30:18.0000] /me was just reading some code [10:31:49.0000] Domenic: hmm, so promise.then(another_promise).then(function { console.log("foo")}); won't print foo? [10:31:56.0000] /me tests [10:33:21.0000] I think it will just ignore the first then [10:33:32.0000] It's equivalent to passing undefinef [10:34:47.0000] aha [10:35:07.0000] confusing [10:35:18.0000] /me would expect then() to throw in this case [10:35:50.0000] but ok, thanks [11:15:56.0000] Domenic: I'd also expect it to throw. Is this "like undefined" behavior due to the thenable-coercion we ended up speccing? [11:19:28.0000] > Domenic: hmm, so promise.then(another_promise).then(function { console.log("foo")}); won't print foo? << it should throw, argument to then() must be callable [11:37:16.0000] TabAtkins: no, unrelated. [11:37:28.0000] caitp: no, if the argument to .then is not callable it's ignored. [11:37:42.0000] At the time the only precedent was JSON.stringify/parse which ignored non-callables. [11:37:59.0000] ah, you're right [11:40:03.0000] I saw the "If IsCallable(onFulfilled) is False, then..." and assumed the worst :p [11:47:46.0000] FWIW I once spent some considerable time tracking down a bug due to promise1.then(promise2) rather than promise1.then(()=>promise2) [11:48:22.0000] (it was less obvious than that in real life ofc because the argument to .then was a function call [11:48:25.0000] ) [11:48:34.0000] Yeah, I wouldn't be surprised if it's not changeable now, but my experience with the platform would lead me to believe that it would throw, as that's the usual WebIDL behavior when you pass something unsuitable. [11:48:51.0000] Yeah, not waying we can change it [11:49:10.0000] Just that it's a design choice that caused a difficult-to-diagnose bug [11:49:18.0000] *saying [11:49:43.0000] IMO browser consoles should warn on it [11:56:33.0000] A dead horse at this point, but still like Dion's perspective on the topic: https://medium.com/ben-and-dion/i-want-to-go-back-to-the-1950s-of-web-development-fa69d7fe357a [11:56:38.0000] don't you think that would just incur performance hits that would lead people to just use Bluebird instead? [11:57:11.0000] I mean, they already use BB instead of native promises because of the performance anyways, but... [11:59:09.0000] Why does the number of nullable member types of a union type must be 0 or 1? (http://heycam.github.io/webidl/#dfn-number-of-nullable-member-types) [11:59:25.0000] JakeA: Did you ever get an answer for your multiple-dfn error? I think you want `type`. [12:04:12.0000] hi [12:04:42.0000] Oh shoot yeah, I didn't answer Jake. Yeah, the `for="whatever"` thing is what you want - just match whatever the you want uses. (Or if the one you want doesn't have a `for` attribute, use `for=/` on the link.) [12:05:29.0000] tobie: Because otherwise you can't tell, when you recieve a null, which nullable type it was meant for. This is important if you change behavior based on the type you receive. [12:13:37.0000] TabAtkins: why then do we have an algorithm to count the number of nullable types of a union? http://heycam.github.io/webidl/#dfn-number-of-nullable-member-types [12:14:30.0000] tobie: For the purpose of restricting you to 0 or 1. [12:14:37.0000] TabAtkins: :D [12:14:58.0000] I'm not being sarcastic - follow the uses of the definitions. ^_^ [12:15:53.0000] TabAtkins: I know. That's what's funny, actually. [12:17:14.0000] TabAtkins: this whole sections seems a lot simpler in practice than how it's specified. [12:17:23.0000] tobie: Probably! [12:19:45.0000] TabAtkins: Thanks for the explanation. [12:27:00.0000] tobie: so you know which branch of the union null should go to, probably [12:27:18.0000] oh tab already answered [12:27:26.0000] yeah--thanks [12:33:31.0000] jyasskin: cheers! Will give that a go [12:42:16.0000] tobie: I think there's a lot in WebIDL that we can simplify. [12:42:57.0000] Oh, so union types are not associative because of how null types work. `(DOMString? or Node)` is *not* the same as `(DOMString or Node)?` [12:44:59.0000] Hence (Foo or (DOMString or Node)?) != (Foo or DOMString or Node)? [12:45:52.0000] jyasskin: I hope you're right [12:47:38.0000] Yes, that sounds right. You get extra "which type" information as you push the ? down. I hope nobody's taking advantage of that. [12:51:29.0000] jyasskin: well if nobody is, the whole thing can be simplified to making union types associative and making the quality of being nullable bubble. [12:51:51.0000] *bubble upwards. [12:52:16.0000] That would be awesome. We'd probably have to lead with a Blink/Firefox patch doing it, to see what breaks. [12:53:49.0000] jyasskin: coming mostly from JS, the whole idea of tying null to a type is sort of forain to me, so I find it hard to picture what this could break, here. [12:58:12.0000] Imagine that a spec has (DOMString? or Node), and then the text says "if a DOMString was passed, do X; otherwise for a Node do Y". By bubbling null, we force the spec to change to treat null explicitly. [13:00:57.0000] We could try to make "DOMString?" an alias of (DOMString or Null), but then we get the restriction that (DOMString? or Node?) is banned right back. [13:06:41.0000] Well, it's banned for precisely the same reason, right? Not to have to treat null explicitly. [13:08:05.0000] I'm curious though as to real examples of APIs allowing null but not handling it explicitly. [13:11:49.0000] Me too. I don't have any, but my guess is that because it's possible, it's been done. [13:12:16.0000] Making the change in a browser is probably the best way to find examples. [13:15:24.0000] Yup and running the output through CI. 2016-10-06 [17:35:08.0000] do we have a list somewhere of features that now require a secure context? [17:37:33.0000] maybe https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts is closest [23:45:11.0000] MikeSmith: I don't think there's a canonical list anywhere. New features will eventually start using the `SecureContext` IDL attribute, so dom's IDL index might be useful in the future. [23:46:02.0000] MikeSmith: Looking backwards, it's something of a free-for-all where different browsers have deprecated different things. Chrome's been fairly aggressive. I hope other browsers are doing the same, but I haven't really been following their progress. [00:24:38.0000] I don't think we've made much progress, if any [01:19:15.0000] MikeSmith: do you know if anyone is maintaining services.w3.org/htmldiff (or if there's a better service out there)? [03:28:18.0000] annevk: MikeSmith: http://software.hixie.ch/utilities/js/live-dom-viewer/saved/4546 [03:31:26.0000] zcorpan: cool, but... maybe a little thicker? http://1.bp.blogspot.com/_RxRHkpoGgAc/TExDs0nvs4I/AAAAAAAAAvk/FjywgVo8TbE/s1600/dog%2Bbone%2BCely.png [03:33:34.0000] Is that for the doge spec? [03:33:44.0000] Ms2ger: Fetch [03:34:01.0000] Oh, clever [03:34:12.0000] Also need an angle-bracket cat for HTML [03:39:19.0000] annevk: http://software.hixie.ch/utilities/js/live-dom-viewer/saved/4547 [03:47:53.0000] A little less thick, please [03:47:55.0000] /me ducks [03:51:23.0000] Heh, I think it needs more symmetry; can try some hacking myself though next week [04:04:04.0000] annevk: better? :-) http://software.hixie.ch/utilities/js/live-dom-viewer/saved/4548 [04:31:05.0000] zcorpan, I like that one more [05:08:21.0000] mkwst: OK thanks [05:08:47.0000] tobie: dunno about services.w3.org/htmldiff but if anybody would know it would be Dom I think [05:09:18.0000] MikeSmith: yeah, sorry, bugged him in the meantime and already got my issue fixed. :) [05:09:34.0000] haha [05:09:35.0000] OK [05:10:48.0000] zcorpan: yeah the thicker one is better I think too [05:14:33.0000] zcorpan: šŸ‘ [05:15:57.0000] annevk: https://github.com/whatwg/resources.whatwg.org/pull/19 [05:19:48.0000] I can't update the Twitter account atm [05:24:12.0000] annevk: https://github.com/w3c/web-platform-tests/pull/3879 [05:24:43.0000] heycam|away|away: anyway you could give me admin privileges to the WebIDL GH repo? I need to setup hooks for a bot on the repository and give it write access. [05:31:14.0000] MikeSmith: gonna let youenn review [05:31:23.0000] k [06:23:35.0000] FYI tomorrow and next week i will be on vacation [07:31:47.0000] zcorpan, have fun [07:32:09.0000] thx, I will :-) [09:25:34.0000] tobie: And turn on the HTTPS option. :) [13:35:24.0000] jyasskin: planning to get back to you on the open-dictionary issue tomorrow morning. [13:36:25.0000] tobie: Thanks! I'm glad bz hasn't shot any major holes in it. :) [13:36:48.0000] jyasskin: sorry for having been slow and not as precise as I'd want to be with thisā€”learning as we go. [13:37:14.0000] Pff. You got it into Bikeshed so I could send the patch at all. [13:37:52.0000] sure. :) still. 2016-10-07 [18:50:28.0000] tobie: I don't think that's possible for a non-org owned repo. let me know what hook url to add and I'll add it. (though I realise you might still want to click that "send a test hook message" button and won't be able to.) [23:05:42.0000] heycam: Would it make sense to transfer the repository to an org? [00:47:17.0000] Hello World!My name is Katerina. [00:47:18.0000] I am applying to the Outreachy internship for this program. [00:47:18.0000] I have strong experience on HTML and am interested on contributing to HTML standard. [00:47:18.0000] I could work on issue #1429 (https://github.com/whatwg/html/issues/1429) as my first [00:47:18.0000] contribution. [00:48:16.0000] I would also like to know what additional programming skills are required :) [00:48:33.0000] Thanks :) [00:58:39.0000] pycat: we don't currently participate in Outreachy I believe; where did you read that we were? [00:59:11.0000] pycat: you're welcome to nevertheless contribute though šŸ˜Š [01:05:06.0000] annevk: Yes, just noticed that i was in Outreachy round 12 section, but i am interesting anyway :) [01:07:09.0000] annevk: could you tell me more about the required skills [01:10:59.0000] pycat: some knowledge about algorithms and programming, not really any particular language since it's mostly English (unless you want to work on tooling/tests); bit of experience with making web sites would also help [01:15:37.0000] annevk: great, i have some experience on making custom web sites with python django framework [01:16:43.0000] annevk: i would like to know some more about tooling/tests [01:17:47.0000] pycat: and to solve the more involved issues you'll have to figure out what browsers do [01:18:45.0000] pycat: through some combination of using JavaScript APIs, maybe reading source code, and observing behavior [01:19:07.0000] annevk: this will be my very fist time contributing to open source so any help and information will be more than welcome :) [01:20:00.0000] pycat: quite a lot of what we do is document existing JS APIs better, and try to get all browsers to implement them in the same way [01:27:23.0000] pycat: the other thing I suppose is that you need to learn GitHub a bit [01:27:46.0000] pycat: how to make a pull request and such [01:28:30.0000] pycat: I believe README/CONTRIBUTING files have guidance there [01:30:10.0000] annevk: i already have some experience on git and github, mostly working individually [01:30:36.0000] pycat: great [01:31:54.0000] annevek: great, i will proceed on README/CONTRIBUTING. I hope i'l have my first pr soon :) [01:36:35.0000] annevk: Thanks a lot for the guidance!!!I hope well talk soon! [02:21:05.0000] pycat: thank you! [04:16:26.0000] slightlyoff: where's the Google document giving the different levels of DRM? My Google-fu isn't good enough, seemingly [05:34:14.0000] annevk: https://stackoverflow.com/questions/39878142/redirect-failing-on-cors-request if you have time to answer there [05:45:46.0000] MikeSmith: answered half [05:46:40.0000] thanks [05:49:15.0000] I wonder if there are browser bugs open to implement the preflight-redirect change [05:50:01.0000] in general it seems like we should have more systematic way of getting browser bugs filed for changes like this [05:57:15.0000] Yeah, maybe I should reopen that issue to get bugs filed and fix tests [05:58:10.0000] Too tired to get much done atm [10:29:09.0000] ++Domenic [10:29:41.0000] because the whatwgāŠ™wo response? [10:31:46.0000] yes [10:31:48.0000] thanks [10:32:15.0000] I feel sad for that list :-/. It has a lot of high-powered subscribers but I'm afraid we're just wasting their time. [10:33:37.0000] It probably makes sense to convert it over to being manually filtered. [10:33:50.0000] (I think we should do the same to the csswg list.) [10:34:01.0000] interesting [10:36:02.0000] TabAtkins: ah, yes. Given that the mailing list is low-traffic these days, filtering would make sense. [10:36:12.0000] and shouldn't take too much anyone's time [10:36:33.0000] Exactly. And it lets you head off these sorts of emails with a quick reply pointing them to the guidelines. [10:36:53.0000] You could even apply filtering only for first-time posters [10:37:15.0000] Domenic is already having his time wasted by these; it wouldn't increase his burden at all, and would save other people. ^_^ [10:37:39.0000] Yeah, that's pretty typical. [12:18:38.0000] tobie: Do you have sample code for Generic Sensors if a page wants to start watching a sensor's changes, but also use its current value as the first of those changes? [12:28:11.0000] jyasskin: On a spotty mobile connection in a fast train for the foreseeable future. [12:28:57.0000] jyasskin: yes this is the default behavior [14:55:17.0000] jyasskin: That's the "ReactiveValue" I talk about in http://www.xanthir.com/b4PV0 if Domenic or whoever would hurry up and standardize Observers. ^_^ [14:57:13.0000] TabAtkins: There it is! I knew you'd sent me that link before, but couldn't find it. 2016-10-09 [15:52:23.0000] gsnedders: I can't find link easily either. Will send you a copy, tho 2016-10-10 [17:13:15.0000] rektide: no idea what you mean by https://twitter.com/rektide/status/785210610829168644 ā€œspecs assume a 1-of-each principle. Yes, most people only want 1 gyro, 1 compass, 1 ALS, 1 sound cardā€ [17:16:47.0000] because, e.g., device orientation API and geolocation API assume nothing at all about what kind of sensors on the device expose the orientation information, or how many of them are usedćƒ¼whether thereā€™s even a gyro at all vs some other way(s) to determine the orientation, or whether the location info is from a GPS sensor or cell triangulation or some combination of sensors [17:17:06.0000] also, what is ALS? [17:27:09.0000] ambient light sensor? [17:27:52.0000] (unless they're referring to the American Lumber Standard) [17:58:04.0000] astearns: ah OK [00:04:03.0000] @media (400px <= min-width <= 700px) { ļæ½ } [00:04:08.0000] /me wonders if that's right [01:44:08.0000] rektide: trying to address all of these issues in the Generic Sensor API (https://w3c.github.io/sensors/) [01:47:03.0000] rektide: comments welcome. [02:32:30.0000] MikeSmit1: should maybe give youenn WPT rights? See https://github.com/w3c/web-platform-tests/pull/3592 [02:32:33.0000] I'll merge that for now [02:46:12.0000] I looked through the worker tests and I cannot really find any that use data URLs, other than some importScripts tests [02:46:17.0000] Where importScripts gets passed a data URL [02:59:44.0000] annevk: Yeah I will add yoenn once I get back to my pc [05:57:16.0000] Hmm [05:57:33.0000] Chrome dispatches a string to window.onerror?! [05:58:26.0000] Oh I don't understand how this works [06:23:40.0000] Doesn't window.onerror get something like 5 arguments? [06:23:45.0000] It's super-strange. [06:38:15.0000] It does [06:38:23.0000] And is [06:40:00.0000] Isn't there some reason the strangeness is good [06:40:20.0000] Like it prevents cross origin leaks [06:44:15.0000] jgraham_: that is fine, but it not behaving like a normal event handler is not [06:44:48.0000] jgraham: btw, would appreciate help with https://github.com/w3c/web-platform-tests/pull/3945 if you got some time [06:46:32.0000] annevk: What doesn't work? [06:47:02.0000] jgraham: it seems the harness still trips over the exceptions somehow [06:48:36.0000] jgraham: in particular, I get "uncaught exception: 2" [06:48:46.0000] annevk: Oh, allow_uncaught_exception doesn't play well with file-per-test [06:49:16.0000] Because file_is_test is using the exception to track whether the test passed [06:49:35.0000] That is single page test? [06:49:43.0000] Yeah [06:51:14.0000] You could just create a single async_test and mark it done. You also wouldn't need explict_done: true that way [06:55:02.0000] jgraham: ta [06:55:09.0000] jgraham: pushed updates [07:25:46.0000] jgraham, can we improve the error message when using file-is-test + allow-uncaught? [07:29:52.0000] Ms2ger: We can [07:30:06.0000] It could possibly even be made to work if you inspected the exception in that case [08:11:02.0000] Given this line "If the element is the HTML body element or does not have any associated CSS layout box return zero and terminate this algorithm." https://drafts.csswg.org/cssom-view/#dom-htmlelement-offsettop what should this code return? https://gist.github.com/frewsxcv/91f13d34665a977164e0971e1c44a251 [08:11:36.0000] I would have thought 8 and 8, but all browsers I try seem to return 0 and 0 [08:12:00.0000] Should the spec be updated to match most browsers? [08:18:30.0000] frewsxcv_: that should return the same as when innerBody is a
[08:19:01.0000] frewsxcv_: "the HTML body element" is a specific body element instance for which innerBody is not a match [08:20:05.0000] Right, that was my understand too [08:20:19.0000] Though should the spec be changed if no browsers honor such a rule? [08:21:52.0000] frewsxcv_: if the spec doesn't match browsers it should change, yes [08:22:17.0000] frewsxcv_: unless all browsers are willing to change within some reasonable timeframe [08:22:48.0000] Where's the issue tracker for cssom-view? [08:23:41.0000] https://github.com/w3c/csswg-drafts ? [08:24:37.0000] Think so [08:26:07.0000] https://github.com/w3c/csswg-drafts/issues/584 [08:44:33.0000] \o frewsxcv_ [08:45:25.0000] o/ [10:59:17.0000] Hi! [11:22:10.0000] Ms2ger: Yeah, that's right (per spec; nobody's implemented that syntax yet). [11:48:11.0000] How I have to do the commits in order to collaborate? [13:21:08.0000] aha, ExtendableMessageEvent is buggy [13:21:24.0000] the usual, default values for dictionary properties missing [13:21:28.0000] (or required) [13:32:16.0000] tobie: Nice analysis in https://github.com/heycam/webidl/pull/180#issuecomment-252736486! [13:32:56.0000] tobie: Your examples make me personally lean toward traversing the prototype in record<>s, but I defer to Domenic and the other real experts here. [13:33:19.0000] Same. [13:34:09.0000] tobie: I am relieved that I said "this only matters in obfuscated-javascript competitions" about the order we call Get(), and not about whether we traverse the prototype. ;) [13:49:14.0000] Would love a bunch of eyeballs especially from folks with a WebDev background on https://github.com/heycam/webidl/pull/180#issuecomment-252736486 (off the top of my head: JakeA, slightlyoff, marcosc_) [13:56:08.0000] uh, lots of discussion in github prs [13:56:15.0000] it all really should go to issues [13:58:14.0000] Why? Discussion in PRs makes sense; it's discussion about something concrete. [14:01:08.0000] github hides some comments in prs [14:01:28.0000] prs should be about discussion about the pr itself [14:01:30.0000] like review [14:02:03.0000] I disagree. [14:02:23.0000] it is mostly github's buggy handling of comments in prs which is really bad [14:02:35.0000] I haven't seen that issue recently. [14:02:36.0000] I don't recall in which cases it hides some comments [14:03:08.0000] it hides then if someone pushes with -f [14:03:35.0000] its got better at showing there were comments on a previous version of the PR [14:03:52.0000] but before you used to lose ALL context. [14:04:15.0000] it has happened that feedback was asked for a spec change, but pretty much all the interesting discussion was hidden [14:09:51.0000] smaug: afaik, but I could be wrong, this is an issue when discussions happen on comments regarding a specific line of code, not on general comments. [14:10:12.0000] smaug: best way to check this would be to look at the GH API's output. [14:24:03.0000] smaug: curl https://api.github.com/repos/heycam/webidl/issues/180/comments and https://api.github.com/repos/heycam/webidl/issues/180/comments?page=2, you'll see the whole top-level comments there. [14:24:43.0000] smaug: note this is the GH API URL to the issue #180 and not it's related PR. [14:25:13.0000] smaug: implementation wise, GH treats PR as a special case of issue [14:27:03.0000] and it is just buggy with prs :) [14:27:08.0000] no reason to not use issues [14:28:57.0000] smaug: talking about real code beats talking about abstract things in my book [14:30:31.0000] smaug: I agree we could do a PR and then open another issue to discuss said PR in that case, [14:30:35.0000] https://github.com/heycam/webidl/pull/180 as an example is a mix of reviews and proposals and stuff. It would be way easier to follow the discussion if the proposals and such were in an issue and one people agree what should be done, there would be a pr for the spec change [14:31:18.0000] smaug: well, except sometimes people only really start to understand what's at stake when there's code to review. [14:31:50.0000] smaug: (code or spec changes) [14:31:53.0000] That rarely happens with spec stuff [14:32:34.0000] (partly because it is somewhat harder to review spec changes) [14:32:55.0000] smaug: well it's a non-issue, then, no? ;) [14:33:10.0000] reviewing itself is an issue [14:33:24.0000] but nothing to do with github issues/pr stuff [14:34:54.0000] smaug: I agree both GH issues and PRs tend to drift and quickly go all over the place. [14:36:31.0000] smaug: that's why, as editor, I tend to update the main issue with the current state of the conversation, write summaries, or split up an issue into more precise ones, potentially sometimes closing the main issue. [14:36:48.0000] smaug: Not sure how to best fix that, but I digress. [14:40:59.0000] I see that spec writing should be similar to writing code [14:41:33.0000] when you upload a patch (pr) you already should know what kind of change should be done [14:41:36.0000] smaug: The open-dictionary issue (https://www.w3.org/Bugs/Public/show_bug.cgi?id=20158) sat for years until the PR focused people's minds. Folks got stuck discussing iteration order in the issue, but only noticed the prototype question once the spec text was there. [14:41:49.0000] so, github pr is similar to bugzilla bug in my mind [14:41:54.0000] and issues for discussion [14:42:51.0000] (well, W3C bugzilla is used like github issues, I was referring to mozilla's bugzilla ) [14:43:37.0000] I guess I could be happy with PRs only, if it wasn't buggy [14:49:12.0000] How I do to make suggestions? I'm not allowed to do a pull request, what can I do? [14:52:50.0000] larfen: have you read https://wiki.whatwg.org/wiki/FAQ#Is_there_a_process_for_adding_new_features_to_a_specification.3F ? 2016-10-11 [18:46:23.0000] can anyone think of a reason why validator should consider require-sri-for in csp header to be an error? [18:50:03.0000] a-ja: possibly because I haven't updated the validator with the latest spec changes [18:51:16.0000] actually we mostly just rely on a third-party library for CSP checking, and I have not updated to the latest version of that for many months [18:52:08.0000] https://github.com/shapesecurity/salvation [18:53:02.0000] MikeSmith, ....looking [18:54:38.0000] issue 144 fixed 3 months ago, eh? [18:58:53.0000] Yeah I'm using version 2.0.1, which was released in February [19:00:02.0000] please file an issue at https://github.com/validator/validator/issues if you have time [19:00:29.0000] MikeSmith, think I'll pass that URL on to April King for possible use at observatory.mozilla.org [19:03:12.0000] Ah yeah I like that Observatory thing [19:03:35.0000] MikeSmith, https://github.com/validator/validator/issues/382 [19:03:57.0000] But Observatory already does CSP header checking, right? [19:04:19.0000] thanks for raising the issue [19:04:25.0000] MikeSmith, found a csp parser error with it the other day....which is why i thought of it now [19:04:36.0000] Ah [19:04:49.0000] it's been fixed [19:05:02.0000] Ok [19:07:15.0000] I will try to update the validator to the latest Salvation version today [19:08:27.0000] and hope they did not make any breaking changes to their API that will require me to rewrite my code [19:10:57.0000] MikeSmith, sorry....got a call. sounds good. tks [23:48:25.0000] can't agree more with jyasskin. Nothing beats a PR, and new issues show up as you start writing things down. [00:13:07.0000] That is kinda why we keep discussing things there [02:51:20.0000] heycam: hey think you could give me admin access to the webidl repo? I need to set up some web hooks for a bot. Happy to relinquish afterwards, just easier to setup that way. [02:55:59.0000] tobie: I need to move it to an org to be able to do that [02:56:18.0000] heycam: oh, really? That sucks. [02:56:23.0000] tobie: yeah :( [02:56:48.0000] tobie: I can either add a hook now for you, or we can discuss moving again ... [02:57:46.0000] heycam: I'll look into the hook url and payloads I need. [02:57:57.0000] heycam: you're still around for a little bit? [02:57:59.0000] tobie: ok thanks, sorry for the inconvenience [02:58:07.0000] tobie: no I have to leave the office about now :) [02:59:01.0000] heycam: ok, will email you later so you get this by tomorrow morning [02:59:10.0000] tobie: no problem, will add them first thing in the morning [02:59:22.0000] ty [04:43:12.0000] could someone explain why there are MessageEvent and ServiceWorkerMessageEvent interfaces? [04:47:35.0000] smaug: I think primarily because source could be something else [04:47:42.0000] smaug: I suggested we should just merge those though [04:48:01.0000] yeah, feels a bit silly to have similar events [04:48:07.0000] which are now even inconsisten [04:48:09.0000] t [04:48:18.0000] one accepting null ports, one doesn't [04:48:19.0000] etc [04:49:06.0000] smaug: it seems like Hixie_ blocked it in https://www.w3.org/Bugs/Public/show_bug.cgi?id=28199 [04:49:34.0000] smaug: well, he didn't really [04:49:50.0000] smaug: it seems nobody studied that in sufficient detail :/ [04:50:00.0000] "studied" [04:50:27.0000] filed https://github.com/w3c/ServiceWorker/issues/989 [04:51:22.0000] of course there is also https://github.com/w3c/ServiceWorker/issues/988 [04:51:33.0000] smaug: oh, I filed https://github.com/w3c/ServiceWorker/issues/990 [04:52:29.0000] smaug: ok, marked mine as dupe [04:53:45.0000] I wonder what to implement now [04:53:53.0000] whether .ports should be nullable or not [04:54:18.0000] (or in other words, whether I can review+ the patch which makes MessageEvent to follow the latest spec) [04:58:17.0000] I think so, unless there's some weird reason we can't change ServiceWorkerMessageEvent [04:58:24.0000] But that seems unlikely [04:58:36.0000] not sure [04:58:39.0000] or, hmm [04:59:09.0000] is the ServiceWorkerMessageEvent.ports always set to some value when UA dispatches those events [05:01:29.0000] I guess so [05:01:32.0000] at least to [] [05:45:34.0000] MikeSmith: can https://dvcs.w3.org/hg/xhr/raw-file/default/xhr-1/Overview.html now be a redirect to https://xhr.spec.whatwg.org/? [05:55:18.0000] this focusin/out is such a nice mess too :) [05:56:22.0000] smaug: sigh yes [06:02:00.0000] in blink it is possible to have events for the same target in order: blur, focus, focusin, focusout [06:02:11.0000] and after that the element is focused [06:02:34.0000] even though the last even it got was focusout [06:03:14.0000] This is what you get when UI events refuses to define a processing model for years on end [06:03:52.0000] rbyers isn't convinced that's the biggest problem for some reason, but there's just so many edge cases that would suddenly be clear if we did that [06:04:53.0000] well, this isn't even UI events [06:05:02.0000] this is webkit/blink implementing something totally random [06:05:35.0000] against even those vague hints UI events spec have about the behavior [06:08:10.0000] The other problem with focus is that it's in part defined by HTML [06:12:01.0000] smaug: pre and post-click-dispatch steps [06:12:13.0000] smaug: is that basically an extra iteration over event's path? [06:12:26.0000] smaug: before we call any listeners, and after all listeners are invoked? [06:12:33.0000] smaug: and we only do after if the canceled flag is still unset? [06:12:55.0000] so in Gecko "pre" is about creating path [06:13:03.0000] we may do some other stuff there too [06:13:15.0000] like that type=checkbox state change [06:13:40.0000] yeah, that would become part of pre-click-dispatch [06:13:45.0000] is there anything else? [06:13:54.0000] and post is using the path, and is a separate iteration after normal dispatch [06:13:59.0000] I guess it could be combined with creating the path, but it doesn't necessarily have to be [06:15:03.0000] (In gecko 'Ķ„post' is part of "system group dispatch", which is separate, not-web-visible capture-target-bubble phase after normal c-t-b, and 'post' is part of the system groups bubble phase) [06:15:28.0000] Yeah, I'm trying to get us to improve this space is a test-driven way. We've got a number of inconsistencies between specs and implementations already, I'm skeptical that focusing primarily on improving spec quality will help much on its own. [06:15:59.0000] rbyers: it's really hard to write comprehensive tests if you don't know the processing model [06:16:07.0000] rbyers: you can't really have good implementations without specs [06:16:18.0000] rbyers: considering them each in isolation is somewhat problematic [06:16:28.0000] Right we need to do them all together [06:16:31.0000] (and yes, having good specs require 2-3 implementations at leasts) [06:16:42.0000] rbyers: and why many efforts fail (e.g., the one around contenteditable which also focused only on tests) [06:16:59.0000] We can write tests from the perspective of what developers expect to happen / what sites are relying on today. [06:17:12.0000] I agree it would be a mistake to focus only on tests [06:17:14.0000] that's way too simplistic, imo [06:17:25.0000] But in the UI events space tests have been almost entirely neglected. [06:17:47.0000] So we have a lot of catch-up to do there before all three can really evolve together [06:17:47.0000] tests and impls have too [06:17:53.0000] specs and impls have too* [06:18:20.0000] nothing there has meaningfully improved for a long time [06:18:38.0000] I'm extremely skeptical you can write comprehensive tests by studying what websites do [06:19:12.0000] Not in isolation, no of course not [06:19:19.0000] yeah, without some model one will miss tons of edge cases in tests [06:19:57.0000] We have some model in the spec today, it's just weak [06:20:22.0000] I'm not opposed to someone rewriting the spec to make more sense if one of you is volunteering ;-) [06:20:23.0000] There's no real model in the spec imo [06:20:47.0000] I guess at some point someone will have to, since the current approach doesn't seem to be working [06:21:00.0000] And it's starting to hurt other things [06:21:33.0000] (as long as it's done in a forum Microsoft can participate in of course - they have a ton of good web compat experience on input behavior) [06:21:43.0000] It's a little annoying that all the cleaning up falls to us [06:22:29.0000] UIEvents doesn't really have model. it has just a list of events basically. List of feature browser is expected to implement, but doesn't tell how the features should work. Quite similar to WebPerfWG's specs. [06:22:37.0000] rbyers: if it actually falls to me I'll do it somewhere where I'm comfortable [06:23:17.0000] It's not true that there haven't been real improvements here BTW [06:23:32.0000] mouseover/out/enter/leave behavior used to be completely different between a number of engines [06:23:46.0000] and we saw real world bugs as a result [06:24:08.0000] the spec got more precise and blink overhauled it's behavior to match. Now blink, gecko and Edge are at least pretty consistent. [06:25:59.0000] We'll keep making incremental progress like this. Eg. focus behavior is on the blink input team's plans for Q4: https://bugs.chromium.org/p/chromium/issues/detail?id=645988 [06:27:30.0000] rbyers: BTW, as of now my plan is to just go with blink's focusin/out behavior in Gecko (someone else has written the patch). With most of blink's bugs and all. [06:27:41.0000] I guess we should document somewhere the behavior [06:27:50.0000] (well, there will be some wpts) [06:28:02.0000] ugh [06:28:35.0000] Please cc dtapuska on your plans in gecko - he's leading a new engineer in trying to fix our behavior. [06:28:44.0000] all these events are so regression prone. [06:29:11.0000] So if the spec'd behavior isn't web compatible, then it would be good to know that.... [06:29:24.0000] rbyers: but, if you're actively now fixing the bugs and possibly even making focusin/out follow the spec, Gecko would do that too [06:29:45.0000] Ah, good. Yeah it's happening just taking time while some new folks ramp up [06:30:15.0000] rbyers: I guess only MS might know whether the spec'ed behavior is web compatible [06:30:25.0000] since they had it something like that in EI [06:30:35.0000] but switched to closer to webkit/blink model in Edge [06:33:59.0000] "We're starting on the (hopefully not too convoluted) process of updating the Cookies RFC" [06:34:00.0000] Lol [06:36:13.0000] lunch [07:04:33.0000] JakeA: are we re-creating cookies for this issue? https://github.com/w3c/ServiceWorker/issues/920#issuecomment-252657496 [07:04:48.0000] an origin scoped thing that gets set on network requests automatically [07:05:04.0000] by "thing" I mean header [07:05:46.0000] obviously there are some differences too... but the similarities we striking to me reading through the last few comments there [07:06:20.0000] wanderview: yep. I'm a little sad about that. See https://github.com/w3c/ServiceWorker/issues/920#issuecomment-245621515 and the following few comments [07:07:05.0000] It certainly makes the API less tidy [07:07:30.0000] JakeA: I wonder if we could split this from the particular use case... origin headers that are applied based on sane rules (as opposed to cookies which I think might have insane rules?) [07:08:39.0000] I dunno, just a random though [07:08:41.0000] thought [07:12:01.0000] wanderview: https://github.com/w3c/ServiceWorker/issues/920#issuecomment-247144874 is Facebook's objection [07:13:26.0000] JakeA: well, right... I was saying lets avoid cookies... but pre-specifying a header to apply to all future requests that match X could be a generic thing and not specific to SW preload (or whatever we are calling it these days) [07:13:37.0000] Domenic: the "initialized" pattern you like so much stems from the lack of internal slots [07:14:13.0000] Domenic: the idea was to use "initialized" rather than "set" as some language to get to the internal slot, but with nothing formalized it's all somewhat confused of course [07:14:22.0000] wanderview: I'm open to that. It's very specific right now though, it's specifically these preload requests [07:15:24.0000] wanderview: avoid cookies because? [07:15:47.0000] annevk: see JakeA's link to FB's objection to cookies [07:16:10.0000] annevk: https://github.com/w3c/ServiceWorker/issues/920#issuecomment-247144874 this is what Nate from Facebook was talking about at the F2F [07:16:25.0000] wanderview: sorry, I meant to ask why you'd like to avoid that [07:16:33.0000] my interpretation is "cookies have a lot of baggage and don't worry the same everywhere"... and we don't expose cookies in SW yet [07:19:13.0000] JakeA: have we thought about things like size limits on this preload header thing? Its basically another place for people to store stuff (perhaps synchronously?) [07:19:51.0000] wanderview: I hadn't thought much about it. I guess it could count towards origin storage [07:20:33.0000] JakeA: less worries about quota and more thinking of people abusing it as synchronous storage... does the API currently sync set and get the header? [07:20:46.0000] wanderview: no it's async [07:20:51.0000] ok, good [07:20:52.0000] thanks [07:21:13.0000] /me was thinking of fxos code that stuck pre-rendered HTML for the page in a cookie for fast first load. [07:21:21.0000] hah [07:23:12.0000] annevk: my impression is cookies had all kinds of weird legacy behavior around paths, limits on number, etc... that fact that everyone groans when cookies come up made me want to avoid them [07:23:34.0000] wanderview: I see, but this has none of that [07:23:46.0000] wanderview: main problem with cookies imo is that they're not origin-bound, which this is [07:24:03.0000] ok... I was not saying to use cookies... [07:24:07.0000] Also they only want it sent on the preloads [07:29:37.0000] JakeA: I think the bit that makes me mention all this is the differences with Cache API... Cache is origin-based and the SW then picks which one to use... this header thing is implicitly to the registration matching logic [07:29:54.0000] JakeA: although maybe this is just a consequence of not going whole hog on static routing [07:30:51.0000] /me wonders if Europeans understand the phrase "whole hog". [07:32:02.0000] oh... it seems its common in Britain as well: https://britishhogroasts.co.uk/go-the-whole-hog/ [07:41:09.0000] wanderview: since the preload is a service worker thing, it makes sense to tie it to the registration (like push subscriptions) [07:41:34.0000] wanderview: I think static routes will end up being tied to the service worker rather than the registration fwiw [07:41:55.0000] I wanted preload to be tied to the service worker too, but that doesn't work if you have a header that can be updated at any point [07:42:44.0000] JakeA: I think the same could be said about Cache API... but we made it its own thing... just seems similar to me [07:43:50.0000] wanderview: we nearly made caches tied to a sw, but it became really ugly when you wanted a cache to last longer [07:44:24.0000] wanderview: not against adding an api to tie a cache (or storage box) to a sw. It'd remove the need for that ugly "activate" boilerplate [07:45:05.0000] JakeA: you misunderstand me :-) I was saying we could separate the header API from the SW registration just like we did for Cache API... I don't want to go the other way [07:46:19.0000] wanderview: ohhh sorry! But if this header is sent has part of preload, which is inherently a service worker thing, doesn't separating them make it more confusing? [07:48:27.0000] JakeA: yea... if we moved it out we would have to have a way to say "apply this to preload requests only"... but in theory this API would have a way to match requests anyway in order which ones to apply the header to [07:49:27.0000] JakeA: but this is all just brainstorming... I'm not really objecting to the current API proposal [07:50:14.0000] wanderview: I'll have a think about it. I'm a little grumpy about it because the API was *so much* nicer when the header wasn't updatable :D [07:50:31.0000] But I suppose there's no point in a nice API if it isn't useful [07:51:05.0000] JakeA: I was just thinking if we could make it setable at the origin level, separate from SW, perhaps it would be easier to manage across SW life cycles [07:51:18.0000] similar to how you can load Cache objects from window today [07:51:40.0000] wanderview: I think that would clash with having multiple registrations on the same origin [07:52:24.0000] JakeA: well, the API would need some kind of URL matching... perhaps the same matching algorithm specified by Cache API [07:53:14.0000] but maybe the intent is really to glob resources under the scope [07:53:24.0000] I dunno... again... just random thoughts [07:55:32.0000] wanderview: I'd like this preload thing to be expressible in static routing at some point, so separating the header a little would help there [07:58:50.0000] JakeA: I'm thinking something like this: https://gist.github.com/wanderview/d268442914398a66613682957dd2f8ff [08:00:00.0000] wanderview: how would that only relate to preload requests? [08:06:21.0000] JakeA: let met add that now... someone was at the door [08:08:32.0000] JakeA: ok, reload the gist [08:09:12.0000] wanderview: ohhh, that's actually pretty neat [08:09:50.0000] JakeA: using the http cache matching semantics doesn't really provide scope-like path matching, though [08:10:11.0000] but that could be adapted in some way [08:11:39.0000] although for Cache API we set substring matching was a de-opt [08:11:43.0000] and removed it [08:11:50.0000] ^set^said [08:12:10.0000] Hah, I was just trying to remember what we called that option [08:13:17.0000] woah... shots fired at npm https://code.facebook.com/posts/1840075619545360 [08:13:27.0000] wanderview: anyway, my brain's not working right now (for some reason I didn't sleep last night). Let's pick this up again tomorrowā€¦ but I kinda like it. [08:13:53.0000] JakeA: np, have a good night! (I assume you were still thinking about Sunday's debate in the US!) [08:14:50.0000] I'll stick the idea in the github issue [08:56:18.0000] annevk: was it intentional that when Headers.get() was switched to combine headers that the Cache API Vary matching would begin matching combined headers as well? [08:56:25.0000] JakeA: ^^^ [08:57:21.0000] I'll file an issue to clarify [09:00:00.0000] annevk: JakeA: filed this... https://github.com/w3c/ServiceWorker/issues/991 [09:13:08.0000] wanderview: dunno, will study later [10:23:43.0000] wanderview: sooo, briefly looked at the Cache API algorithms [10:23:49.0000] wanderview: they appear broken [10:27:21.0000] annevk: ok, we'll have to discuss with JakeA tomorrow I guess [10:27:42.0000] wanderview: yeah, we basically shouldn't be invoking IDL operations [10:27:56.0000] wanderview: and definitely not from algorithms that run "in parallel" [10:28:32.0000] wanderview: but I also think HTTP doesn't just look at the first header [10:28:46.0000] wanderview: for HTTP there's no difference between multiple headers or one header with a comma-separated value [10:28:56.0000] wanderview: except for cookies (another reason folks dislike them) [10:29:43.0000] how does "Add links to tests from requirements (beta)" work? [14:04:20.0000] TabAtkins: where's you and fantasi's old old form control styling proposal? [14:48:40.0000] Domenic: here's my handwavy one from a few years ago https://lists.w3.org/Archives/Public/www-style/2014Feb/0621.html [14:49:22.0000] hober: oh cool, thanks! [14:49:28.0000] np 2016-10-12 [23:56:08.0000] heycam: just emailed you the webhook details right now. No hurry, I'm on parental duty today. :) [23:56:13.0000] tobie: just saw it :) [23:58:10.0000] heycam: while you're at it, can you check: Enforce HTTPS at the bottom of the settings page? [23:59:17.0000] heycam: at the bottom of https://github.com/heycam/webidl/settings [23:59:19.0000] tobie: ok added, it tells me it sent a ping message, for which the hook returned a 502 page whose title is "Heroku | Welcome to your new app!" [23:59:35.0000] ticked. [00:01:00.0000] Yeah, need to deploy the bot. [00:01:22.0000] heycam: which I'll find time for later (hopefully) [00:01:28.0000] cool cool [00:03:16.0000] sigh [00:04:09.0000] johanneswilm keeps at it with premature closing of issues [00:04:39.0000] heycam: thanks a bunch [00:04:47.0000] np! [00:25:22.0000] annevk: which issue? [00:26:16.0000] MikeSmith: https://github.com/w3c/input-events/issues/38 [01:07:07.0000] "Beyond that, it doesn't really matter what it returns, or whether it differs from implementation to implementation." [01:07:28.0000] longer sigh [01:20:51.0000] miketaylr_: seen anything about outerText yet? [01:21:13.0000] Ms2ger: Gecko not getting a bug report for outerText might not mean which with respect to "mobile web" [01:21:48.0000] Ms2ger: at this point if it's everyone-but-Gecko it'll only disappear from the web if someone else starts actively removing [01:22:01.0000] Ms2ger: asking for data and they'll just be like "shrug" [01:22:31.0000] Don't we have people at Google who like to add use counters now? [01:24:23.0000] I guess I wouldn't be surprised if the response ended up being "too high, won't remove", but it feels like it's worth checking [01:27:23.0000] I guess you could ask @foolip [02:15:50.0000] No overnight feedback on the click event business unfortunately [05:27:06.0000] Maybe for the best, since I found some mistakes [05:27:58.0000] smaug: it seems other implementations do not traverse the whole path to run "activation behavior" [05:28:05.0000] smaug: they only do it for the first instance [05:28:42.0000] smaug: also, I can't figure out how