2017-07-01 [21:57:46.0000] am I correct in my understanding that the WPT URLSearchParams tests are all embedded in HTML? [06:26:52.0000] GPHemsley: yeah, I think that's the case [06:27:15.0000] annevk: Any particular reason for that? [06:28:09.0000] GPHemsley: easiest [06:31:34.0000] wait... the URL live viewer has additional fields that get hidden with `display: none`? [06:31:39.0000] why is that? [06:32:31.0000] GPHemsley: the different HTML files in https://quuz.org/url/ are identical but show different things (except for the last) [06:33:00.0000] GPHemsley: https://github.com/annevk/live-url-viewer/issues/1 [06:33:07.0000] GPHemsley: I haven't really taken the time to fix it yet [06:33:34.0000] ah [06:33:45.0000] I'd read that issue before; didn't realize what it meant [06:38:28.0000] annevk: What's the difference between 1 and 2? [06:43:12.0000] GPHemsley: with 2 you can specify a base URL [06:43:27.0000] is there a reason you wouldn't want to do that? [06:51:08.0000] GPHemsley: yeah, you get different results [06:51:21.0000] oh? [06:51:42.0000] to clarify, I meant, is there a reason you would want to use 1 over 2 [06:52:10.0000] not about wanting to set a base [07:28:31.0000] GPHemsley: yeah, for the null base case [09:45:15.0000] annevk: but 1 uses the current URL as the base [09:45:24.0000] i.e. the URL of the page [11:36:06.0000] (and 2 does for an empty base, as well) [12:28:10.0000] something seems to be wrong with the test runner in WPT [12:28:39.0000] not getting results for Safari or Chrome because of a python exception [12:29:10.0000] Edge too [12:30:32.0000] and it's an error that is apparently not failing the build [12:30:47.0000] GPHemsley: hmm it might well be buggy [12:31:05.0000] GPHemsley: it's also not synced with the last version of whatwg-url [12:31:25.0000] I think this issue is well upstream of that [12:31:42.0000] it's in wptrunner itself, AFAICT [12:32:55.0000] jgraham: Looks like this may have been you [12:32:59.0000] https://github.com/w3c/web-platform-tests/commit/8eadce2c378c5380fb3199338a440cfc46b0a03e [12:33:24.0000] GPHemsley: I was talking about Live URL Viewer [12:33:28.0000] (and apparently the initial commit was added with [ci skip]) [12:33:34.0000] annevk: Oh, that makes more sense :) [12:34:18.0000] jgraham: This would probably explain why Firefox doesn't have the problem. ;) [12:40:30.0000] filed https://github.com/w3c/web-platform-tests/issues/6447 [14:38:40.0000] GPHemsley: Ooops, thanks 2017-07-03 [11:40:27.0000] I've put a 280 MB video on dropbox. I wrote a simple html page to show the video. In network tab of chrome, the content-length in response header is 380 MB but the time is 3.67s and Size column shows 3.1 MB. Why is that? There's no way my browser downloaded 280 MB vid in 3.67s. Can someone help? [11:47:14.0000] It looks like the browser downloaded 3.1MB of the file in 3.67 seconds, which is reasonable? And then didn't do more yet, presumably because you haven't started playing the video. [11:50:04.0000] virmaha: check out https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests [11:53:33.0000] TabAtkins: so then why is content-length shows as 280 MB when the data sent was 2.1 MB? [11:53:35.0000] 3.1* [11:53:48.0000] ondras: yeah I did read but it doesn't answer my query. [11:54:17.0000] Because the browser implicitly made a range request, like ondras said. [11:54:39.0000] The content-length is still the full size . [11:54:48.0000] virmaha: are there any Range-related headers present in the request/response? [11:54:53.0000] yeah ondras [11:54:57.0000] virmaha: that is because the content's size *is* 280MB [11:55:00.0000] request was for Range : 0- [11:56:18.0000] virmaha: can you show the complete set of response headers? preferrably unfiltered by your browser's devtools, i.e. a wireshark/tcpdump output [11:56:18.0000] I thought I'd see content-length 280MB only after the entire video was downloaded [11:57:19.0000] it could also have been a HEAD request [11:58:11.0000] no it was a GET request. I saw..Let me give you tcpdump output [12:00:00.0000] at a high level, I'd imagine it this way. Range request comes in for bytes 0- , I get the filename and start and end range, I set appropriate headers, read the file as per offsets and then send the content. [12:03:29.0000] So. The Internets... [15:16:16.0000] how recent is the "invention" of promises? [15:16:41.0000] it feels like there are still some details about it that has yet to be ironed out [16:28:27.0000] Official JS promises are, what, two years old now? Something like that. They showed up in libraries substantially earlier, and have showed up in other languages before that. [16:28:38.0000] What do you think needs to be ironed out? [16:34:03.0000] TabAtkins, i mean that i still see TC39 proposals that extend/enhance the usability of promises [16:34:23.0000] perhaps having a special syntax like await? [16:37:06.0000] Yeah, we're still adding new stuff. [16:41:53.0000] a form on an HTTP page submits sensitive data via an HTTPS form action... how safe is this data? [16:46:10.0000] let me google that for me... 2017-07-04 [17:24:04.0000] Not safe, as the origin page might be compromised. [17:24:25.0000] But if we pretend that it's not, then yeah, data is safe - browser negotiates an https connection to the destination and transports over that. [17:24:41.0000] GPHemsley: ^^^ [17:25:24.0000] yeah... I ain't putting my SSN into that form [01:52:21.0000] GPHemsley: Browsers are starting to explictly mark HTTP pages as non-secure when they contain password forms: https://arstechnica.com/information-technology/2017/01/firefox-chrome-start-calling-http-connections-insecure/. You can imagine that we'll get more aggressive on that front over time. [01:55:24.0000] tobie, et al: Is there any WebIDLish mechanism for specifying attribute setters of various types that don't do implicit conversion? [01:56:19.0000] Like, say I have `attribute DOMString innerHTML`. Can I have a setter for that attribute that accepts some other specific type that isn't a `DOMString`, without an implicit call to the stringifier? [02:36:23.0000] mkwst: a union type wouldn't work in that context? [02:37:15.0000] tobie: Hrm. I guess a union type could work. The getter would just always return `DOMString`? [02:40:03.0000] mkwst: yeah. :-/ [02:40:39.0000] I mean, that's what I want. :) I'm just trying to find the right way of expressing the kind of thing I'm trying to play around with. [02:41:42.0000] It didn't occur to me that something like `attribute (SpecialType or DOMString) whatever` would actually work. [02:42:39.0000] mkwst: we have this discussion quarterly. Types are both a coercion system and a documentation for the return value of the getters… which tbh is quite confusing. [02:42:57.0000] Well, it is Q3. :) [02:43:27.0000] Good. Love it when we have it so early. [02:43:33.0000] :D [02:43:40.0000] Right. Getting it out of the way... ;) [02:43:55.0000] Yeah, thanks! [02:45:05.0000] So the fact that it always returns a DOMString will need to be specified in prose. [02:46:31.0000] Makes sense. :) [04:45:14.0000] jgraham: Dunno if this is you, but something is still wrong with the testrunner in Chrome [04:45:34.0000] Safari and Edge are fixed [04:50:30.0000] annevk, Domenic: It appears that Edge treats a base URL with a single-letter protocol as a Windows drive letter, and then converts it to file: [04:51:09.0000] GPHemsley: https://github.com/whatwg/url/issues/271 [04:53:19.0000] ah, very nice [05:15:01.0000] GPHemsley: https://github.com/w3c/web-platform-tests/pull/6456 seems to have reasonable looking results for Chrome [05:23:42.0000] jgraham: Well, I dunno what happened here then: https://travis-ci.org/w3c/web-platform-tests/jobs/249949077 [05:24:25.0000] is it possible there's an upper limit on test output from Chrome? [05:25:23.0000] GPHemsley: Looks like a chromedriver bug [05:25:34.0000] (and yeah, travis has a log size limit) [05:26:15.0000] But "PID 6909 | [1.563][SEVERE]: Bad inspector message: {…" seems like something rbyers should look at [05:26:46.0000] sounds good, thanks [05:27:29.0000] (I think that Chrome might just have a size limit on those messages, so tests with many many subtests are a problem) [05:42:18.0000] this is the first I've seen of it, so may have just reached that with this PR [06:21:15.0000] annevk: Surprised that opaque responses are known as "CORS-cross-origin" given that they're usually the result of a no-cors request https://html.spec.whatwg.org/multipage/urls-and-fetching.html#cors-cross-origin [06:27:28.0000] JakeA: Ian minted those terms a long time ago and I haven't bothered to refactor (or lift those terms into Fetch) yet [06:27:45.0000] fair enough 2017-07-05 [23:16:41.0000] is Service Worker importScripts(urls) still needed or can the same thing be accomplished with ES6 modules/imports [23:17:31.0000] JakeA: ⬆️ [00:39:49.0000] MikeSmith: I'm hoping we can replace it with imports. There's some spec work to be done here so we can cache the resulting module tree [00:40:14.0000] super [00:41:07.0000] Moz folks: https://twitter.com/jaffathecake/status/879626556544618496 — I've asked for evidence here a few times, is there something I'm missing? [00:41:33.0000] Given some of the blog posts etc I've seem from Mozilla I'm worried it's a new strategy [00:49:52.0000] JakeA: I kinda doubt it's related to that, but I've also got no special insights [00:52:16.0000] JakeA: and as far as the new marketing strategy thing, I mostly understood that to be about pushing back a bit since Google advertising Chrome all over Google properties is obviously not helping Firefox [00:53:05.0000] JakeA: I hope it takes a constructive form and that that blogpost was just a fluke (it was deleted from the official @firefox account after all), but time will tell [00:54:15.0000] annevk: the negative campaigning makes me sad, but I get it. I'm more worried about the hate-fiction "here's what Google people are saying…" stuff [00:55:04.0000] I guess I should just continue to ask for evidence and hope others do the same [00:57:35.0000] JakeA: it seems a little disingenuous to go from "not that I don't believe you" to "hate-fiction" [00:59:30.0000] annevk: time was a factor there. I ask multiple times over multiple days. I assumed it either truthful or a misunderstanding at first, but now (plus other things) I'm worried it's deliberate [03:00:19.0000] smaug: do you support https://github.com/whatwg/dom/pull/467? [03:00:35.0000] smaug: giving EventTarget a constructor that is [03:01:24.0000] annevk: sure, but how do I see the actual proposal [03:01:39.0000] I guess some pr, but don't know which one [03:01:47.0000] smaug: that's a link to the PR [03:02:10.0000] smaug: each PR in whatwg/dom has Preview and Diff links in the first message [03:02:11.0000] is there some way to see that in more readable form [03:02:21.0000] ahaa [03:02:29.0000] now I need to find the Preview link :) [03:02:38.0000] smaug: bottom of the first message [03:03:51.0000] so there is no parent links here? [03:04:00.0000] do we think EventTarget will be used without parent links? [03:04:34.0000] smaug: folks could use it for XMLHttpRequest or WebSocket-like classes [03:04:44.0000] is that something people need? [03:05:16.0000] smaug: given that Node.js ended up inventing its own eventing system, I'd think so [03:05:33.0000] and they don't have event target chain? [03:06:39.0000] smaug: I don't think so, given https://nodejs.org/api/events.html [03:06:49.0000] smaug: note that we could add a parent chain feature later [03:07:12.0000] smaug: this is just the most minimal thing we can do [03:07:35.0000] just wondering if we are adding something no one will use [03:07:48.0000] (we have too many such features in the platform) [03:11:43.0000] That event libraries exist make me somewhat hopeful, but it's always a risk of course [03:14:13.0000] annevk: there is also the thing that if script libraries implement their own event target object, they can keep all processing in JS and possibly performance is better [03:15:11.0000] smaug: that's something we should really try to solve over time, performance cliffs when you touch browser-implemented libraries is a problem [03:15:48.0000] smaug: but it seems similar to suggesting folks should use JavaScript to animate because CSS animation isn't optimized, or some such [03:16:00.0000] smaug: not great long term advice [03:16:04.0000] not really similar [03:16:17.0000] native side and JS side really both have their advantages [03:17:07.0000] say, doing anything which touches lots of nodes in JS is slow, since it guarantees the wrappers must be created [03:17:21.0000] so native helper methods are good for that kind of case [03:18:11.0000] (my current guess is that servo will need to change their DOM implementation to be more like in other browsers to not create wrappers since beginning) [03:37:53.0000] hmm, in general, should we think of how to make the platform faster [03:38:47.0000] like create such APIs that if script libraries were using those, it would more likely that web pages would be less janky or load faster [03:39:10.0000] so far it has been more like ad-hoc approach [03:39:36.0000] isn’t that what the webperf group is supposed to be focused on [03:40:25.0000] smaug: could you comment in https://github.com/whatwg/dom/issues/414 about event creation? [03:41:02.0000] MikeSmith: they seem to focus on measurements [03:41:44.0000] yeah I guess so [05:24:54.0000] HTML no longer links to legacy bugs? [05:37:08.0000] smaug: fwiw I've wanted to have an extendable EventTarget in my own projects, and have used libraries since I couldn't use the browser's. [05:37:19.0000] I haven't needed bubbling [05:37:59.0000] I might not need it as much in a web components world, since I get it for free [05:38:57.0000] JakeA: have you had parent chain with these event target like objects? [05:39:37.0000] smaug: if you mean capturing/bubbling, no, I haven't needed it [05:39:54.0000] aha, I thought you just didn't need bubble phase [05:40:01.0000] but ok, no propagation [05:40:19.0000] yeah, sorry. I mean I haven't needed the chain [06:47:59.0000] JakeA: to your question to "moz folks" above... i think we've had these concerns for a while... its not google saying "ignore best practices", but instead signal boosting anything related to PWA with other web best practices relegated to a footnote or ignored completely... classic example I can think of is flipkart (which obviously I was concerned about long before we had a billboard) [06:48:26.0000] flipkart worked out in the end... but it easily could have gone sideways [06:49:26.0000] wanderview: in terms of it being Chrome only? [06:50:01.0000] (my memory is foggy here, was it Chrome only?) [06:51:15.0000] JakeA: I took an animated gif of what it did at the time here: https://blog.wanderview.com/blog/2016/06/10/flipkart-google-and-the-web/ [06:51:24.0000] I don't really want to re-litigate that [06:51:40.0000] I only mention it in response to the question "is this a new sinister messaging plot from mozilla" [06:52:45.0000] if anything, mozilla is a cacophony of voices and coherent messaging is one of the things we don't know how to do at all [06:53:48.0000] wanderview: that's fair. I agree that Flipkart at the time was a poor example of the P in PWA, but I hope we never suggested that their initial shrugging of Firefox was a good (or ok) thing [06:54:23.0000] I guess that might have seemed implicit by singing Flipkart's praises. [06:54:27.0000] JakeA: google boosted it as a good example... never said that practice was bad in a public place... what is the implication to random people reading about it? [06:54:35.0000] yea [06:54:58.0000] Back then, PWA examples were thin on the ground, but I take your point [06:55:03.0000] JakeA: anyway, I don't see that happening as much lately... but I'm not keyed into other web practices that might be getting less coverage like accessibility [06:55:20.0000] I do recall accessibility being on topic at PWA Summit last year, though [06:55:25.0000] I think I publicly said it wasn't progressive (and complained about the lack of server rendering) [06:55:32.0000] JakeA: but I think its more from this kind of thing that people are concerned [06:56:42.0000] JakeA: sure, and that was appreciated... but a tweet is poorly balanced against glossy copy on a google.com domain [06:58:05.0000] That's fair [07:01:23.0000] JakeA: obviously google can't always be saying "PWA's are awesome, but let me talk for an hour about all the other web stuff you should also be doing"... so I see why things have been done the way they have and I don't think it was sinister in any way... but I also just understand why some people are concerned [07:01:45.0000] /me sees both sides and has no solutions. [07:01:49.0000] /me is useless. [07:02:23.0000] I think things like you the slide you linked above in your tweet are good [07:02:35.0000] including accessibility topics in summits is good [07:02:58.0000] and on balance "PWA" has been good [07:03:08.0000] wanderview: I'm also concerned about the lack of P in many PWAs. But yeah, we need to increase the volume on PWA != SPA [07:04:47.0000] JakeA: I agreed with a lot of Jeremy's post: https://adactio.com/journal/12461 [07:08:11.0000] Same [07:21:20.0000] JakeA: Given you are a Googler, what is your opinion on the Houdini stuff? [07:24:11.0000] If you have any, that is. [07:24:21.0000] nox: It's sometimes difficult to figure out what's part of it and what isn't. The typed OM for CSS is much needed, especially now we have things like DOMMatrix. I'm not hugely excited about a paint worklet, but I might be lacking imagination. I'm very excited about an animation worklet, for running animations on the compositor thread and linking them to things like scrolling. I'm fascinated about what custom layout will allow. [07:24:37.0000] JakeA: What I had in mind was custom paint etc, [07:24:48.0000] things that pcwalton doesn't like, based on knowledge I don't possess. [07:24:59.0000] But I haven't read any of the specs in detail, so I'm only commenting on vague details [07:25:05.0000] Ok. [07:26:27.0000] Didn't pcwalton mention compositor could maybe be merged with some other layer, maybe paint? [07:26:29.0000] nox: I didn't know that pcwalton wasn't keen on it. I imagine him having more to say about the compositor & layout stuff than paint [07:26:45.0000] Oh yes. [07:27:01.0000] JakeA: My knowledge is so limited I still have troubles distinguishing all these parts from each other. :D [07:27:06.0000] Same! [07:27:40.0000] "The solutions that the Chrome team keeps proposing—Custom Layout, Custom Paint, CSS Compositing, etc. are all targeted toward rendering (and they're essentially short-term band-aids at that). If rendering really weren't a problem, then we wouldn't be spending all this time on Google's Houdini proposals! If layout were fast, we wouldn't see people [07:27:41.0000] implementing layouts in JS, and therefore we wouldn't need Custom Layout. If painting were fast, then we could use SVG and CSS and not feel like Custom Paint is necessary. If the main thread weren't so bogged down all the time, then people wouldn't see the need to move a random subset of the Web platform to the compositor thread." [07:27:45.0000] is the piece I had in mind. [07:28:03.0000] https://news.ycombinator.com/item?id=14427494 [07:29:59.0000] I disagree in regards to layout. In an ideal world we should have been able to polyfill grid before browser support landed. [07:30:43.0000] For me, it's about being able to add features in a fast way, rather than taking an existing feature and making it faster. [07:31:05.0000] JakeA: Isn't his point that if things were fast enough, they could be polyfilled without custom layout? [07:31:57.0000] nox: Wouldn't that involve implementing layouts in JS? Whereas he suggested it was performance (not features) that caused people to do that [07:32:40.0000] AFAIU his comment, he is saying people are pushing for custom layout because implementing layout in JS is too slow, because of architectural issues in general in the major browsers. [07:32:57.0000] Oh I misread that indeed. [07:33:33.0000] JakeA: Later he agrees with you I think. "That's fair. I don't have an issue with Houdini if it's actually used to create custom layouts that you can't reasonably do in CSS." [07:34:23.0000] Houdini is mostly JS APIs, though. So surely it would involve implementing layouts in JS whatever you do? [07:34:27.0000] Ahh, fair enough. I agree with that bit. I'm interested in a world were layout performance isn't an issue, but I'd need to see it to believe it :D [07:34:55.0000] gsnedders: I think the plan is to spin up light weight worklets in multiple threads [07:35:20.0000] JakeA: I take pcwalton's comment as "SERVO GOT 99 ISSUES, BUT FAST LAYOUT AIN'T NONE" [07:35:22.0000] :) [07:35:37.0000] haha [07:35:54.0000] I guess I should try and get a build working on a phone and throw some width/height animations at it [07:36:00.0000] 2,169 (known) issues, to be correct. [07:36:01.0000] I doubt it'll be a non-issue (especially now there's the 120 Hz push from Apple and the eventual 240 Hz push for VR), but I do believe Servo shows we can do much better [07:36:05.0000] in fairness, servo's parallel layout is incomplete and more of a proof-of-concept [07:36:17.0000] wanderview: It's not *that* incomplete. [07:36:30.0000] I'm fighting for moving clip-path to the compositor, as "reveal" animations seem to be our sticking point right now [07:36:34.0000] nox: pcwalton said it basically needed to be redone [07:36:54.0000] annevk: WR 42 could exist that Patrick would say it needs to be redone, IMHO. :P [07:37:12.0000] nox: current architecture doesn't scale well or some such [07:37:18.0000] nox: not sure what WR 42 is [07:37:19.0000] Oh ok. [07:37:24.0000] annevk: WebRender 42. [07:37:37.0000] annevk: I'm just saying Patrick and Glenn seems to be rewriting it every 6 months. :) [07:37:39.0000] nox: WebRender isn't parallel layout though [07:37:55.0000] nox: WR is post-layout [07:37:58.0000] annevk: Cf. what I said earlier about not distinguishing them parts. [07:38:00.0000] annevk: You are right. [07:38:05.0000] nox: parallel layout is box creation and such [07:38:20.0000] Layout is the crate that scares me just as much as WR so I can't distinguish them in my mind. ( ._.) [07:38:28.0000] hah [07:43:06.0000] JakeA: tbf, AIUI some of the objections to it are the fact that some of the perf bottlenecks used to justify Houdini are essentially "this isn't in the compositor" when Servo shows you can do them in the compositor [07:44:11.0000] annevk: The HTML spec is complaining at me using (because there's no dfn), but I'm using it for things like byte-sequences. What's the workaround? [07:44:29.0000] JakeA: ... [07:44:38.0000] \o/ cheers [07:45:58.0000] When I tried Servo it was super-slow, so I was not impressed by the claims of servo showing we can do better... Planning to re-judge when someone shouts from the Twitters that there has been progress, but I think at least the narrative that if you just do everything right from scratch it will be fast is falsified. You still need a lot of optimization effort to get something reasonable for the web. [07:46:03.0000] From Twitter, update on Streams: https://blog.whatwg.org/progressing-streams [07:46:18.0000] annevk: "HTML no longer links to legacy bugs?" I haven't noticed that, but it's plausible we broke it somewhere :-/ [07:46:43.0000] Domenic: afaict the top just has "Open Issues" [07:46:53.0000] annevk: oh, the top, not the margins [07:47:09.0000] Yeah I removed that to make room for the dev edition because an odd number of things looks really bad on mobile [07:47:28.0000] Domenic: super-slow perceptively? [07:47:53.0000] gsnedders: yeah, just trying to browse some websites and scroll and click things [07:48:22.0000] Domenic: AFAIK a lot of that is simply the fact that things that make a big perceptive difference are quite bad, though the traditionally slow stuff like layout is super-fast [07:48:54.0000] Sounds plausible I guess. [07:49:11.0000] Cf. the demo by a googler with the animated shapes. [07:49:50.0000] Domenic: I don't do any graphics or layout or whatever, but I do some DOM in Servo, [07:50:22.0000] Domenic: animations and whatnot can hit 60 fps with no issues, and aside from that then you have HTMLCollection that is extremely naive, [07:50:38.0000] and for example in the past if you did for elem in collection, [07:50:55.0000] it would just internally call collection.item(i) for all i from 0 to the length of the collection, [07:51:08.0000] and the traversal to retrieve the ith element would always start from the root of the document. [07:51:59.0000] nox: that might have been me https://www.youtube.com/watch?v=u0hYIRQRiws - but it didn't involve layout [07:52:05.0000] So yeah, some things are extremely slow. [07:52:11.0000] JakeA: Ugh, yes and yes. [07:52:20.0000] I'll just assume that layout is never what I have in mind. ;) [07:53:04.0000] JakeA: Oh right, animations obviously are post-layout, is that right? [07:53:49.0000] nox: it was only changing transform, background & border-radius, none change layout [07:54:10.0000] JakeA: Right. Hence why you mentioned animating width and height earlier, right? [07:55:46.0000] Yeah, those would change layout inside and probably outside the element [07:56:11.0000] http://output.jsbin.com/surane/quiet runs very well in Safari these days (in the tech preview at least) [09:41:09.0000] wanderview: there's tests for AbortController and AbortSignal [09:41:21.0000] wanderview: not sure about fetch() + AbortSignal, JakeA might know [09:42:06.0000] wanderview: I guess if we had tests for fetch() + AbortSignal that would be enough to proceed with the impl, perhaps we should focus on that first rather than figuring out how to refactor Fetch [09:48:14.0000] annevk: I can pick that up [09:50:20.0000] JakeA: cool, I guess if we can put all the edge cases in tests, it'll make it easier to figure out the spec (or at least we know what it should say) [09:57:03.0000] annevk: the tests shouldn't include signals in a service worker right? That's v2? [10:14:08.0000] JakeA: yeah, though passing a signal to fetch() in a service worker should work [10:17:32.0000] annevk: yeah, I'll test in worker contexts too. What's the purpose of t.step_func? Does the test fail if one of the step_funcs isn't called? [10:18:17.0000] JakeA: it makes sure that exceptions in callbacks get routed to the test as well [10:18:29.0000] JakeA: basically makes callbacks part of the test [10:19:13.0000] ahhhh yeah of course [10:19:27.0000] (I've only written promise tests so far) [10:19:33.0000] annevk: keeping everything in promises kind of does the same, though [10:19:50.0000] and you don't have to pass t around [10:20:21.0000] wanderview: yeah, it makes less sense to use for promise APIs I suppose, though you'll need it here for the callback maybe? [10:20:31.0000] wanderview: that is, the abort event [10:20:38.0000] ok [10:20:54.0000] I have mostly avoid t.step_func() because I didn't understand it [10:21:06.0000] It makes sense in https://github.com/w3c/web-platform-tests/pull/5960/files as it needs to ensure the event fires synchronously [10:21:08.0000] /me just presses keys till the thing works... [10:21:14.0000] Same :D [10:22:00.0000] Basically if you don't use it and the browser fails something you get a global failure and otherwise you just get a test failure [10:22:39.0000] But it's a little tricky indeed, especially with all the t.step_func_done() variants and such [15:25:36.0000] nox: pcwalton's opining on Houdini is missing the entire point; you *absolutely cannot* implement layout in JS today in a way that faithfully interacts with the built-in layout system properly (for example, providing proper min-content and max-content contributions, which Flex and Grid layout use extensively). [15:25:59.0000] The point of Houdini isn't to magically make anything faster, but to provide the correct hooks into the existing systems. [15:26:29.0000] TabAtkins: I think that's the part of Houdini he conceded was useful, no? [15:26:34.0000] (It will in many cases make things faster, as we can provide you the right information and only ask you to do work when it's needed, but that's a benefit on top.) [15:26:40.0000] Or did you mention layout just as an example? [15:26:49.0000] Just as an example. [15:28:24.0000] Same applies to, for example, Paint - Houdini gives you the right lifecycle hooks (draw only when we need a new image) and the right information (here's the size the image will be rendered at) to let you do correct, efficient painting. Without Houdini, you can draw to a canvas and render to a data url, but your image won't be at the proper resolution (matching up canvas pixels to screen pixels) unless you manually coordinate [15:28:24.0000] things, and you'll probably draw too early, and/or too often. [16:22:37.0000] would be useful to add some kind of syntax highlighting for code snippets? [16:22:58.0000] e.g. https://dsh.re/5918b 2017-07-06 [18:08:30.0000] jolvera: definitely, yeah. We have one possibility in progress at https://github.com/whatwg/html/pull/2751 but it's client side and breaks some things that currently work, like where the spec highlights certain parts of the code as bad or good or changed. [18:08:56.0000] I'm hoping TabAtkins can factor out his highlighter from Bikeshed so we can run through that [18:09:29.0000] Oh, you want that? It's just Pygments, with some extra code to merge highlighting into existing markup. [18:09:42.0000] Tho there's also now custom line-numbering/highlighting code too. [18:11:42.0000] Oh, plus it relies on widlparser for highlighting WebIDL, because Pygments doesn't do that language. [18:12:25.0000] Yeah, don't need the line number stuff really, but packaging up pygments + merge + Web IDL into something we could shell out to would be lovely [18:14:25.0000] Can you just shell out the html contents of a given element? Much easier if that's all I need to worry about, rather than parsing and finding the highlightable elements myself. [18:22:00.0000] if it's Pygments it can be added through the build process [18:22:03.0000] right? [18:22:09.0000] Actually, I need an intermediate format - text requires me to include a full parser, but markup doesn't have a cross-lang built-in data structure. You have the parsed spec, right? Can you generate a `[tagname, {attrs}, ...contents]`-style tree? [18:22:32.0000] jolvera: It's not *just* Pygments, because Pygments only works on raw text. Bikeshed has extra smarts to merge it into existing markup. [18:24:37.0000] oh ok, im not familiar with Bikeshed [18:35:53.0000] TabAtkins: yes, that should work. [18:36:09.0000] Oh, then I read the intermediate format thing [18:36:28.0000] Probably still doable [18:36:31.0000] Let me capture this in an issue [18:38:16.0000] i've another question, that maybe i should ask in the issue, but [18:38:17.0000] https://github.com/whatwg/html/issues/2779 [18:38:33.0000] the former implementation used a search_index.json that probably was generated on build process [18:39:31.0000] https://github.com/benschwarz/developers.whatwg.org/blob/97ff943a8f5b8fe38f78e224b4b44b472ccefb57/javascript/master.js#L44-L53 [18:40:06.0000] jolvera: yep, re-generating that is the primary task. Unfortunately our build tooling is kind of hard to hack on :(. [18:40:32.0000] generating the index on page load async isn't an option? [18:41:04.0000] Like... downloading and spidering every page of the spec to assemble it each time? That seems pretty slow to me... [18:41:15.0000] not on load, and if someone happen to click the search box before it's done adding a message of loading? [18:41:24.0000] well, just getting the list of links to create a index on memory [18:41:50.0000] as in https://dsh.re/c3498 [18:41:57.0000] Still, spidering 40+ pages to find all their headings seems pretty hard... [18:42:16.0000] And slow [18:42:25.0000] Better than nothing I guess? [18:43:21.0000] worth a try [18:44:56.0000] unless, is there a way to add separate processes like in python [18:45:13.0000] a small python script could do this on build process [18:45:28.0000] or node [18:46:12.0000] Yeah, that is probably the best middle ground [18:46:23.0000] Ideally we would integrate it into our existing build tooling, which is already traversing the document [18:46:29.0000] I think I'd like to try that, at least [18:46:39.0000] But the tooling is written in FreePascal, which makes it hard to find contributors [18:46:47.0000] So we're open to slower alternatives written in normal languages [18:47:49.0000] kk [18:50:44.0000] https://github.com/whatwg/html-build/issues/113 for syntax highlighting, TabAtkins [19:30:49.0000] Domenic is it possible to add classes to h2, h3, and h4 inside the section page? [19:31:20.0000] `

