| 00:05 | <Domenic> | Anyone know how you're supposed to include Unicode in HTTP headers? https://twitter.com/domenic/status/908480923070373888 |
| 01:15 | <deyomax> | Domenic: it's about asterisk parameters, not full headers. |
| 01:15 | <deyomax> | Seems like a clarification on an existing practice |
| 01:16 | <deyomax> | And thank god because last thing we need is an alternative way to encode headers. |
| 07:33 | <Ms2ger> | Oh my: https://twitter.com/mnot/status/908471139348840449 |
| 07:37 | <annevk> | Ms2ger: wake me up when it's no longer text/plain-compatible |
| 07:37 | <annevk> | Anyone here interested in joining a @whatwg/i18n team? https://lists.w3.org/Archives/Public/www-international/2017JulSep/0110.html |
| 07:37 | <annevk> | This wouldn't be for whatwg/encoding btw, since that's all related I'd expect folks to just watch the repository |
| 07:37 | <MikeSmith> | xfq maybe? |
| 07:38 | <Ms2ger> | This is how stories about people waking up after centuries start |
| 07:38 | <annevk> | I'd like to post a similar message to a a11y group btw, if someone can give me a good list I'll go ahead and post it, though dentist first |
| 07:38 | <annevk> | Ms2ger: I'd like to revise my answer to "tell me to stop playing Zelda" |
| 07:39 | <Ms2ger> | Approved |
| 07:53 | <gsnedders> | annevk: maybe? |
| 09:18 | <annevk> | gsnedders: you can always leave teams |
| 09:22 | <gsnedders> | annevk: indeed |
| 09:36 | <JakeA> | annevk: if I have an API that takes a sequence of Whatever dictionaries, is there an easy way to store that as part of a concept? Can I just say "Foo has whatevers (a list of Whatevers)" |
| 09:37 | <JakeA> | It feels like a DRY violation to have to recreate the structure as a concept |
| 09:38 | <annevk> | JakeA: I guess you can store the resulting dictionaries, yes |
| 09:39 | <JakeA> | annevk: Ta! |
| 09:39 | <annevk> | JakeA: we haven't really flushed IDL structures out so much, but it seems reasonable that once a JavaScript value is converted to an IDL value you can store the result |
| 09:40 | <JakeA> | annevk: yeah, especially for things like dictionaries where it isn't linked to the JS object |
| 09:41 | <JakeA> | Using an IDL reference in a concept made me stop and think |
| 09:41 | <annevk> | JakeA: we do it all the time for strings and numbers and such |
| 09:43 | <JakeA> | annevk: That reminds me, if I'm storing an unsigned long long, should the concept also be an unsigned long long? Most concepts I see just use "number". |
| 09:43 | <annevk> | JakeA: I use number when it's not important, and x-bit when it is |
| 09:44 | <annevk> | JakeA: I would try to call out unsigned/signed and nonzero |
| 09:45 | <annevk> | JakeA: this should all get a lot clearer as IDL is fully redefined in terms of Infra, but that'll take a while |
| 09:45 | <annevk> | (and Infra itself matures more) |
| 09:45 | <JakeA> | Gotcha , cheers! |
| 13:49 | <wanderview> | JakeA: do you have an opinion on https://github.com/w3c/ServiceWorker/issues/1189? |
| 13:49 | <wanderview> | we can discuss at TPAC, but we are planning to ship this feature around that time |
| 13:50 | <JakeA> | wanderview: will take a look |
| 13:51 | <wanderview> | JakeA: it was bad on us not to raise this question in the spec when we chose to do something that was not clearly spec'd |
| 13:52 | <JakeA> | wanderview: nah I've been procrastinating when I should have dealt with this issue a while ago |
| 14:07 | <domfarolino> | Each browser thread gets its own event loop, does this mean each thread also gets its own microtask queue? Is this queue just a part of the event loop...as in...does an event loop consists of a task queue and microtask queue basically? |
| 14:07 | <domfarolino> | JakeA: reading your article on tasks/microtasks, to give some context |
| 14:13 | <annevk> | domfarolino: yeah, it's defined in the HTML Standard, but that's roughly it |
| 14:15 | <domfarolino> | annevk: ok thanks. Hm, so I've learned that microtasks are executed mid-task after callbacks...not just at the end of a task. When would a callback not be at the end of a task though? Is it when there are say, multiple callbacks to execute in a single task? |
| 14:16 | <annevk> | domfarolino: they're only executed after callbacks if there's no JavaScript on the stack |
| 14:18 | <annevk> | domfarolino: so _a_ in the following code would not run directly after onclick: obj.onclick = ...; Promise.resolve(...).then(a); obj.click(); // a hasn't run at this point |
| 14:23 | <domfarolino> | annevk: Hmm ok I think I'm a tad confused. So what else is on the stack that would prevent a from being run directly after on click? |
| 14:25 | <annevk> | domfarolino: the JavaScript engine executing JavaScript |
| 14:26 | <annevk> | I'd expect JakeA's article to cover this though, but it's been a while |
| 14:27 | <annevk> | Hmm maybe he didn't cover that |
| 14:28 | <domfarolino> | So after we perform the onclick callback, isn't that the end of JS execution though? because there's no JS after "// a hasn't run at this point" |
| 14:28 | <JakeA> | It's covered |
| 14:29 | <JakeA> | domfarolino: See "Level 1 bossfight" vs "Level 1 boss's angry older brother" |
| 14:30 | <JakeA> | domfarolino: A manual click shows microtask checkpoints happening between event callbacks, because the stack is empty after each callback. |
| 14:30 | <annevk> | Oh it is |
| 14:30 | <annevk> | I just wrote http://software.hixie.ch/utilities/js/live-dom-viewer/saved/5376 as an example |
| 14:31 | <JakeA> | domfarolino: Whereas when the same event is triggered with el.click(), the stack isn't empty between callbacks, so no checkpoint until the end |
| 14:31 | <annevk> | Firefox does this wrong it seems, even though I'm pretty sure smaug____ designed these rules |
| 14:31 | <domfarolino> | Ohhh but with a JS initiated click, the stack is not empty after that execution, because we're still "executing script"? |
| 14:31 | <annevk> | Maybe Firefox only does it correct for mutation events |
| 14:31 | <annevk> | domfarolino: yup |
| 14:31 | <annevk> | domfarolino: there's some terminology the HTML Standard uses for this that I forgot about... |
| 14:32 | <annevk> | Firefox bug is https://bugzilla.mozilla.org/show_bug.cgi?id=1193394 fwiw |
| 14:32 | <JakeA> | domfarolino: https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/#why-is-it-different – here's a step-by-step example showing the stack & queues in this case |
| 14:33 | <domfarolino> | annevk: thanks for the org invite btw. OHH, I jumped the gun then JakeA, didn't get to that part yet but that definitely makes sense. Thanks a ton for the info!! |
| 14:34 | <JakeA> | np! |
| 14:35 | <domfarolino> | Makes a lot more sense now. Sweet! annevk: oh interesting bug |
| 14:37 | <domfarolino> | annevk: thanks for the demo up there. JakeA: great article |
| 14:37 | <JakeA> | Cheers! |
| 14:38 | <wanderview> | annevk: its frustrating that old tests are preventing us from landing the fix :-( |
| 14:39 | <annevk> | wanderview: old WPT tests? |
| 14:39 | <wanderview> | annevk: no, firefox-specific tests for things like devtools, etc |
| 14:39 | <annevk> | That is too bad indeed |
| 15:15 | <smaug____> | annevk: hmm |
| 15:15 | <smaug____> | something about microtasks? |
| 15:15 | <smaug____> | someone using Promises? |
| 15:15 | <smaug____> | (since in Gecko Promises don't use microtasks) |
| 15:15 | <smaug____> | try MutationObservers, they follow microtask model |
| 15:16 | <smaug____> | and I'll try to finally get Promises fixed in FF58 |
| 15:16 | <wanderview> | smaug____: this is about the bug to fix that in FF, yea |
| 15:16 | <smaug____> | but in other words, as far as I know FF's microtasks are correct |
| 15:16 | <smaug____> | it is that Promises are broken |
| 15:17 | <annevk> | that's probably true |
| 15:24 | <Jasper> | I just read the Worklet specification, and I'm confused. |
| 15:24 | <Jasper> | "Multiple instances of WorkletGlobalScope can be created for each Worklet that they belong to. User agents may choose to do this in order to parallelize work over multiple threads, or to move work between threads as required. |
| 15:24 | <Jasper> | " |
| 15:24 | <Jasper> | Does this mean that a Worklet cannot hold any state? |
| 16:11 | <annevk> | Jasper: some worklets cannot |
| 16:11 | <annevk> | Jasper: an audioworklet can |
| 16:11 | <Jasper> | What about a PaintWorklet? |
| 16:11 | <annevk> | Jasper: cannot |
| 16:12 | <Jasper> | The class that it registers cannot hold state? OK. |
| 16:12 | <annevk> | Jasper: that bit of the specification also has an outstanding issue btw, since it's basically the subclass that needs to decide whether that happens, and it's not some kind of optional thing |
| 16:12 | <annevk> | Jasper: so many broken things with worklets still |
| 16:12 | <annevk> | was kinda surprised Chrome tried to ship them |
| 16:13 | <Jasper> | I think I figured out after posting that that it's mostly talking about the global state of the script environment, *not* the class that you register. |
| 16:13 | <Jasper> | I'm kinda surprised at a lot of things Chrome tries to ship :/ |
| 16:14 | <Jasper> | What would be more effective than trying to say "try not to mutate global state or your script might break" would be a frozen, immutable global environment |
| 16:14 | <Jasper> | But I assume there are constraints that prevent that from happening |
| 16:17 | <Jasper> | Apparently Firefox isn't even running Worklets in a thread yet https://bugzilla.mozilla.org/show_bug.cgi?id=1328964 |
| 16:17 | <Jasper> | womp womp |
| 16:18 | <Jasper> | I come into this after not paying attention for a few years -- I honestly don't know what's going on in the web space anymore. |
| 16:19 | <wanderview> | Jasper: I don't think worklet is being actively worked at the moment |
| 16:29 | <annevk> | wanderview: I suspect for audioworklets there's at least some work being done, or maybe that also got delayed? |
| 16:31 | <wanderview> | annevk: baku worked on it for a while before, but I don't think he has been working on it recently |
| 16:32 | <annevk> | wanderview: I was thinking padenot |
| 16:32 | <wanderview> | oh audioworklets |
| 16:32 | <wanderview> | annevk: well, baku was adding the underlying worklet support |
| 16:32 | <annevk> | wanderview: it at least comes up every now and then, but maybe padenot is mostly working on the spec still |
| 16:32 | <wanderview> | not sure padenot is working on the worklet infrastructure |
| 16:32 | <wanderview> | sorry, I have to run |
| 16:33 | <Jasper> | For context, I wrote a kind of scathing article on Web Audio yesterday, and people were telling me to look into AudioWorklets which apparently are the future of the web. |
| 16:33 | <Jasper> | I have limited free time so it's mostly a nights-and-weekends thing, but I wanted to at least try to understand the new solution being proposed and try to help out where I can |
| 16:33 | <annevk> | I think at W3C's TPAC in Sapporo someone from Google told me how worklets would be pretty easy and quick to define |
| 16:34 | <annevk> | That's two years ago now and it still has the similar holes and a couple more uncovered |
| 16:34 | <Jasper> | I'm stuck trying to understand macro- and micro-task queues so I don't think I'm the right person to try and understand the subtleties of this :/ |
| 16:34 | <annevk> | Nothing is ever easy |
| 16:35 | <annevk> | Jasper: take the time to read through and study https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/ |
| 16:35 | <Jasper> | Thank you. |
| 16:36 | <annevk> | Jasper: you wrote http://blog.mecheye.net/2017/09/i-dont-know-who-the-web-audio-api-is-designed-for/? |
| 16:36 | <Jasper> | Yes. |
| 16:36 | <annevk> | Jasper: did you see http://robert.ocallahan.org/2017/09/some-opinions-on-history-of-web-audio.html? |
| 16:36 | <Jasper> | I did, yes (and left a comment on that post) |
| 16:36 | <annevk> | ah ok |
| 16:37 | <Jasper> | Apologies -- I try not to be too cynical and combatative since the industry is already full of way too many people like that... but my anger got the better of me in that post. |
| 16:37 | <Jasper> | And of course angry posts are what blow up on social media. |
| 16:39 | <Jasper> | So I feel it's sort of my karmic duty to spend some energy to try and pioneer and help out in the specs where I can, rather than just insult from a distance. |
| 16:40 | <annevk> | Jasper: so https://github.com/WebAudio/web-audio-api is the place where AudioWorklet et al are being designed |
| 16:40 | <Jasper> | Yep. |
| 16:41 | <annevk> | Jasper: if you need any help let me know |
| 16:42 | <Jasper> | Thank you. My first order of business is to try to wrap my head around a modern event loop. |
| 16:43 | <Jasper> | I hope my blog post wasn't too destructive. I know how it is to have short-sighted slights pelted at you from a distance. |
| 16:44 | <annevk> | Jasper: I haven't worked much on Web Audio other than helping out a little bit with AudioWorklet |
| 16:44 | <Jasper> | Alright. |
| 16:44 | <annevk> | Jasper: and from the couple people I know that do work on it, they dislike it too |
| 16:45 | <Jasper> | It's... a bit of a departure from what's usually in a platform layer, that's for sure :) |
| 16:45 | <annevk> | Jasper: Chrome/Safari ended shipping something and then Firefox felt like they had to copy, is my understanding of the events |
| 16:45 | <Jasper> | That's what roc posted, yeah. |
| 19:16 | <KiChjang> | did the fetch/HTTP cache specs ever say that we should always strip URL fragments when storing to/getting from cache? |
| 19:17 | <wanderview> | KiChjang: we no longer do for Request.url... I believe Response.url does still strip fragments |
| 20:13 | <KiChjang> | wanderview: is it good practice to strip fragments though? |
| 20:15 | <wanderview> | KiChjang: well, its required by the fetch spec: https://fetch.spec.whatwg.org/#dom-response-url |
| 23:01 | <xfq> | annevk: thanks for inviting me to join! |
| 23:07 | <Yuhong> | I have just mentioned the Browsium/EMIE story here: https://news.ycombinator.com/item?id=15259584 |