| 01:00 | <MikeSmith> | Domenic: about not getting how to stop the critic-bot e-mail for a wpt PR, did you try the "Exclude me, please!" button at https://critic.hoppipolla.co.uk/r/5726 |
| 01:00 | <MikeSmith> | maybe that won't work if you're the owner |
| 01:02 | <MikeSmith> | if not, maybe you can try the "Edit owners" button and remove yourself |
| 01:02 | <MikeSmith> | if none of that works, you can rebase and force-push the branch, or do something else that rewrites history for the branch, and force-push it |
| 01:03 | <MikeSmith> | because critic will choke and that and stop tracking the branch |
| 01:04 | <MikeSmith> | short of those I don't know any other way to disassociate yourself from a critic review, or to disassociate the critic review from a PR |
| 01:04 | <MikeSmith> | but jgraham may know |
| 04:13 | <cvrebert> | botie: any news? |
| 04:13 | <botie> | cvrebert: no idea |
| 05:40 | <annevk> | Sebmaster: I guess I should use some bullet points |
| 05:42 | <annevk> | Sebmaster: what it wants to do is prevent copying host and base's path if input starts with a Windows drive letter followed by nothing or some delimiter |
| 07:30 | <annevk> | philipj: https://github.com/whatwg/fullscreen/issues/17 |
| 07:31 | <annevk> | Domenic: if we did URL comparison with options, URL.is(1, 2, options)? |
| 07:31 | <annevk> | Domenic: and if we did host comparison with options, URL.hostIs(1, 2, options)? |
| 07:31 | <annevk> | Domenic: or is Object.is really the worst? |
| 09:35 | <annevk> | https://code.google.com/p/chromium/issues/detail?id=517819 at the top says "Google Code will be turning read-only on August 25th. See this post for more information." |
| 09:35 | <annevk> | Is chromium special cased? |
| 09:36 | <annevk> | Ah, it is |
| 09:37 | <annevk> | Although that only lists chromium and android, not e.g., v8 |
| 09:38 | annevk | finds the need for "non-Windows path-absolute file URL" |
| 10:17 | <MikeSmith> | if I want to compare instances of two objects without concern about their prototypes, JSON.stringify is an OK way to to that, right? |
| 10:26 | <espadrine> | not if they have reference cycles in them, or anything that doesn't serialize well |
| 10:29 | <Ms2ger> | Or anything with things on the prototype |
| 10:36 | <MikeSmith> | Ms2ger: to be clear, the context is the wpt PR I raised from replacing a few of the simple cases of assert_object_equals, and for those I think they could better have been written from the beginning just using a JSON.stringify comparison (or for one case, just using assert_equals, because it was just comparing to null anyway) |
| 10:38 | <MikeSmith> | I think all the cases we have/had in the suite that I've looked at so far didn't need to begin with to be using a strict comparison like assert_object_equals attempted to be |
| 10:40 | <MikeSmith> | espadrine: I don't know what it means for an object to have to reference cycles in it |
| 10:41 | <MikeSmith> | unless that means somethign other than in the GC sense |
| 10:41 | <MikeSmith> | well, then I still don't know what that would mean |
| 10:42 | <MikeSmith> | I thought JSON.stringify just serializes what the object exposes to you programmatically |
| 10:44 | <espadrine> | a = {b: {a: null}}; a.b.a = a; JSON.stringify(a) |
| 10:44 | <espadrine> | Exception: TypeError: cyclic object value |
| 10:44 | <MikeSmith> | ah |
| 10:45 | <MikeSmith> | yeah we're not doing anything like that |
| 10:46 | <MikeSmith> | in the test cases I'm looking at, I mean |
| 10:46 | <MikeSmith> | they're not tests for pathological cases |
| 10:47 | <MikeSmith> | they're just normal things where the test case is constructing some set of data and then comparing it to an object that representswhat the expected data is supposed to be |
| 10:53 | <annevk> | MikeSmith: what's the purpose of assert_object_equals? |
| 10:57 | <annevk> | I think my main gripe with Bikeshed at the moment is that the output is so much uglier than ReSpec, making it much harder to review generated HTML |
| 11:00 | <MikeSmith> | annevk: I think it was intended to be a way provide a strict comparison of two objects, for tests that needed to do that for some reason |
| 11:01 | <MikeSmith> | annevk: but it doesn't actually do that, which is why it's being removed |
| 11:01 | <MikeSmith> | also, it turns out that there aren't really any tests that need to do a strict object comparison |
| 11:01 | <MikeSmith> | at least not that I've seen so far |
| 11:02 | <MikeSmith> | so instead the method ended up getting used to do comparisons that it wasn't really needed for, and that some other comparison could be used for instead |
| 11:08 | <MikeSmith> | annevk: what's uglier about Bikeshed output? Lack of indenting or line breaks or what? |
| 11:09 | <MikeSmith> | (assuming you mean the formatting of the HTML source) |
| 11:09 | <MikeSmith> | if it's just stuff like that, that seems easy enough to add some step to Bikeshed to prettify it |
| 11:21 | <gsnedders> | MikeSmith: JSON.stringify doesn't guarantee serialisation order is constant, AFAIK |
| 11:22 | <MikeSmith> | gsnedders: yeah foolip noted that also |
| 11:49 | <annevk> | MikeSmith: isn't assert_equals that already? |
| 11:49 | <MikeSmith> | annevk: no |
| 11:50 | <annevk> | MikeSmith: Bikeshed does its own serialization, but it doesn't really remove whitespace from the input where it can, so the output is just ugly |
| 11:50 | <annevk> | MikeSmith: at least for stuff I write... |
| 11:54 | <MikeSmith> | does Bikeshed also use its own parser? |
| 11:55 | <annevk> | MikeSmith: html5lib, iirc |
| 11:56 | <MikeSmith> | then I wonder why it doesn't just use the html5lib serializer |
| 11:58 | <TabAtkins> | MikeSmith: Because it didn't serialize <wbr> correctly, iirc |
| 12:00 | <TabAtkins> | I feel like there was another reason too |
| 12:00 | <annevk> | It's more than that though, Bikeshed seems to actively change indentation and such too |
| 12:01 | <annevk> | Perhaps in part due to it supporting Markdown like stuff mixed with HTML? |
| 12:03 | <TabAtkins> | Yeah, and it dues a terrible job with it too. Need to weigh in that more. |
| 12:03 | <TabAtkins> | *work on |
| 12:06 | <annevk> | TabAtkins: btw, is it possible to change the order of the sections? |
| 12:07 | <annevk> | TabAtkins: for WHATWG stuff it really makes sense to have Acknowledgments last |
| 12:10 | <TabAtkins> | Ugh, it would be annoying to make the boilerplate generate not-at-the-end. |
| 13:02 | <krijnhoetmerbot> | Domenic, Ms2ger: yeah, sorry about that (logs over http, not https) |
| 13:04 | <annevk> | TabAtkins: is there any way to link from syntax diagrams? |
| 13:04 | <annevk> | TabAtkins: I guess it's not strictly needed in my case, but since SVG supports links it seems nicer |
| 13:12 | <gsnedders> | TabAtkins: we don't serialise <wbr> correctly? why haven't we fixed that? |
| 13:21 | <annevk> | TabAtkins: you around? |
| 13:21 | <annevk> | TabAtkins: I'm playing with railroad diagrams and they look cool |
| 13:22 | <annevk> | TabAtkins: but it seems they need a lot of prose around them before they start making sense |
| 13:22 | <annevk> | TabAtkins: I was kind of hoping to just use them to illustrate the grammar, but it seems I can't even name the diagram without resorting to some outside markup |
| 13:22 | <annevk> | TabAtkins: and then I can't link pieces together... |
| 13:30 | <annevk> | TabAtkins: summary here: https://github.com/whatwg/url/issues/67 |
| 14:11 | <TabAtkins> | annevk: Sorry, still in the middle of traveling. |
| 14:12 | <annevk> | TabAtkins: no worries, let me know whenever you're back, none of this is in a great hurry |
| 14:12 | <TabAtkins> | There are ways to link, but they aren't documented right now. |
| 14:12 | <annevk> | TabAtkins: Chris Lord's Navigation Transition stuff is higher priority than any of my Bikeshed stuff :-) |
| 14:15 | <TabAtkins> | Kk 😀 |
| 14:19 | <gsnedders> | TabAtkins: I can't see any bug report or anything about <wbr> :( |
| 14:23 | <TabAtkins> | I reported it to you in person iirc |
| 14:23 | <gsnedders> | TabAtkins: bah! |
| 14:23 | <TabAtkins> | You serialize an end tag for it |
| 14:33 | <annevk> | if that was all the reason you needed to write your own serializer... |
| 14:34 | <annevk> | it seems someone should just patch https://github.com/html5lib/html5lib-python/blob/master/html5lib/constants.py#L487 and that'd be fixed |
| 14:36 | <TabAtkins> | Just looked it up, the reason i did it originally was to get newlines in my generated code. |
| 14:36 | <TabAtkins> | https://github.com/tabatkins/bikeshed/commit/a4a4c5bded724c604234f8333f5d6d0e7851d9ce |
| 14:37 | <annevk> | gsnedders: https://github.com/html5lib/html5lib-python/issues/203 |
| 14:38 | <annevk> | (is the issue for void elements not being up-to-date, even has <event-source> :-)) |
| 14:41 | <gsnedders> | annevk: takk |
| 14:42 | <gsnedders> | annevk: I think we've normally been better with /adding/ elements than removing them |
| 14:42 | <annevk> | looks like it, I doubt there's many people that remember <event-source> |
| 14:48 | <Domenic> | annevk: URL.is and hostIs seems OK... Not obviously correct or obviously wrong. Maybe public-script-coord it? |
| 14:50 | <gsnedders> | TabAtkins: where do yoiu want new lines? |
| 14:59 | <annevk> | Domenic: done |
| 15:00 | <annevk> | Domenic: nobody else seems to really use that list :-/ |
| 15:01 | <Domenic> | annevk: that's why I love it :p |
| 15:01 | <annevk> | Domenic: I'll remind you next time you see Chrome shipping a shitty API |
| 15:05 | <TabAtkins> | annevk: .is() is commonly used as an identity check |
| 15:05 | <TabAtkins> | gsnedders: Everywhere, just formatting HTML like you would by hand, with newlines and indents. |
| 15:07 | <annevk> | TabAtkins: but that breaks so badly if the input was already formatted well |
| 15:07 | <annevk> | TabAtkins: you should just have added newlines to the auto-generated HTML/tree stuff |
| 15:07 | <TabAtkins> | annevk: Yeah, I can fix it, I just haven't yet |
| 15:08 | <TabAtkins> | And omg no, I am absolutely not shitting newlines and indents all over my code. |
| 15:09 | <TabAtkins> | I'm building stuff with DOM methods, manually handling code formatting would be the worst thing ever |
| 15:10 | <annevk> | just append some newlines here and there |
| 15:10 | <annevk> | the way you do it now, if the input contains newlines, you get a mess |
| 15:12 | <annevk> | I mean, it's exactly as you say, you're shitting newlines and indents all over my code |
| 15:12 | <annevk> | (And closing tags.) |
| 15:13 | <annevk> | And the closing tags come after the newlines, it's all kinds of terrible the current setup is. |
| 15:34 | <wanderview> | JakeA: thanks for writing the bug |
| 15:36 | wanderview | notices ms2ger is in firefox's dictionary... |
| 15:37 | <JakeA> | no worries! Odd to see both the latest version of Firefox and Safari regress, I wonder if it's just coincidence. |
| 15:43 | <wanderview> | JakeA: did you try running your tests in workers as well? I bet its even more messed up |
| 15:44 | <JakeA> | wanderview: hah, I didn't. I guess I didn't expect them to be different |
| 15:45 | <wanderview> | JakeA: I believe they have different implementations, at least in gecko... |
| 15:45 | <wanderview> | for example, we have a thing to free the worker thread while we perform work on the main thread |
| 15:45 | wanderview | throws up a little |
| 15:46 | jgraham | wonders which tests these are |
| 15:47 | <wanderview> | jgraham: https://twitter.com/wanderview/status/633288790082240512 |
| 15:50 | <Ms2ger> | JakeA, yeah, jgraham and I can help |
| 15:50 | <Ms2ger> | There's also http://testthewebforward.org/docs/ |
| 15:50 | <JakeA> | Will give those a read, cheers! |
| 15:52 | <Ms2ger> | JakeA, if there's anything that's unclear there, write it down :) |
| 15:53 | <jgraham> | Yeah, this is *super* good stuff to submit tests on. Not least because there's an interop fail, but also because as you note it's a subtle hazard that will cause sites to fail for obscure reasons |
| 15:54 | <Ms2ger> | (jsbell used to be at MS?) |
| 15:57 | <jgraham> | Speaking of Microsoft |
| 15:58 | <jgraham> | I'm 2 hours in to running web-platform-tests in Edge |
| 15:58 | <jgraham> | Reached html/obsolete so far |
| 16:02 | <jgraham> | Oh now I reached the tests that make a sound |
| 16:02 | <jgraham> | Either that or a bird got in when I wasn't looking |
| 16:02 | <darobin> | the sound tests should use more cowbell |
| 16:04 | jgraham | sends darobin to the naughty step |
| 16:04 | <darobin> | the naughty step? |
| 16:04 | <darobin> | that's not a punishment I'm familiar with |
| 16:11 | <Domenic> | annevk: I am pretty sure https://www.w3.org/Bugs/Public/show_bug.cgi?id=25981 is all about integration with ES initialization, not with the ES job queue. Is there another bug about microtasks vs. jobs? |
| 16:13 | <annevk> | Domenic: that bug mentions jobs a whole lot though. Seems like it might be all intertwined? |
| 16:13 | <Domenic> | annevk: no, it's basically saying "work around the job queue stuff while initializing." |
| 16:35 | <JakeA> | Is there a way that two user-opened tabs can start synchronously communicating? Trying to work out why they must share an event loop |
| 16:35 | <wanderview> | JakeA: localstorage? |
| 16:36 | <JakeA> | wanderview: aha! Thanks |
| 16:36 | <wanderview> | JakeA: but someone at mozilla has patches to give windows their own event loop... not sure why its never landed |
| 16:36 | <JakeA> | It might be localstorage as you say |
| 16:39 | <wanderview> | JakeA: I guess chrome gets separate event loops due to each tab having its own process? |
| 16:41 | <JakeA> | wanderview: I wonder if it's process-per-site rather than process-per-tab. This sounds like something I really should know |
| 16:42 | <jgraham> | I imagine it's process per unit of related-origin browsing context, or whatever the spec term is |
| 16:42 | <JakeA> | wanderview: Chromium has this tool (can't remember its name) that lets you bisect stuff, it launches Chromium with a particular url, then on close it asks if something worked/failed, then loads the next version until it finds the commit. Does Gecko have anything like this? |
| 16:43 | <jgraham> | mozregression |
| 16:43 | <wanderview> | JakeA: we have an auto-bisect tool... I haven't used it directly... I can try to find the wiki |
| 16:43 | <wanderview> | what jgraham said |
| 16:43 | <JakeA> | ohh ta |
| 16:44 | <jgraham> | also window.open() can give you multiple top-level browsing contexts that can communicate |
| 16:45 | <wanderview> | jgraham: yea, but can they communicate synchronously |
| 16:45 | <wanderview> | postMessage is async |
| 16:47 | <JakeA> | jgraham: how do I convert a Firefox version into a date for mozregression, is it the release date? |
| 16:49 | <wanderview> | JakeA: its every 6 weeks in general, but the exact date/time can vary by a day or so |
| 16:49 | wanderview | tries to find out |
| 16:49 | <jgraham> | JakeA: Look in "about firefox" under help |
| 16:50 | <jgraham> | (the (?) icon in the dropdown menu) |
| 16:50 | <wanderview> | JakeA: search for strings like FIREFOX_39 here: http://hg.mozilla.org/releases/mozilla-release/ |
| 16:51 | <JakeA> | jgraham: that only has the version number on OSX anyway. Looks like wanderview's solution works |
| 16:51 | <JakeA> | Ta! |
| 16:51 | <wanderview> | FIREFOX_39_0 for first release, for example... or FIREFOX_39_0_3 for 39.0.3 chemspill release |
| 16:51 | <jgraham> | Oh, right I guess it wouldn't tell you when it branched |
| 16:52 | <jgraham> | JakeA: Oh, use --good-release and --bad-release |
| 16:52 | <jgraham> | http://mozilla.github.io/mozregression/documentation/usage.html |
| 16:53 | <JakeA> | perfect, thanks! |
| 16:53 | <annevk> | Domenic: it seems a bunch of it is about the event loop too |
| 16:53 | <Domenic> | annevk: it is about initializing the event loop. I am 95% certain on this. |
| 16:54 | <Domenic> | annevk: notice how e.g. it doesn't mention microtasks at all. |
| 16:54 | <annevk> | Domenic: I noticed that, that's certainly curious |
| 16:54 | <annevk> | Domenic: I guess you need this first, and then build microtasks on top |
| 16:54 | <Domenic> | there is a separate set of work that needs to be done to integrate microtasks and jobs |
| 16:54 | <Domenic> | maybe |
| 16:54 | <Domenic> | i think they might be independent |
| 16:54 | <annevk> | Domenic: but it would sure be easier if ECMAScript just let the host language define some callbacks |
| 16:55 | <Domenic> | this bug is more about working around allen's crazy model of ES environment initialization |
| 16:55 | <Domenic> | I don't think that's true for microtasks + jobs |
| 16:55 | <Domenic> | I think that is true for initialization |
| 16:55 | <Domenic> | We'll see |
| 16:55 | <Domenic> | I'll try writing a patch soon |
| 17:05 | <annevk> | Ugh https://github.com/github/github-services/issues/964 |
| 17:12 | <annevk> | Domenic: I think https://esdiscuss.org/topic/the-initialization-steps-for-web-browsers#content-5 in particular is why it's complicated |
| 17:12 | <annevk> | Domenic: in ECMAScript everything is a job, including running script |
| 17:12 | <Domenic> | Yes |
| 17:15 | <caitp> | do you think it would ever be possible to make it less complicated |
| 17:17 | <annevk> | caitp: I think if ECMAScript delegated more to the host it could be pretty straightforward |
| 17:18 | <annevk> | caitp: it's the host having to intertwine itself into ECMAScript and modify its core algorithms that makes this rather messy and involved |
| 22:17 | <jgraham> | Well eventually it took 8 hours to run the web-platform-tests in IE |
| 22:17 | <jgraham> | Erm, Edge |
| 22:18 | <jgraham> | Mainly because the harness kept killing and restarting the browser, to be fair |
| 22:21 | <Domenic> | How's it doing |
| 22:23 | <jgraham> | Well, I don't know, I need some better way to compare multiple log files |
| 23:19 | <gsnedders> | jgraham: through wptrunner, I presume? |
| 23:20 | <jgraham> | Yeah |