` to `

` [19:31:57.0000] jolvera: I don't see why we'd need it? h3 is always a section heading [19:32:26.0000] to generate the search_index.json and make the scrapping faster [19:32:39.0000] and get each one ordered on the way [19:33:22.0000] instead i'd have to get all h3's then h4's and order based on the '.secno' [19:35:37.0000] Why order based on secno? They're already in order [19:35:46.0000] querySelectorAll("h3, h4") --> all in order [19:38:20.0000] oh ok, you right, that actually works on python too [19:38:49.0000] \o/ [19:38:51.0000] html.cssselect('h3, h4') gives me the same output. nvm then :) [22:38:55.0000] i've created a python script that generates the same search_index.json file as the ruby version [22:38:58.0000] https://gist.github.com/thinkxl/f8722c6fba97e97d67e84cb32c22cb5f [22:40:48.0000] if we would use this, how it could be integrated into the build process [22:41:03.0000] it has two dependencies, lxml and cssselect [22:41:08.0000] cc Domenic [22:43:02.0000] i'll update the GitHub issue [02:39:27.0000] TabAtkins: nox: I think the main concern with Houdini is that it might force slow paths in the future as it's primarily being built on top of a single-thread architecture for doing all things CSS [02:41:20.0000] TabAtkins: nox: see e.g. https://twitter.com/pcwalton/status/835937849237106688 [02:41:28.0000] (and replies) [04:56:34.0000] annevk: can you tell me the relationship between RFC2045 and mime type parsing algorithm in https://mimesniff.spec.whatwg.org/? [05:02:07.0000] yhirano__: I haven't investigated MIME type parsing [05:03:05.0000] It's referenced from XHR overrideMimeType, and you wrote a wpt depending on the behavior. [05:03:50.0000] annevk: http://w3c-test.org/XMLHttpRequest/overridemimetype-blob.html [05:06:58.0000] yhirano__: I tried to pick MIME types that are invalid in both the RFC and the MIME Sniffing [05:06:59.0000] annevk: "HI/x;test", used in the last case, seems valid in the algorithm and invalid in RFC2045. Is that intentional? [05:08:22.0000] yhirano__: it wasn't [05:08:40.0000] yhirano__: I'd be okay if we changed that to ;test=test [05:09:13.0000] annvk: thanks, we [05:09:28.0000] annevk: thanks, we'll change it. [05:59:04.0000] yhirano__: It's been a while, but I might be of some assistance here [06:02:14.0000] yhirano__: As I recall, the decision to allow keys without values in the MIME type parsing algorithm was to accommodate 'base64' in data URLs [06:02:37.0000] so we didn't have to special case [06:04:06.0000] (see step 9 in serializing a MIME type0 [06:19:12.0000] GPHemsley: We are currently using the parser for RFC2045 and as an implementer it would be really great if the spec could also use it. Maintaining many similar (but differnt) parsers is really hard... [06:21:33.0000] GPHemsley: It's OK to add or remove some restrictions to/from the RFC2045 rule, but with the current (really complicated) algorithmic style It's hard to see how different it is from the RFC2045 rule. [06:27:37.0000] yhirano__: When the definition of a language goes from context-free to context-sensitive, the parsing algorithm necessarily becomes more complex. [06:28:01.0000] yhirano__: That said, I'm no longer the maintainer of the spec, so changes (or lack thereof) are no longer my call. [08:41:46.0000] JakeA: who cares about requestIdleCallback() in chrome? [08:42:48.0000] eh, I'll just write an issue [08:43:10.0000] wanderview: igrigorik & Ross Mcilroy [08:44:19.0000] thanks [08:44:25.0000] igrigorik: is this expected behavior? https://bugs.chromium.org/p/chromium/issues/detail?id=739750 [08:45:27.0000] ohh that's a good one 2017-07-07 [01:40:17.0000] smaug: I guess given https://github.com/whatwg/dom/issues/441#issuecomment-313061068 we can move ahead now with the EventTarget constructor? [01:41:23.0000] yup [01:52:24.0000] /me thinks about implementation. I guess EventTarget::Constructor would just return DOMEventTargetHelper, and that one would have WrapObject method to return EventTarget binding. webidl + ~10 lines code? [01:52:35.0000] annevk: there will be some wpt too, right? [01:52:54.0000] smaug: yeah, I just reviewed those [01:53:08.0000] smaug: https://github.com/w3c/web-platform-tests/pull/6306 [07:03:09.0000] P: "To be perfectly clear, ..." Me: *Great* P: *not at all clear* Me: 😟 [07:08:18.0000] JakeA: the response on that chromium issue was surprising to me... but ¯\_(ツ)_/¯ [07:11:02.0000] wanderview: I think they were just explaining how it works, maybe not whether it's a great setup? [07:11:47.0000] ¯\_(ツ)_/¯ [07:12:42.0000] 😊 [07:21:21.0000] JakeA: does the spec really say what browsers have to do in the background? Seems like browsers tend to do impl specific stuff for rAF, setTimeout(), etc in the background [07:25:13.0000] wanderview: It's suggested in this note https://www.w3.org/TR/requestidlecallback/#start-an-event-loop-s-idle-period, but yeah it isn't normative [07:25:41.0000] /me shakes head at JakeA using TR specs. [07:25:54.0000] ah shit [07:26:03.0000] wasn't Domenic going to make an addon to auto-fix spec links? [07:26:12.0000] JakeA: but the editors draft is the same: https://w3c.github.io/requestidlecallback/#start-an-event-loop%27s-idle-period [07:26:53.0000] we limit to one idle period per second while in the background, fwiw [07:26:57.0000] wanderview: few, that'd have been even more embarrassing otherwise [07:27:06.0000] simply because we leverage the same code that our setTimeout stuff uses [07:30:07.0000] *phew [07:30:22.0000] ugh I wish I could see even half the shit I spell wrong [07:30:53.0000] JakeA: I think people just blame auto-correct these days [07:31:22.0000] wanderview: I have no such excuse right now, but I'll use it anyway [07:41:31.0000] Sigh, week went by quickly [07:41:41.0000] Haven't really made any progress on navigation [07:46:28.0000] JakeA: difference in behavior between chrome and FF on this is interesting: https://idle-no-render.glitch.me/ [07:46:41.0000] firefox runs ~14 idle periods when there is no rendering [07:46:47.0000] chrome maxes the cpu [07:47:09.0000] feels like maybe a bug in firefox [07:48:15.0000] although I think we try to anticipate things like timeouts scheduled to run on the main thread... and we do have more of that kind of stuff since we run browser chrome script in our content processes [07:48:21.0000] so maybe its correct [07:48:27.0000] we just have a busier main thread [07:49:05.0000] wanderview: Is the number number of calls per second? [07:49:12.0000] JakeA: yea [07:49:26.0000] its slower than with requestAnimationFrame running... seems weird [07:49:45.0000] wanderview: In Firefox, if I select the text and flail the mouse around, it goes up to 60, which is the opposite of what I'd expect [07:50:20.0000] yea [07:50:22.0000] Rendering causes it to increase [07:51:02.0000] /me files a bug [07:53:53.0000] https://bugzilla.mozilla.org/show_bug.cgi?id=1379178 [08:53:15.0000] JakeA: farre suggests that we fire fewer rIC callbacks when not rendering because we have switched to "long idle periods"... this is kind of talked about in a note here: https://w3c.github.io/requestidlecallback/#idle-periods [08:54:33.0000] I guess I should track what our deadline in each callback is [10:40:45.0000] yea, I don't think chrome is waiting for the next idle period like its supposed to [12:07:50.0000] MikeSmith: sideshowbarker.net is down preventing spec deploys that are using it for validation :-/ [13:09:47.0000] is https://checker.html5.org/ down? [13:17:49.0000] looks like so, i'm not able to connect to it [13:18:32.0000] Probably related to MikeSmith's servers being down [15:12:16.0000] Any reason we haven't made DataTransferItemList iterable<> ? [16:48:25.0000] jsbell: I think it automatically is because of the indexed getter and length property [16:48:40.0000] ah yes... [16:49:03.0000] https://heycam.github.io/webidl/#es-iterators second bullet [16:50:12.0000] ah well, I wanted to .map it anyway. Array.from() FTW [16:51:21.0000] Or [...list], at least in non-Edge browsers 2017-07-08 [17:05:44.0000] Domenic i see JavaScript code using fetch in the html repository [17:06:00.0000] can we use fetch and reduce for the search bar? [17:07:49.0000] jolvera: definitely. For dev edition at least we should be able to assume latest of each browser IMO. [17:07:58.0000] nice [18:31:05.0000] MikeSmith: ping [18:33:56.0000] mkwst: ping [18:48:29.0000] Hi, I have a possibly weird question. Would it be worthwhile to propose a standard for servers that serve images to suggest alt tags? Dynamically generated images like badges on Github, Stackoverflow flare and 90's visitor counters can't have a useful alt tag at the moment. [18:51:04.0000] oh and by alt tags, I mean an alt attribute :) It's late here and my brain is too fried to use correct terminology. [19:10:07.0000] bigblind: perhaps https://www.w3.org/TR/html-alt-techniques/ <== now defunct [19:13:45.0000] https://www.w3.org/TR/IMPLEMENTING-ATAG20/ [19:15:12.0000] a-ja: Even the link where that document says more content can be found seems broken, it just links to the html element, and the ID doesn't exist on the page as far as I can tell [19:18:14.0000] indeed [19:19:23.0000] think there was an old whatwg authoring guidance doc at some point, too, though i can't seem to be able to find that one anymore. [20:34:47.0000] Hm, like a header for alt value? Might be interesting. [20:39:57.0000] Yep, that's what I was thinking [21:27:47.0000] Domenic: https://sideshowbarker.net is back [21:28:27.0000] and https://checker.html5.org/ is back (though the downtime there was unrelated) [21:28:37.0000] a-ja: here now [21:34:28.0000] MikeSmith: never mind...thought there was a validator problem with = signs in CSP report-to [21:36:31.0000] a-ja: OK [21:36:50.0000] MikeSmith, gonna support link/header rel=serviceworker any time soon? [21:37:41.0000] I thought I already added support for link rel=serviceworker [21:37:52.0000] MikeSmith, btw, nice that you cleaned up the page footer :) [21:37:59.0000] as far as the header checking, no plan to add support for that at this point [21:38:04.0000] cleaned up the page footer? [21:38:15.0000] I can’t remember making any recent change there [21:39:06.0000] I’m not opposed to adding rel=serviceworker Link header checking if there’s some value that merits adding it [21:39:23.0000] doesn't like scope, updateviacache, or workertype attributes [21:39:29.0000] but in general the checker isn’t doing header checking, with a few exceptions [21:39:33.0000] ah [21:39:39.0000] yeah those were added recently [21:39:47.0000] so I need to update the source [21:40:11.0000] if you could file an issue for that with a minimal test case, that would help [21:40:21.0000] I can add the support this weekend [21:40:51.0000] aslo FYI if there is ever an HTML checker issue with checking CSP headers, it’s due completely to the underlying code in the Salvation library the checker depends on for that [21:40:51.0000] no Github account, but I guess now's the time to get one [21:41:11.0000] well yeah you should have a github account :) [21:41:23.0000] you will find it useful for other things [21:42:03.0000] like filing bugs against the Salvation sources too :) [21:42:10.0000] heh [01:49:26.0000] TabAtkins: I see that Webkit serialises calc(42) as 42 but Gecko doesn't. Is that completely unspecified? [06:56:00.0000] nox: Specified, but the section is less than a year old https://drafts.csswg.org/css-values/#calc-serialize [07:45:06.0000] TabAtkins: Thanks. [07:56:02.0000] TabAtkins: So calc(42) is calc(42) when serialising specified values, and 42 when serialising computed values, right? [07:56:09.0000] Yeah [07:56:17.0000] And for a specified non-negative number, calc(-42) becomes calc(0) and then 0? [07:56:37.0000] Yup. [07:57:10.0000] TabAtkins: ACK. [07:57:25.0000] Will try to align Servo and see if Gecko tests fail. [07:57:31.0000] Assume that's "message recieved" and not "Cathy-like freaking out". [07:58:07.0000] TabAtkins: The former indeed. :) [08:00:31.0000] Just to clarify - the "becomes calc(0) and then 0" happens at computed-value time. It's still calc(-42) at specified value time. [08:04:22.0000] TabAtkins: Oh! [08:04:31.0000] TabAtkins: Well, guess I have nothing to fix then! :D [08:04:49.0000] Good then! [08:05:47.0000] Yeah, all that happens at specified-value time is that you resolve it down to a sum of units, and combine identical ones. 2017-07-09 [15:58:15.0000] Does it seem a little unintuitive that the two examples in this fiddle (https://jsfiddle.net/domfarolino/d5e58o4j/) produce different results? [15:58:24.0000] ...I mean I'm reading `innerText` in HTML spec and the results are not surprising, but does it seem a little odd it is defined this way to anyone or am I just missing something? [16:00:55.0000] "defined this way" = defined in a way such that the recursive portion of the algorithm is only a subset of the entire thing ("is rendered" checks only happen one time no matter how many times we recurse)...actually the more I think about it..is the intention of this to be more performant and not constantly recalc styles all the time? cc Domenic [16:39:42.0000] Meh this fiddle (https://jsfiddle.net/domfarolino/fr3pd3f0/) is more intuitive 2017-07-10 [21:12:06.0000] botie, inform a-ja I added scope/updateviacache/workertype support to the checker sources and pushed to https://checker.html5.org/ & https://validator.w3.org/nu/ I also added some filtering for now to suppress the warning about child-src [21:12:07.0000] will do [00:07:10.0000] domfarolino: sounds like you didn't leave your sense of logic at the door [00:19:47.0000] annevk: if/when you have time please read https://stackoverflow.com/questions/45004354/when-should-i-really-set-access-control-allow-credentials-to-true-in-my-resp/45005539#45005539 and either comment to correct anything I might have gotten wrong there, or else post another answer (and I can delete mine) [00:20:22.0000] /me steps away for a while pick up the master of the house from daycare [00:35:12.0000] MikeSmith: added a minor comment [00:35:42.0000] MikeSmith: master of the house, hah, that escalated quickly [01:58:21.0000] annevk: :) “There can be only one” ... I’m Ramirez and he’s the younger guy [01:58:39.0000] (and thanks for the comment and reviewing the answer) [02:33:57.0000] annevk: True lol. Gonna chime in on (https://github.com/whatwg/html/issues/1679) in the morning. I would like to help clean up the section if necessary, a little confused about a couple things regarding the algorithm [03:40:06.0000] JakeA: how does canceling and no-cors interact? [03:40:25.0000] JakeA: can you create a partial response body that way? [03:40:41.0000] JakeA: I think there's an issue on that somewhere [03:41:56.0000] annevk: hmm yeah, I guess it's something to point the security folks at. I mean, you'd have a stream that definitely errored, and probably related violations in terms of content-length [03:42:14.0000] I'd expect a script element to not-execute if the content stream errored [03:42:20.0000] JakeA: yeah, it's related to the old content-length issue [03:42:25.0000] but I guess that's worth investigating [03:42:42.0000] annevk: the tests I wrote expect no-cors cancelling to "work", but it is new [03:43:10.0000] JakeA: https://github.com/tc39/proposal-cancelable-promises/issues/4 [03:43:26.0000] JakeA: yeah, your tests reminded me [03:50:11.0000] JakeA: what's the best way to track the no-cors issue? Should I just open it as a new issue against Fetch that we link from all the various places? [03:51:56.0000] annevk: Yeah, and I'll email our security folks and get them involved [03:53:24.0000] JakeA: I noticed btw that we have a similar "how to design canceling" problem with HTML's navigate algorithm [03:53:42.0000] JakeA: it's rather vague and hand-wavy [03:54:00.0000] JakeA: XHR has some state stuff, but also not great [03:54:44.0000] annevk: I've been using XHR to validate my tests to some extent, and there's a few weird race conditions which I guess is the result of hand-waving in the spec [03:59:07.0000] annevk: actually, this email I'm writing would make a good intro to the issue, so if you haven't started already, I can create the issue [03:59:54.0000] JakeA: I PM'd you my notes [04:00:03.0000] JakeA: feel free to finish [04:02:34.0000] JakeA: so I think what you said about