2013-05-01 [21:03:12.0000] I would like to see an api developed that would allow for pages to capture events for non-standard keyboard buttons such as the play/pause/next/previous and other media control buttons that many keyboards have. [21:04:42.0000] Is there a reliable way for me to determine if this suggestion has been made in the past? [22:25:27.0000] MikeSmith: yt? [22:31:56.0000] kochi: here [22:34:07.0000] Hi Mike! [22:34:54.0000] I read the F2F minutes of IME API part, and there was a discussion about its accessibility issue. [22:36:18.0000] I understand there are strong oppositions for implementing an editor in [22:36:37.0000] kochi: yep [22:37:12.0000] but I think we shouldn't prevent those who want to do so from implementing, by restricting API [22:37:33.0000] probably presenting such an example in the API doc isn't a good thing. [22:39:11.0000] kochi: yeah, I think part of it is just, that canvas example is quite prominent [22:39:34.0000] the spec would still be fine without that example [22:40:17.0000] so it might just be a matter of dropping that example [22:40:34.0000] you could still keep the hooks in the API [22:40:37.0000] Ok, I feel that the example made readers have impression that "implementing editor in " is the primary goal to achieve by the IME API [22:40:43.0000] right [22:41:17.0000] Ok, I'll consider dropping it. Maybe coming up another good example would be better. [22:41:53.0000] Also I got a very detailed (even updated) API doc from Microsoft [22:42:03.0000] which was very awesome [22:42:40.0000] but I have a fundamental question: can we mix CSS feature in the IME API spec? [22:43:10.0000] their proposal included CSS properties like 'ime-mode'. [22:43:49.0000] I think it makes sense to have all IME related features in one spec rather than distributed in HTML, DOM and CSS [22:48:55.0000] It makes sense if the spec is used as a reference, it would be convenient to have all related information in one place, but if another authoritative CSS spec is updated, there may be discrepancy and doubles the updating effort for one thing. [01:47:01.0000] cabanier: i'd be fine with making fonts support CORS if browsers want to implement that. the canvas spec is blind to that, it just uses the font's origin. [02:48:36.0000] http://www.w3.org/2001/tag/doc/mime-respect [02:52:46.0000] 2001? [03:05:19.0000] I wonder if the TAG was responsible for the idea that there's no meaning inherit to the URL. Might be about time to obsolete that... [06:15:08.0000] http://lists.w3.org/Archives/Public/www-style/2013Apr/0641.html seems like overkill for what mostly comes down to string equality operations... Am I missing something? [06:15:29.0000] TabAtkins_: ^^ [06:16:16.0000] D: [06:17:08.0000] he started with two RFCs, that's always a recipe for massive overcomplexity [06:17:59.0000] hi :) [06:19:53.0000] annevk: better to be able to compare arbitrary attributes, have a really simple comparison, then if the comparison doesn't match your site, use the sort key approach and add another attribute just for the comparison [06:20:52.0000] zewt: not sure what you mean [06:21:01.0000] though at that point i guess you may as well just use a class and skip the whole thing [06:21:34.0000] [08:09:25.0000] Hixie: Should I let you sort out any proposed change to the meta name list/ [08:09:26.0000] ? [08:18:00.0000] GPHemsley: what do you mean? [08:38:08.0000] TabAtkins_: Keven's argument is that JavaScript's modules follow the same semantics as CSS' @import by default but can be overridden [08:38:16.0000] Kevin* [08:38:39.0000] I understand his argument, but it's still wrong. Also, CSS's @import is not a great model to be emulated. [08:39:27.0000] He's attaching way too importance to the concept of a central naming authoring. (This seems to be a common failure mode among people who like namespaces - they fetishize non-collision, even when it's perfectly reasonable to allow and manage collisions). [08:40:16.0000] TabAtkins_: the default loader resolving against the document's URL combined with appending ".js" to the end seems silly though [08:40:36.0000] TabAtkins_: @import semantics as default seems saner [08:41:00.0000] Where relative links are resolved against the stylesheet's url? [08:41:43.0000] annevk: Most of the requests for wiki accounts nowadays are for people wanting to add entries to the Meta Extensions list [08:43:12.0000] TabAtkins_: ah yeah, in JavaScript you might use the script's url I suppose, given it's a syntactic construct you can do that [08:43:37.0000] GPHemsley: ah okay, that seems fine [08:43:53.0000] annevk: which? [08:44:07.0000] GPHemsley: people adding entries to the list [08:44:24.0000] Problematic, though - it means that when you move code from a instead of ? [13:39:07.0000] zcorpan: oh forgot about that [13:39:10.0000] dunno [13:39:37.0000] hallvors: yeah, OPTIONS is not a special case [13:44:39.0000] zcorpan: you should prolly elaborate a bit on the proposal for people to grasp it's not Surprise!" [11:15:51.0000] serialization breaks with TypeError: unhashable type: 'slice' on line 183 of html5lib/sanitizer.py [11:15:56.0000] will look into it later [13:40:21.0000] dglazkov: ping? 2013-05-17 [00:49:07.0000] ambv: The problem you found is basically "santizer deswign is totally broken" [00:49:35.0000] Or rather "sanitizer tries to pretend that treewalker tokens are just like tokenizer tokens, fails" [00:49:54.0000] I found it preparing the most basic sanitizer-as-filter example for docs. [00:50:07.0000] Because the sanitizer is indeed a cool feature. [00:50:13.0000] It is [00:50:49.0000] But we need to fix it somehow to work with both the tokenizer and the treewalker [00:50:57.0000] Accounting for their differences [00:51:33.0000] Definitely a thing to do for 1.0, but not for 1.0b1 [00:55:34.0000] gsnedders: jgraham: if #53 breaks some tests which are still not fixed, can you integrate #51 first? (the same code is in #53 as well) [00:56:15.0000] basically now documents with xml attributes crap out with a stupid exception, this has little to do with DataLossWarning hiding *other* problems in the test suite [01:03:01.0000] gsnedders: jgraham: same goes for integrating #52 first versus #44 which is still apparently incomplete [01:09:35.0000] What's the right way to report potential Gmail security bugs? [01:10:24.0000] oops. nevermind. It's not a potential security bug that I saw. Just a plain bug. [01:26:16.0000] gsnedders: jgraham: I integrated docs to master, you can add new stuff and edit existing docs as you please. rtfd.org is now also switched to build from master. it syncs daily, if you want to make it refresh the docs faster, go to the rtfd.org dashboard and click Build manually. [01:27:40.0000] ambv: Nice [01:27:51.0000] (currently building the new version) [01:30:05.0000] jgraham: this is a new section - https://html5lib.readthedocs.org/en/latest/movingparts.html [01:32:15.0000] jgraham: you can basically replace http://code.google.com/p/html5lib/wiki/UserDocumentation with a link to https://html5lib.rtfd.org/ at this point. [01:33:45.0000] hehe, Travis build failed. Reason: HTTP error 503 while getting https://pypi.python.org/packages/source/s/six [02:09:14.0000] does the W3C have a position on network neutrality? [02:19:23.0000] hsivonen: not a published one as far as I know [02:21:14.0000] I wonder how I missed http://www.w3.org/TR/2010/NOTE-hlink-20101216/ [02:22:28.0000] annevk: :-( [02:23:01.0000] annevk: I guess I can't use "your argument is invalid, because this forum is committed to network neutrality" [02:23:48.0000] hsivonen: cannot upset all those paying members, which these days include the cable guys [02:23:50.0000] Seems like TimBL believes in it? OR at least that's what I got from http://www2013.org/2013/05/16/highlights-from-the-day-4/ [02:24:11.0000] Ofc it seems like these days W3C is all about the big bucks [02:25:02.0000] I remember TimBL also celebrating when the Netherlands adopted a law in favor of net neutrality. [02:26:02.0000] annevk: it's telling that the Chairs say stuff is a CEO decision instead of saying the buck stops at the Director [02:27:07.0000] I wonder if W3C would get the RF clause through today [02:27:51.0000] Or if thre would be some spiel about having to protect R&D investments, and so needing RAND [02:37:12.0000] hsivonen: it's pretty sad it's basically becoming an industry lobby club. I guess it always was to some extent if you look at WS-DeathStar and such, but that never really affected my part of the world. [02:38:58.0000] hsivonen: but yeah, it's basically "what the Members want" and "how do we get more Members" and not so much "leading the web to its full potential". Speaking of which, that tagline seems to have disappeared from the homepage. [02:40:38.0000] marcosc: what's the point of doing monthly crawls? [02:41:37.0000] marcosc: i think once a year would probably be enough [02:44:01.0000] zcorpan: i would like it to be more frequently to be able to measure changes over time better, maybe six monthly [02:44:35.0000] SteveF: ok [02:44:46.0000] twice a year seems reasonable [02:46:13.0000] not that i object to crawling more frequently [02:56:53.0000] jgraham: gsnedders: guys, my announcement is in a couple of hours. can we integrate #51 and #52 and release 1.0b1 ASAP? [03:16:23.0000] zcorpan: I wasn't sure how often the data changes [03:20:04.0000] Is there a way to change my W3C-exposed email address as one operation without unsubscribing and resubscribing to each list? [03:20:59.0000] hsivonen: not that I know of [03:21:13.0000] hsivonen: you could ask in #sysreq [03:44:07.0000] Yay. At least GNU mailman has the option to change address for all subscriptions on a given server [03:55:48.0000] ambv: Can you fix the issues in https://critic.hoppipolla.co.uk/r/112 then? [03:55:56.0000] I'm on it. [03:58:32.0000] ambv: #53 passes everything here? [03:58:54.0000] ambv: And Travis shows it as passing? [03:59:03.0000] ambv: And all the bugs it fixes are exceptions. [03:59:28.0000] gsnedders: I was mislead by your comment that "Similar fixes are needed for the other tests." [03:59:57.0000] ambv: Right, so test_treewalker.py will probably be hiding stuff to, for example [04:00:04.0000] But this fixes everything for test_parser.py [04:00:36.0000] gsnedders: OK, merge #53 then. LGTM. All I care about now is pushing 1.0b1 out :) [04:06:49.0000] /me tries to push this… [04:07:05.0000] Upload failed (401): You must be identified to edit package information [04:07:07.0000] Wat. [04:07:46.0000] Wait, what? You just dropped a review that I was looking at. [04:08:05.0000] ambv said it was okay, and I was going with that. [04:08:35.0000] jgraham: gsnedders did the same thing I did in a separate PR and we're going with his. [04:09:41.0000] http://bugs.python.org/issue9995 is a lovely bug [04:10:05.0000] gsnedders: can you also merge https://github.com/html5lib/html5lib-python/pull/52 [04:10:12.0000] the docs currently rely on it [04:10:13.0000] ;) [04:11:03.0000] ambv: I dislike those imports being in a function, tbh [04:11:39.0000] I'd rather cherry-pick https://github.com/gsnedders/html5lib-python/commit/0310db7ec93381fe874ed76abdf5a7089add5c06 [04:12:10.0000] +1 [04:12:20.0000] do the pick, do the pick :) [04:12:53.0000] gsnedders: Well I finished your review, but the branch isn't tracking anymore [04:12:59.0000] Which is sad [04:13:49.0000] (I could probably fix it, but it could be more effort than it's worth) [04:14:24.0000] jgraham: Not sure it should be in ihatexml, it's a serialization matter. [04:15:04.0000] jgraham: Like, it's valid to have a sysid with both, but you cannot serialize it, at least how I'd read it. [04:18:55.0000] gsnedders: I think you are drawing too fine a distinction there. [04:26:34.0000] gsnedders: the CHANGELOG now suggests 1.0 gold was released today, you might want to append "b1" to the version number in CHANGES.rst [04:27:17.0000] Blarf! [04:41:47.0000] hsivonen: are you switching to a new email address? [04:44:34.0000] ambv: Why is PyPy not in the envlist for tox? [04:44:35.0000] /me wonders why hsivonen would be switching email address [04:45:33.0000] gsnedders: no particular reason, only that it's rare to have it installed. I run "tox -e pypy" to make it run. If you want to add it as default, +1 [04:46:34.0000] ambv: Well, for most people, I don't expect they'll have more than two installed. [04:47:09.0000] true. +1 for including it. How's that release going? :> [04:47:18.0000] /me is feeling increased stress levels [04:50:10.0000] ambv: Having tox fail horribly because of random ignored files from other branches, and trying again. :P [05:04:59.0000] gsnedders: jgraham: I'll be back in 90 minutes. keeping my fingers crossed for 1.0b1 [05:38:18.0000] Do timers go on the DOM task source? [06:20:37.0000] jgraham: they have their own task source [06:20:49.0000] "The task source for these tasks is the timer task source." [06:22:57.0000] Oh, it's right there and matches what I remembered. Sigh. [06:23:02.0000] annevk: Thanks [06:23:30.0000] fwiw, what futures use is a strawman [06:23:45.0000] we might want to switch to microtask or some such [06:24:53.0000] "what futures use"? [06:26:14.0000] I thought the question was in relation to that [06:27:36.0000] Did you mean "that futures use"? [06:27:56.0000] But yeah, the question was about the futures/setImmediate thread [06:29:45.0000] "that futures use" does not make sense [06:31:55.0000] Umm? "fwiw, that futures use is a strawman" would have made lots of sense to me [06:32:17.0000] The same sentence with s/that/what/ is still baffling [06:32:55.0000] "the thingy that futures use"? [06:35:11.0000] Oh [06:35:41.0000] I understand now, but I don't think you can use "strawman" in that sense [06:36:27.0000] I was reading it as "that use for futures is a strawman" [06:38:34.0000] I guess you meant "the task source futures use is a moot point" or something [06:38:54.0000] Although cealy they have to be scheduled somehow [06:38:57.0000] *clearly [06:39:08.0000] So it's not clear to me that it is [06:59:49.0000] zcorpan: yes. @hsivonen.fi [07:00:52.0000] hsivonen: will the old email still work? [07:01:43.0000] jgraham: to avoid disruption when iki.fi is slow to forward, to make sure I can use the email in various contexts without violating the rules of IKI, to make it possible to run a Persona primary for my email address, to get domain key sigs right, to avoid annoyances when Google thinks I'm @gmail.com when I want to appear to be @ another domain [07:01:55.0000] zcorpan: the old address will continue to work "forever" [07:03:06.0000] ok [07:06:06.0000] also, to be nice to IKI's infrastructure, considering that I get massively more mailing list email than one is supposed to subscribe to with an @iki.fi address [07:06:46.0000] hsivonen: I see. [07:55:49.0000] jgraham: gsnedders: woohoo, I did the LT [07:56:02.0000] thanks for bearing with me [07:56:15.0000] ambv: Cool, did it go well? [07:56:57.0000] There's gonna be a video so you'll be the judge but I suppose it went well. I managed to make them laugh a bit, they were interested with the subject and were happy to see "pip install html5lib" [07:57:00.0000] :-) [07:57:28.0000] Cool, well let us know if you get any interesting questions/discussions later [07:59:36.0000] I will, sure. [08:22:18.0000] gsnedders: you should tweet about the release as well :) [08:22:29.0000] ah, I see you did. Great! :D [08:28:23.0000] jgraham: gsnedders: thanks again, now to crunch the rest of the things to release 1.0 proper :) see you around, my battery will die any minute now. [09:22:33.0000] good morning, Whatwg! [10:02:38.0000] hello o hola [10:42:12.0000] dglazkov: curious, what is Polymer team? Some Google thingie? [12:05:05.0000] smaug____: Polymer was started by and is composed mostly of some googlers, but it's an open project. [12:09:03.0000] TabAtkins: what is it? [12:18:07.0000] smaug____: It's some people who are playing with shadow dom and related techs to produce useful toolkits. [12:18:29.0000] smaug____: Purpose is half testing group, half seed for public dev. [14:40:03.0000] Hi, anyone using Sublime Text 3 with SublimeLinter ? [14:48:14.0000] I'm using ST2, and I've used SublimeLinter on it before. 2013-05-18 [05:41:47.0000] ambv: You wouldn't happen to have a narrow build of Python there, to test html5lib under? [05:42:03.0000] /me notes that html5lib hasn't been tested on a narrow build in forever [05:42:35.0000] no but I can set one up [05:49:15.0000] Uh, what. My build with --enable-unicode=ucs2 is giving sys.maxunicode == 0x10FFFF [06:13:57.0000] ./configure has set UNICODE_SIZE to 2, yet building it and running sys.maxunicode == 0x10FFFF gives true. o_O [06:26:36.0000] gsnedders: it seems my Python 2.7 is in fact narrow [06:26:44.0000] so yes, we test on a narrow build as well [06:27:11.0000] ambv: Well, that's nice to know we're not entirely broken, esp. given the number of forks we have 2013-05-19 [18:37:47.0000] what spec defines window.devicePixelRatio? [00:56:10.0000] heycam, there isn't one, afaik [00:56:22.0000] Ms2ger, I see [00:56:38.0000] Ms2ger, I was just thinking it probably makes sense to have an event fired when its value changes [00:56:56.0000] Ms2ger, so you can handle when your browser window is dragged from one screen to another (with different DPRs) [00:57:22.0000] Interesting [00:57:30.0000] Sounds like you get to spec it, then ;) [00:58:01.0000] bah ;) 2013-05-20 [19:06:33.0000] TabAtkins: CSS needs to define somewhere "origin of style sheet" (which is the origin of the document that included the style sheet) [19:06:48.0000] TabAtkins: then CSS Fonts and such can just use that [19:16:21.0000] zcorpan: your "Sync cssom specs" commit to xref broke stuff [19:16:39.0000] zcorpan: e.g. it doesn't seem like there's separate references for the getclientrects methods anymore [23:16:31.0000] annevk: kk, can do. Looks like Cascade might be the best place to put it. [23:16:50.0000] Since it defined @import [23:19:28.0000] what are the normal working hours for #sysreq? Boston office hours on weekdays? [23:23:04.0000] Likely. [23:34:07.0000] hsivonen: also France [23:52:50.0000] annevk: Thoughts on issue 2 at ? [00:03:44.0000] TabAtkins: fwiw, TC39 crowd dislikes CSSVariablesDeclaration-type interfaces [00:04:13.0000] TabAtkins: because of Object.prototype [00:04:20.0000] /me looks at issue 2 [00:05:45.0000] TabAtkins: I think hsivonen might have a better informed opinion on that [00:06:04.0000] TabAtkins: it's not entirely clear to me that restriction would make things safer [00:28:31.0000] Hmm, serialization of arbitrary CSS token streams as required by CSS Variables also seems interesting [00:47:55.0000] annevk, I think that's all, then. Want to fix the other bug too? :) [01:09:42.0000] Ms2ger: that one requires more thinking from what I remember [01:09:44.0000] heycam seems to be suck in some superposition of states [01:10:13.0000] In other news, http://lists.w3.org/Archives/Public/public-texttracks/2013May/0016.html makes me sad. "it might inform a discussion of TTML profiles" is like a double red flag. [01:10:32.0000] TTML is bad. Profiles also bad. Combined, ... [01:13:13.0000] jgraham: he's here [01:14:28.0000] Wavefunction must have collapsed [01:24:27.0000] jgraham: I got some feedback during the conference. First of all, it seems people expect html5lib to provide a custom tree format. I directed them towards bs4 for a straightforward querying API. [01:24:37.0000] Ms2ger: so yeah, the idea was that HTML would invoke the "set parser" [01:24:51.0000] Ms2ger: e.g. "Either when an element is created that has a class attribute or when an element's class attribute is set to a value other than the empty string, set the element's classes to the new value, parsed." is what DOM uses itself [01:25:09.0000] Ms2ger: if that is missing anything or is not convenient enough, that'd be good to know [01:27:06.0000] ambv: Interesting. I mean that doesn't make much sense, but I see why people would think that [01:27:45.0000] Because it's traditional for libs to tightly couple parsing and representation [01:28:02.0000] yes, I share your view that it's great to have those decoupled. [01:28:25.0000] jgraham: Another thing, it seems we're currently very slow compared to other parsers and this makes for some poor PR, aka FUD. [01:28:50.0000] So increasing performance would be a good target for post-1.0 releases. [01:54:25.0000] ambv: Well it's no secret that we're slow. Not sure it's possible to squeeze that much more performance out of pure python [01:54:45.0000] Or at least, we have spent non-trivial effort benchmarking it in the past [01:55:56.0000] Reading through one character at a time just isn't very efficient. But that's needed for a compliant implementation. [01:56:20.0000] Really I think the effort would be better spent on writing a C implementation in libxml2 [01:56:34.0000] Then lxml.html would be fast and non-sucky [01:56:38.0000] We can at least work with the PyPy guys to make it JIT compile better. [01:56:48.0000] Yeah, that makes sense [01:57:11.0000] Especially since lxml on PyPy doesn't seem to work so well [01:57:14.0000] Currently for huge documents it's 5x faster than CPython but for typical documents it's 2x … slower. [01:58:05.0000] jgraham: lxml still is 30x faster than html5lib on PyPy ;) but I guess there's much potential in improving html5lib performance. it would be big news for both html5lib and PyPy if we got the performance on par with lxml. [01:58:30.0000] jgraham: https://github.com/ambv/html5lib-microbench [01:58:59.0000] jgraham: in libxml2, do you mean incremental conformance improvements on the existing parser, or a brand new implementation? [02:00:26.0000] SimonSapin: Yes :p [02:00:49.0000] jgraham: yes to which? [02:01:17.0000] One of those. It was a non-exclusive or, right? ;) [02:01:57.0000] I haven't looked at the existing parser well enough to know if "incremental improvements" are likely to end up with something conformant [02:02:03.0000] I had in mind, which do you think would be the way to go? [02:02:56.0000] If they would, that would be the low risk option, but my general feeling is that unless you started with the right architecture you won't end up with something conformant [02:03:21.0000] And so far only WebKit were close to having the right architecture [02:03:52.0000] and taht was because the spec was based on more on webkit than on anyone else [02:09:38.0000] /me kicks his connection [02:10:15.0000] annevk, do we have a bug on Hixie to invoke the set parser, then? [02:52:56.0000] marcosc: you don't want "Call resolver's reject(value) method with error as value argument."; you want to call the internal resolve algorithm [02:53:09.0000] Ms2ger: that could be that bug I suppose [02:53:18.0000] wfm [02:53:22.0000] Ms2ger: bit slow today [02:54:12.0000] annevk: makes sense [02:54:26.0000] (I din't write the text, fwiw) [02:54:31.0000] marcosc: k [02:55:06.0000] marcosc: also needs to say something about running the remaining steps asynchronously and not terminating when you return [02:55:26.0000] marcosc: looks okay otherwise [02:55:35.0000] annevk: thanks :) [02:56:03.0000] annevk: will update the corresponding bug on the sysapps repo [03:41:09.0000] TabAtkins: "When errors occur in CSS, the parser attempts to recover gracefully, throwing away only the minimum amount of content before returning to parsing as normal." isn't quite true. for instance, a broken selector throws away the entire ruleset rather than just the selector [03:43:03.0000] or maybe i misunderstood. it talks about the parser, while throwing away rulesets happens later [03:44:00.0000] jgraham: http://pypi-externals.caremad.io/help/what/ [03:48:37.0000] ambv: Context? [03:49:24.0000] jgraham: distutils is very very very slow when it scrapes websites to find downloadable links. Disable this functionality by explicitly listing that we only publish packages on PyPI [03:49:51.0000] this makes downloading packages significantly faster [03:53:32.0000] ambv: Yeah, I saw that a few days ago. [03:53:54.0000] ambv: But I thought it was in setup.py that changed the metadata, not just on PyPI [03:54:53.0000] gsnedders: the newest distribute and setuptools are smarter than that but the default is still spurious scraping unless you opt-in on PyPI to the faster method [03:56:24.0000] ambv: Does this have to be done per-version? [03:56:25.0000] Le sigh. [03:57:04.0000] No, doing it once seems enough. [03:57:05.0000] Well, okay. [04:08:26.0000] :-) [06:20:28.0000] TabAtkins: isn't the specced bad-url behavior bad for future compat if we want to add expressions in url()? [08:40:30.0000] zcorpan: I don't think we ever can. [08:40:36.0000] Apparently document.all.tags has been broken in Gecko since Fx3.0 [08:41:01.0000] :'( [08:41:15.0000] quit breaking my sweet dhtml site guys [08:42:18.0000] Should tell sicking :) [09:09:37.0000] annevk: Can you explain what the Object.prototype problem is? Keys set on Object.prototype showing up as non-own properties on all objects? I don't know why that's a problem for this kind of interface, or what I could do about it. [09:09:46.0000] annevk: Maybe expose it as a JS Map? [09:10:08.0000] annevk: Also, Syntax + CSSOM mandate how to serialize arbitrary token streams. [09:10:30.0000] (Or rather, will, once CSSOM finishes serialization stuff.) [09:12:52.0000] zcorpan: Text about error-recovery is of course approximate and non-normative. But throwing away "just the selector" on a ruleset wouldn't help much - you'd be left with a ruleset with no selector, which doesn't match anything. [09:13:25.0000] But anyway, I have compat constraints to operate under with error recovery. [09:14:55.0000] TabAtkins, I think the point was about |foo, #broken# { ... }| not applying anything to foo [09:15:01.0000] Hm, exposing Variables as a JS Map seems like a much better idea anyway. Wonder why I didn't think about that? [09:15:31.0000] Ms2ger: Ah, perhaps. That was unclear. Regardless, we know that was a mistake, but not one we can fix. [09:15:38.0000] ;_; [09:16:26.0000] heycam|away|away: Your username is weird. Also, there any IDL magic necessary to make something be a JS Map? [09:17:24.0000] TabAtkins, you guys might want to drop document.all.tags too [09:51:08.0000] good morning, Whatwg! [09:51:21.0000] Ms2ger: I'll send an email. [09:51:33.0000] Ta [09:52:29.0000] Ms2ger: Got a bug or something I can ref? [10:55:07.0000] ICYMI: The Open Source (read: GitHub) Report Card: http://osrc.dfm.io/ [10:58:44.0000] "It seems—from their activity streams—that jgraham and w3c are probably friends" [10:58:48.0000] Hmm [10:58:56.0000] Ha [10:59:36.0000] TabAtkins, er, thought I'd replied: https://bugzilla.mozilla.org/show_bug.cgi?id=874084 [11:00:12.0000] "Ms2ger is a trend setting Javascripter" [11:00:19.0000] Well, that sure is news to me [11:01:31.0000] Maybe writing testharness.js is a trend? [11:01:36.0000] +tests [11:01:49.0000] Still one you set, then [11:02:08.0000] Also, apparently I do my work at 3am [11:02:44.0000] Yeah, I'm not convinced by its timezone corrections (and neither is it, to be fair) [11:03:45.0000] It's kinda revealing about how much work one does on GitHub vs. off it [11:04:41.0000] like, GitHub has no idea about my PHP stuff because it's not really on GitHub [11:04:55.0000] (and GitHub thinks mimesniff is Tcl, for some reason) [11:07:43.0000] /me kicks document.all some more [11:08:25.0000] Violence is the last refuge of the incompetent [11:08:37.0000] On the other hand document.all deserves it [11:08:41.0000] So please continue [11:09:05.0000] document.all["2"] [11:09:08.0000] What gives? [11:09:24.0000] How about ("2"), item("2"), namedItem("2")? [11:12:02.0000] The answer is obvious [11:12:06.0000] "depends on the browser" [11:14:34.0000] wwied? [11:14:43.0000] Or really wdied? [11:15:28.0000] ? [11:15:50.0000] what does IE do? [11:16:23.0000] Ah [11:17:48.0000] getElementsByTagName("*")[2] for [], () and item(), and the thing with name "2" for namedItem() [11:19:50.0000] Oh wait [11:19:56.0000] /me should look at the right lines [11:20:36.0000] getElementsByTagName("*")[2] for [] and (), and the thing with name "2" for item() and namedItem() [11:24:24.0000] Ah, so presto got it "right" then [11:24:30.0000] No surprise there :) 2013-05-21 [17:42:28.0000] "Anne's behavior is quite similar to crismannoble's but crismannoble is more of a whiner." [17:42:42.0000] "Anne is an awesome Javascripter who loves pushing code. Anne is an early-week worker who seems to work best in the wee hours." [17:42:50.0000] Listen up TC39! [17:54:14.0000] annevk, you high? [18:02:24.0000] Heh, just playing with http://osrc.dfm.io/ [18:04:55.0000] TabAtkins, my IRC bouncer gets confused sometimes about whether it should append an "|away" [18:05:04.0000] TabAtkins, there is no such functionality in Web IDL yet [18:05:35.0000] heycam: So if I want to use a Map for CSSStyleRule#vars, what should I do? [18:06:52.0000] TabAtkins, do you want this Map to dynamically reflect the variable declarations, and to affect the declarations when you set properties on it? [18:06:59.0000] Yes. [18:07:35.0000] TabAtkins, then I think you don't want a Map, since you can't "watch" the map for changes [18:08:01.0000] Well, apparently I don't want a naked getter/setter object either [18:08:10.0000] TabAtkins, oh, why not? [18:08:43.0000] annevk can explain better, but I think it's because just using an "object map" is subject to trickiness with things defined on the prototype chain, including Object.prototype. [18:09:05.0000] Someone can add Object.prototype.foo and it'll show up on el.style.vars.foo, even though there's no var-foo rule. [18:09:47.0000] heycam: basically what we did for dataset is disliked by TC39 [18:10:03.0000] annevk, I'm not sure there is a better solution currently [18:10:12.0000] The better solution is to magic up a Map. [18:10:32.0000] TabAtkins: a Map does not have the .vars.x functionality [18:10:34.0000] (Also, using a Map probably is better in general, because you interoperate with the rest of the collection API stuff.) [18:10:41.0000] Map just has get() and set() methods, right? [18:10:43.0000] TabAtkins: it only has .vars.get("x") [18:10:46.0000] annevk: Right, but .vars.get('x') wouldn't kill me. [18:11:07.0000] TabAtkins: in that case just create your own Map like URLQuery does [18:11:13.0000] I think the problem is that Map is being thought of as an interface that you want to use for vars, but ES6's Map is a concrete class [18:11:20.0000] TabAtkins: you need to do that anyway since you need the serialization stuff to happen [18:11:25.0000] and a class that doesn't allow watching it for changes [18:11:27.0000] TabAtkins: whereas Map is just in/out [18:12:10.0000] annevk: But I want it to be a Map for the purpose of working with the iterable functions, getting the rest of the Map extras, etc. [18:12:22.0000] URLQuery can't quite do that yet, because MultiMap doesn't exist. [18:12:30.0000] But I assume it's planned to do that. [18:12:41.0000] TabAtkins: I guess, if MultiMap ever exists :) [18:12:50.0000] (and if that matches) [18:12:54.0000] this sounds very similar to the problem of Arrays [18:12:59.0000] Ah, it will. And I think we did a good job with it. [18:13:03.0000] heycam: It's identical to that problem. [18:13:05.0000] there's no Array interface that we can use for things like NodeList [18:13:07.0000] heycam: yeah, I guess you want [MapClass] or some such [18:13:12.0000] Yup yup. [18:13:25.0000] it would be great if there were native ES6 functionality for Array-likes, Map-likes, ... [18:13:36.0000] heycam: or map CSSVariables { ... } [18:13:59.0000] annevk, sure, but I'd like there to be a blessed way of doing similar things in plain JS [18:14:08.0000] annevk, so that it's obvious what an IDL map should correspond to [18:14:11.0000] heycam: There is, at least for Maps. [18:14:15.0000] TabAtkins, oh yes? [18:14:18.0000] In teh constructor, run Map.call(this) [18:14:23.0000] heycam: I thought you could put Array on the prototype chain? [18:14:26.0000] You'll get a mapdata set up, etc. [18:14:38.0000] And also put Map on the prototype chain to get the methods. [18:14:40.0000] annevk, you can, but I don't think that's going to get you the "platform object wants to monitor the object for changes" functionality [18:15:13.0000] heycam: We can just define our own methods, which do some work and then defer to Map.prototype.add or whatever. [18:15:18.0000] heycam: you'll have to implement the methods yourself, always, I think, it's just that you want to share the methods [18:15:33.0000] heycam: share the extra methods :) [18:15:37.0000] annevk, ok, but also prevent Map.prototype.set from working [18:15:45.0000] Ah right, yes. [18:15:46.0000] hmm [18:15:59.0000] Also, you can't even defer to Map.prototype.get, since your mapdata is magically populated. [18:16:05.0000] I think you want to wrap a Map object that is hidden from the outside [18:16:14.0000] and that wrapper object has the same-feeling interface to a Map [18:16:22.0000] But this really shouldn't be a hard spec problem, any more than saying that the properties on an object are magically populated, like you can do today. [18:16:28.0000] but forwards to the Map object inside it, as well as doing whatever other dynamic things it wants [18:16:43.0000] heycam: And, ideally, is detectably a Map using the standard testing methods. [18:16:46.0000] TabAtkins: well, we need to get it right :-) [18:16:54.0000] TabAtkins, that might be a problem [18:17:01.0000] TabAtkins: once we know what's right, specifying it is not really a problem [18:17:10.0000] you want to identify it has implementing this Map-like interface, but not being a Map object itself [18:17:34.0000] because it's not one of these concrete Map objects really [18:17:35.0000] /me goes to read the ES spec around Maps real quick. [18:18:26.0000] If I'm right, the ideal way is to just define that the mapdata is magical, populated by something per-spec, and mutations to it have some spec effect as well. [18:20:32.0000] and the default Map object behaviour that ES has just has no other spec effect? [18:20:40.0000] Yes. [18:20:54.0000] sounds reasonable on first read [18:24:27.0000] The spec for .get() just grabs from the [[MapData]] internal property. We can hook this; the normal Map constructor initializes it to empty, but we could just define that it's instead filled with something specific. [18:24:54.0000] The spec for .set() appends tuples to [[MapData]], but that could be generalized or overridden to allow a hook for specs. [18:25:09.0000] TabAtkins, so it would be nice if there were a plain JS way of doing this hooking. otherwise I can imagine complaints that we shouldn't be doing more messing with internal [[Properties]] like this [18:25:15.0000] Everything else is defined in terms of get/set or just reading from [[MapData]] directly. [18:25:28.0000] heycam: Certainly. I'll bug es-discuss. [18:25:35.0000] cool [18:25:48.0000] /me wonders if Arrays could be specced similarly [19:12:04.0000] heycam: Bugging done. Comment if you'd like. [22:29:44.0000] Man, this comment syntax in VTT is annoying. [22:30:11.0000] Well, the parser not having conformance requirements is annoying. [00:17:10.0000] TabAtkins: shouldn't "reconsume the current input token" be called "unconsume the current input token" [02:23:48.0000] I wonder what is happening to public-webapps: http://lists.w3.org/Archives/Public/public-webapps/2013AprJun/0762.html [02:23:57.0000] It's not April 1... [02:28:11.0000] annevk: heh, I had to respond to that [03:37:08.0000] Hixie: fail https://www.w3.org/Bugs/Public/show_bug.cgi?id=22106 [04:40:54.0000] sooo... anyone looked at the Web Audio API? The "Required Support for Alternate Names" seems like an epic f'up. https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AlternateNames [04:43:55.0000] there is a lot of badness in that spec [04:44:50.0000] Well if they got past the whole "the spec is the WebKit implementation" thing, that's a win at least [05:25:27.0000] jgraham: but the spec doesn't even match WebKit [06:31:30.0000] marcosc: there's a bunch of Mozilla guys on that already [06:32:19.0000] marcosc: long and short of it is that Google managed to get some crappy API shipped on iPhone via Apple so now we're stuck with it... [06:33:17.0000] Is there actually a web api that has worked out OK? [06:33:18.0000] annevk: yeah, but why not then stick with the old names [06:33:21.0000] ? [06:33:26.0000] why have two names for things [06:33:30.0000] it's confusing [06:33:40.0000] It seems like every single one we have decided was horrible just after it shipped [06:33:48.0000] they have noteOn() and start(), and they don't even work as the spec says [06:33:52.0000] jgraham: are TextEncoder and TextDecoder bad? [06:34:07.0000] annevk: Dunno, does anyone ship them? [06:34:12.0000] jgraham: think so [06:34:31.0000] marcosc: because the old names suck and methods are cheap? [06:35:06.0000] "cheap" lest anyone thinks we should boil the ocean [06:43:35.0000] jgraham: don't we usually realise they're horrible and then ship them anyway? [06:44:46.0000] Did someone mention webrtc? [06:44:58.0000] :)..... :( [06:45:02.0000] that's beyond horrible [06:45:30.0000] Well there's usually a race between realising they're horrible and shipping them [06:45:48.0000] But somehow never between fixing them and shipping them [06:46:14.0000] ok, so lesson here is not to bother fixing [06:46:29.0000] "jQuery will fix it" :D [06:46:52.0000] The W3C - jQuery will fix it (TM) [06:46:56.0000] heh [06:46:57.0000] I like it [06:47:30.0000] /me fires marcosc [06:48:19.0000] You can't fire me! I quit! [06:48:22.0000] :) [06:48:33.0000] marcosc: To paraphrase mpilgrim, I think the moral of the story is that it’s time for us to find a new hobby. Preferably one that doesn’t involve angle brackets. Or computers. Or electricity. [06:51:39.0000] that would be nice [08:13:19.0000] hsivonen: I am being asked if CC-BY addresses all the use cases in http://www.w3.org/2011/03/html-license-options.html#usecases, do you know if that happens to be the case? [08:15:32.0000] hsivonen: I think it's the case, but I'm wondering if it's something you've checked [08:46:19.0000] darobin - it's something I've checked, and in general it does, with the only possible source of conflicts has to do with *GPL open source where the "BY" requirement is unable to be passed on. But in practice *GPL open source projects seem to get around this somehow. [08:46:34.0000] theoretically CC0 is best for this reason - it cleanly satisfies all the use cases [08:47:16.0000] that being said, CC-BY is an excellent step forward here, and I think one that everyone who needs those use-cases will be able to work with. [08:47:59.0000] the "BY" clause seems to make it a "less scary" option to some W3C folks, so if that's what it takes, to take a big step toward open licensing, I think it is worth it. [09:01:59.0000] tantek: thanks, that's what I thought [09:02:28.0000] darobin - hence why I'm ok supporting the CC-BY experiment for HTML5 extension specifications in the HTMLWG charter [09:02:29.0000] note that for the code-related parts I think that in general they should fall under the W3C Software License irrespective of whether they appear in the body of the spec or not [09:03:00.0000] darobin - that's an interesting exception clause. Perhaps we can similarly say that code-related parts in anything CC-BY we publish are subject themselves to CC0. [09:03:16.0000] any code examples, any algorithms [09:03:28.0000] that could probably be done without much of a problem assuming CC-BY is accepted [09:03:38.0000] that would address the "only possible source of conflicts" case I noted above [09:03:42.0000] indeed [09:04:09.0000] I've asked team-legal about the current situation regarding the Software License as it's not at all clear from the current copyright document [09:04:34.0000] Does the HTML parser count as a code part? [09:05:07.0000] Ms2ger: I doubt any interpretation would agree, but it certainly has crossed my mind :) [09:39:55.0000] zcorpan: I just copied the naming from HTML's parser. ^_^ [09:43:25.0000] good morning, Whatwg! [10:03:48.0000] alert("hello world") [10:06:11.0000] /me Hello world [10:06:48.0000] :) [10:25:20.0000] annevk, where art thou? [10:28:23.0000] miketaylr: i am sure you were referring to anne in your tweet [10:28:53.0000] /me goes to see what Mike is tweeting about [10:29:20.0000] hallvors: https://twitter.com/miketaylr/status/336894563497160704 [10:29:25.0000] hallvors: ALSO HAI LONG TIME NO SEE [10:29:39.0000] nimbu: you can't prove that! [10:30:17.0000] nimbu: thanks :-D although I'm seeing you on Twitter all the time so it's more a case of "long see no time"! [10:30:32.0000] ahahah [10:30:47.0000] <3 [10:31:46.0000] Sounds more like gsnedders [10:32:00.0000] Ms2ger: but 15 YO [10:32:08.0000] on xhmlt2 [10:32:09.0000] Could be Hixie except for the 15 part :) [10:32:16.0000] :D [10:32:33.0000] miketaylr: put all of us out of our misery by revealing the redacted [10:32:37.0000] http://ln.hixie.ch/?start=1042630901&count=1 [10:32:55.0000] interesting exercise to come up with a list of all the people in the world who were digging XHTML at 15 [10:32:55.0000] ahahaha omg [10:33:17.0000] /me has plenty of misery but doubts that knowing who miketaylr was talking about will reduce it much [10:33:37.0000] OH: "Updated Candidate Recommendation of XPath and XQuery Functions and Operators 3.0" [10:33:57.0000] i want to tweet this [10:34:04.0000] hixie's view of xhmlt2 [10:34:23.0000] good old times :) [10:34:24.0000] lol structurally sound ine element [10:34:32.0000] It does sound like satire now [10:34:43.0000] But I believe he was serious when he wrote it [10:34:48.0000] /me didn't write XHTML until it was out of fashion [10:34:52.0000] "I've gone over two years now without using it. I know this, because I set about, two years ago, to see if I could find a use case for the style attribute, and I never found one. " [10:34:55.0000] omg all gold here. [10:34:57.0000] ahahah [10:35:05.0000] Kind of puts paid to the idea that he can't change his mind [10:35:42.0000] Oh, Hixie still thinks that about the style attribute [10:35:58.0000] i would agree if he thinks so about css [10:36:17.0000] That there isn't a use case for it? [10:36:24.0000] Oh I see [10:36:27.0000] *if* [10:36:42.0000] Well no I think he still believes exactly what he wrote there [10:37:00.0000] That it is always possible to work without an inline style attribute [10:37:27.0000] Or at least, to the extent it isn't, that represents deficiencies in CSS [10:39:20.0000] Not that I can find the mail right now [10:39:32.0000] ha. [10:39:54.0000] Hixie prefers people who have class to people who have only style. Who would disagree with that? [10:40:04.0000] I remember the time he only allowed style="" on font elements [10:40:32.0000] that's a fontastic idea [10:40:52.0000] ahahahahahhaha hallvors [10:40:58.0000] /me cringes [10:41:04.0000] O DEAR LORD Ms2ger [10:41:05.0000] no [10:41:34.0000] /me is apparently too tired to stop making stupid jokes [10:42:12.0000] it is a great joake hallvors [10:42:44.0000] I'll licence the word fontastic to you any day Divya ;) [10:43:03.0000] immediately using this license hallvors THNX [11:14:56.0000] marcosc: i've whined about it (web audio), but seemingly without success. please bring it up on the list (asking for the new names to be removed) [11:15:41.0000] zcorpan: I will [11:15:46.0000] I'm putting together a demo [11:15:46.0000] thanks [11:15:54.0000] to show that it's borked [11:16:52.0000] ... but I literally just bought Dead Space and Dead Space 2 for EU10 on Steam... so I'm gonna go play! :D [12:33:09.0000] Wonder if Hixie is at Google I/O or something. [12:38:13.0000] #googleio was last week [12:40:02.0000] I believe Hixie is away for a few days [12:40:15.0000] or s/days/weeks/ perhaps [12:40:57.0000] Monthish [12:42:14.0000] Which is "a few weeks", more or less :p [12:42:47.0000] (days was a misleadingly small unit) [12:43:47.0000] Yuhong: he's on (or at least was on) vacation [12:45:17.0000] I wanted to mention that the crash in http://ln.hixie.ch/?start=1115899732&count=1 [12:46:00.0000] Was later rediscovered in http://blogs.norman.com/2011/security-research/drag-and-drop-vulnerability-in-ms11-050 and it turned out to be a exploitable crash fixed in MS11-050. 2013-05-22 [17:44:23.0000] nothing quite as much fun as discussions of the general form "i just started reading web specs yesterday, and you're doing everything wrong" [17:46:23.0000] is this a reasonable place to mention a typo in http://www.w3.org/TR/css-variables/#custom-property ? in the example, "main-color" should be "var-main-color" and "accent-color" should be "var-accent-color" [17:46:43.0000] TabAtkins: ↑ [19:26:26.0000] TabAtkins: have you looked at the new CSS selectors in the WebVTT spec? http://dev.w3.org/html5/webvtt/#css-extensions [19:27:13.0000] I'd like to get a sanity check on the design before we start implementing in Firefox. [21:08:45.0000] I updated http://quuz.org/webvtt/ a bit. [21:44:02.0000] rillian: Yeah, they're kosher. I helped design it early, and the pseudo-classes are already in Selectors 4. [21:44:57.0000] TabAtkins: so you can't do something like ::before { content: voice } at the moment which seems sad [21:45:18.0000] annevk: Hm, interesting. [21:45:24.0000] TabAtkins: and the restrictions on properties might be arbitrary? [21:45:50.0000] TabAtkins: and if this is going to be implemented in terms of components long term, how will that affect this design and usage of pseudo-elements? [21:46:23.0000] I don't know if captions are meant to be addressed in components. [21:46:45.0000] And I'm fine with custom things for built-in stuff, even if they *could* be done less conveniently with components. [21:47:31.0000] annevk: There's a voice attribute, so if we support ::cue(::before)), you can just do "content: attr(voice);" [21:48:14.0000] TabAtkins: if components are the way to explain elements, they need to be able to explain captions I think [21:48:19.0000] The property restrictions may be arbitrary. It's supposed to be the properties that you can put on ::first-line [21:48:22.0000] Plus maybe something else? [21:48:58.0000] As part of the "no magic" strategy... [21:49:19.0000] annevk: Maybe? They obviously need some ability to take a selector and apply it over a subtree. [21:49:26.0000] Maybe Components level 2. ^_^ [21:49:42.0000] (Right now you can only surface individual elements as pseudo-elements.) [21:50:25.0000] I meant to look into that. Whether components had a way to let styles bleed through. It seems the answer is no? [21:50:44.0000] Do they just inherit var-*? [21:51:23.0000] Overall that sounds okayish I suppose. [22:42:59.0000] annevk: There's a switch you can set to let selectors match through, which defaults to false. [22:43:09.0000] There's another switch for inheritance, which defaults to true. [22:43:21.0000] And yes, it's expected that variables will be a major way to style them. [22:43:44.0000] But there is also a way to declare certain shadow elements as pseudo-elements on the component root. [22:44:40.0000] TabAtkins: another thing we talked about is assigning automatic consistent colours to nodes based on the attribute value [22:44:51.0000] it would be nice if there were some way to do that with CSS [22:46:32.0000] That seems... hard. [22:46:38.0000] It's basically declarative randomness, no? [22:53:06.0000] TabAtkins: yes [22:53:49.0000] TabAtkins: you have a WebVTT file, which may be streaming, which has X different voices, which you want to allocate different colors so you can easily distinguish who is speaking (as alternative for the ::before thing) [22:55:09.0000] This doesn't have to be random, actually. Hmm. If you didn't care what the values were, perhaps a color hashing function, which takes an arbitrary input (like an attr(voice) value) and produces a color from it. [22:55:40.0000] This wouldn't guarantee the values were different, or far enough apart to be distinguishable, but it'd give you a good chance of it. [22:56:37.0000] Alternately, make it explicit. Create a list of values, and have the page consume them by associating them with a key. The value assigned to each key is stable for the page, and the order they're consumed is defined somehow. [22:56:46.0000] So you could define, say, 20 colors for voices. [22:57:48.0000] TabAtkins: alternatively, you'd do it on a per-cue basis I suppose [22:58:19.0000] annevk: You want persistent colors for each voice across a video. [22:58:36.0000] TabAtkins: upfront doesn't work for live-captioning [22:58:57.0000] (not sure that will ever happen in practice in that way though :)) [22:59:47.0000] annevk: I meant that you declare a list of 20 appropriate colors up-front. CSS figures out which colors attach to which voice for you, first-come-first-serve. [23:00:27.0000] Ah yeah. Combined with the hash table that works. [23:01:07.0000] Does seem like a pie-in-the-sky feature a bit, but worth keeping in mind. [23:02:40.0000] Finding use-cases outside of WebVTT would help. [23:05:44.0000] You could maybe generalize it to select the first value from this list of values based on a string, then forever associate that value with that string and remove it from the list. [23:06:10.0000] And then do silly things with it. [23:07:13.0000] Color table rows based on their sort key? [23:08:53.0000] Should patent that. "New CSS-based feature to do silly things." [23:15:20.0000] TabAtkins: it could even select from an ordered list of colours [23:15:40.0000] oh, you said that [23:20:06.0000] annevk: Yeah, generalizing to arbitrary values is pretty obvious. [23:20:18.0000] And your example isn't too terrible. ^_^ [23:20:34.0000] Make it so! [23:20:43.0000] Point is, sounds like a useful tool for a variety of disparate and somewhat interesting use-cases that are difficult to address otherwise. [23:21:07.0000] Ooooh, I wonder how much I can bodge this into a randomness feature. [23:21:43.0000] Because why force people to declare values when they don't have to? We can create some random functions, valid only in the list-declaring at-rule. [23:22:03.0000] This solves at least part of the "when do you evaluate?" problem with declarative randomness. [23:22:15.0000] does Chromium not support audio/mpeg? [23:22:30.0000] Like, let the list be capped with a random function, so it generates infinite values after your predefined ones. [23:23:46.0000] TabAtkins: I think you might want "repeat" too, or random-from-list [23:23:53.0000] but yeah [23:24:54.0000] man, styling my website in random colors would be great [23:25:35.0000] Haha [23:45:08.0000] MikeSmith: I believe it doesn't. MP3 is still a non-free format. [23:45:37.0000] rillian: ok [02:36:22.0000] So where's hallvors? I'm getting pretty close to using Fetch in XMLHttpRequest to see what might break... [02:36:37.0000] Also, I guess I want some feedback from Hixie and others. Maybe I should send email. [03:15:30.0000] heh, "pretty dry reading" [03:16:17.0000] annevk: "HTML Standard's fetch and potentially CORS-enabled fetch algorithms", -> potentially? [03:16:52.0000] annevk: "and make provide a model" s/make// [03:18:16.0000] annevk: "to fetch a resource or URL" what's the diff? [03:19:14.0000] annevk: "Note: The block cookies flag is obsolete now." if so, then please either remove it or indicate why it's still in [03:20:09.0000] annevk: "The element's node document. " -> The element's document node. maybe? [03:22:48.0000] darobin, no, "node document" is a well-defined term [03:23:26.0000] ah, the DOM4 node document? [03:23:48.0000] an indication that this is a term would help, I failed to parse the sentence on reading [03:24:17.0000] Hmm, yes, that should be a link [03:24:34.0000] Hrm [03:24:52.0000] Something is wrong with the preprocessing [03:26:46.0000] a lot of terms seem to be getting style but no link, too [03:27:11.0000] /me looks what's up [03:29:21.0000] People complain about tar arguments, but ln sucks too [03:29:41.0000] annevk: ["true" is a string, while true is a byte string. ] maybe that example would be clearer if you didn't use a common boolean term [03:29:46.0000] Ms2ger: you don't say :) [03:30:17.0000] annevk: "considers bytes in the range 0x41 to 0x5A to be a match for their corresponding byte in the range 0x61 to 0x7A." -> does this need to state that the reverse is true too? [03:30:41.0000] annevk: "via data URL" -> URLs [03:32:58.0000] darobin: so lots of thanks, will try to address these tomorrow [03:33:03.0000] darobin: seems we're heading out for food [03:33:16.0000] sure, I'll just keep dumping stuff in the logs [03:33:26.0000] /me messes with the xrefs in the meantime [03:33:31.0000] mostly it seems editorial so fart [03:33:36.0000] so *far* [03:33:59.0000] :-) [03:34:20.0000] annevk: "A arequest has an associated " -> request [03:52:59.0000] darobin, what was the potentially thing about? [03:54:07.0000] Ms2ger: ah, I can parse that sentence better on re-reading it [03:54:37.0000] it's "potentially-CORS-enabled" [03:55:35.0000] on first read it seemed to say "this specification supplants (...) HTML Standard's fetch" and, you know, maybe, CORS-enabled fetch [03:56:06.0000] I think the "potentially" is useless and would be better dropped [03:56:09.0000] Heh [03:56:28.0000] Well, that's the goal of this spec :) [03:57:20.0000] yeah, which is why it should be clear and not "potential" :) [03:58:14.0000] hmmm, most of these algorithms I can't usefully review without writing the code to match [03:59:18.0000] /me food [03:59:57.0000] Anyway, xrefs and "a arequest" should be fixed [04:04:38.0000] slightlyoff: can you help us out quickly with some Futures spec terminoloty? https://github.com/sysapps/web-alarms/issues/29#issuecomment-18271329 [04:05:31.0000] or terminology :) [04:27:56.0000] I love the mention that using cookies is a fingerprinting vector :) [04:30:03.0000] Keep your fingers off my cookies [04:30:12.0000] Cookies are delicious delicacies [04:47:24.0000] annevk: some more notes for when you come back https://gist.github.com/anonymous/fe3aa4243ae7b4f68376 [04:47:39.0000] I guess that for such editorial stuff I could have made a pull request [04:47:46.0000] will see about that next time [06:50:01.0000] marcosc: yeah, sorry for the delay [06:53:28.0000] slightlyoff: no probs, thanks for commenting [08:34:41.0000] SimonSapin, how's the new job? :) [08:35:22.0000] Ms2ger: It’s awesome :D [08:35:54.0000] and a bit overwhelming [08:43:05.0000] rillian: fwiw I managed to build Chromium with audio/mpeg support by feeding it a couple of gyp flags [08:43:15.0000] http://www.chromium.org/audio-video#TOC-GYP-Flags [08:43:39.0000] I guess that probably enables H.264 support too [08:48:14.0000] Good lord, tc39 is *actually* telling me that I shouldn't reuse their data structures, and should instead just reinvent a Map-lookalike every time I want to use a Map in a spec. [08:48:22.0000] This is a dream, right? [08:48:26.0000] I'm dreaming right now? [08:49:38.0000] No, no [08:49:42.0000] Sweet dreams [08:49:43.0000] That's Javascripty [08:49:51.0000] It's the Idiomatic Way [08:50:44.0000] TabAtkins: In a moment MikeSmith will turn into Carrie Fisher and kiss you [08:50:48.0000] Which is weird [08:50:53.0000] jgraham: But oddly arousing. [08:50:56.0000] But it's your dream [08:51:16.0000] Does MikeSmith have the buns on before he changes? [08:51:55.0000] Sure, like normal [08:52:06.0000] Cool, cool, just making sure. [08:52:17.0000] Wouldn't want it to get weird or anything. [10:35:44.0000] "Modified UTF-8 form"? there's a sequence of words that makes me rage inside [11:31:17.0000] zewt: sounds like a scary stuff. [11:31:37.0000] zewt: where did you find this horror? [13:01:38.0000] google docs :( [13:01:56.0000] (for Java stuff so the real blame might be on Oracle or Sun or whoever) [13:02:09.0000] http://developer.android.com/training/articles/perf-jni.html [13:09:12.0000] zewt: Is the problem that you're wanting some actual documentation of the JNI API, not just a collection of random tips? [13:13:40.0000] zewt: Oh, I guess you were actually responding to rniwa [13:13:59.0000] in which case I'm pretty sure it's Sun's fault [13:18:16.0000] zewt: http://docs.oracle.com/javase/1.3/docs/guide/jni/spec/types.doc.html#16542 - been there since at least 1997, apparently [13:19:16.0000] Back then they thought a 16-bit char would be a sensible idea, too [13:19:34.0000] but it turns out Unicode is hard :-( [13:35:56.0000] when Google joined whatwg? [13:44:00.0000] dekiss: WHATWG doesn't have members really [13:44:19.0000] But Google employees have been active for a long time [13:44:21.0000] ? [13:44:24.0000] cmon [13:44:32.0000] apple opera mozilla started it right? [13:44:36.0000] well [13:44:40.0000] who operate it then? [13:44:49.0000] it has closed membership i dont understand [13:44:56.0000] it must have directors or something [13:45:12.0000] right? [13:45:35.0000] you want to say it has some kind of directors and it works like closed organization? [13:46:08.0000] Apparently the amount that you can get done without a heavyweight bureaucracy would surprise you [13:46:49.0000] WHATWG theoretically has a group of appointed members that can tell Hixie that he's useless [13:47:07.0000] In practice they have, as far as I know, done nothing [13:47:20.0000] In fact it's hard to imagine what they would do [13:47:41.0000] i think they actually did something once [13:47:50.0000] Because the response to the failure mode "Hixie has gone mad and won't listen to reason" is to fork the spec [13:47:52.0000] but i don't remember what it was [13:48:24.0000] Didn't they vote to allow annevk to join their club? [13:48:53.0000] AFAIK the WHATWG site is hosted on Hixie's Dreamhost account [13:49:23.0000] In the early days some lawyers at Opera, Mozilla and Apple were involved in licensing the specification [13:49:41.0000] Apart from that it's just a mailing list [13:50:11.0000] hm [13:50:30.0000] its offiocial standard [13:50:36.0000] and 99% use it [13:51:18.0000] In this context I don't know what an "official" standard is [13:51:56.0000] It's not like there are laws about HTML compliance [13:52:33.0000] Browser vendors and market forces are the ultimate arbiters of what gets implemented [13:52:55.0000] hm [13:52:58.0000] what about w3? [13:53:04.0000] But there is some competition between venues for doing standards work [13:53:05.0000] Tim don't have power? [13:53:19.0000] that is plain bad [13:53:27.0000] money=BAD [13:53:39.0000] On brand name, efficiency, IPR commitments, etc. [13:53:45.0000] jgraham I know thats true I just try to cinvience myself in oppposite [13:54:25.0000] So W3C have comparatively strong IPR policies which several vendors particuarly like [13:54:39.0000] e.g. Microsoft won't do work in the WHATWG [13:54:59.0000] They also have a rather strong brand [13:55:18.0000] Although they are currently engaged in a self-destruct campaign on that front [13:55:30.0000] why? [13:56:38.0000] I don't know why. [13:57:31.0000] hey its a place w/ people and stuff [13:57:33.0000] crazy [13:57:43.0000] But the whole DRM thing is doing a lot of harm to the whole "W3C => good for the web" association they have managed to build up [13:58:47.0000] Also among vendors they are not renouned for being a place to get stuff done with a minimum of overhead [13:59:17.0000] Okay, those are same vendors pushing the DRM stuff. [13:59:58.0000] On the other hand WHATWG has a minimum of Process and is generally rather efficient at solving technical challenges, but doesn't offer the Patent policy so is rather weak on the IPR front [14:00:30.0000] (OTOH, it is possibly to republish WHATWG specs through W3C which can provide the benefits of both organisations) [14:04:14.0000] jgraham: those benefits being all the process of the W3C plus all the snarking from WHATWG about that process? [14:04:51.0000] hm [14:06:18.0000] astearns: More like "getting stuff done from WHATWG without that process" 2013-05-23 [20:01:49.0000] TC39: Work with us. "W3C": Okay, how do I solve X in a way that makes sense? TC39: GTFO. [20:02:04.0000] sad panda [20:17:54.0000] annevk: up early? [20:19:59.0000] zcorpan: late today actually. I'm in Taipei [20:20:49.0000] ah [20:21:48.0000] zcorpan: about to upload your merge to the server [20:22:35.0000] what merge? [20:23:11.0000] zcorpan: NOTE requiring whitespace [20:23:18.0000] ah [20:24:33.0000] first i considered filing a bug but i figured it would be about the same effort to do a PR [20:41:56.0000] Taipei [20:42:02.0000] annevk: nice [20:42:19.0000] been there only one time but I'd really like to visit again [20:43:42.0000] MikeSmith: mostly been working thus far, but Saturday I'll have a chance to visit a few things and maybe go for a hike [20:44:15.0000] MikeSmith: unfortunately the TAG F2F is in London next week so I couldn't hang around longer. Ideally I would've just stayed in Asia until the AC thingie... [20:45:50.0000] annevk: people probably suggested this already, but I recommend going to the night market if you have time [22:08:54.0000] Taipeiii [22:09:06.0000] i was only there to buy the first tiny asus computer [22:09:10.0000] and i never used it since [22:11:58.0000] sounds like my XO laptop [22:12:03.0000] although I got that in Oslo [22:14:04.0000] ya exactly [23:22:24.0000] Why is "intertwinedness" not a word? [23:59:20.0000] hober, yeah, I believe the one thing the whatwg members did was making annevk a member [00:21:06.0000] morning annevk5 [00:21:20.0000] hallvors: good afternoon [00:22:02.0000] so it's you and not a clone - 5 of you would be a bit rich, though between you you'd get a lot of spec stuff done :-p [00:22:21.0000] joking aside: thanks for the response headers fix [00:22:31.0000] heh [00:22:48.0000] 5 is an obscure reference to 5 > 2, which is itself obscure [00:35:09.0000] layered obscurity. Sounds like something a spec editor would be into, yes [00:35:14.0000] ;) [00:39:17.0000] only in off hours [00:47:17.0000] MikeSmith: did Vic Gundotra make you take the "(tm)" bit out on G+? [01:40:34.0000] Does the CORS spec have a test suite? [01:41:11.0000] hallvors: yeah, Odin wrote one [01:41:20.0000] ^_^ [01:41:23.0000] great, but where is it? [01:41:31.0000] The obvious place [01:41:34.0000] I was looking around at w3c-test a bit [01:41:41.0000] webappsec/cors [01:41:44.0000] BUT! [01:41:45.0000] ah [01:41:47.0000] thanks [01:41:47.0000] I will move it :D [01:41:51.0000] Because I am allowed now [01:41:59.0000] "allowed" [01:42:23.0000] put it in Fetch :) [01:43:17.0000] annevk: I'll put it in web-platform-tests/ -- but I should use the TR name, and that's still cors at W3C. :/ [01:43:38.0000] odinho: there's a requirement to that effect? [01:43:39.0000] Dunno when the man will take Fetch. [01:43:50.0000] annevk: Yep. To make it easy to find tests-specs. [01:44:11.0000] I think it's a good rule :) [01:44:25.0000] good rule of thumb, sure [01:44:41.0000] odinho, just put them under fetch [01:44:44.0000] annevk: Easy to move when webapps/someone taks fetch [01:48:37.0000] odinho: could you also make sure the correct server names and port numbers work on w3c-test.org ? [01:48:52.0000] or rewrite the tests to use http://www.w3.org/wiki/Testing/Requirements#The_Web_test_server_must_be_available_through_different_domain_names [01:50:02.0000] Does webappssec have anything else? [02:09:15.0000] annevk: why is there no text about redirects under "cross-origin request event rules"? [02:09:26.0000] http://xhr.spec.whatwg.org/#cross-origin-request-event-rules [02:09:52.0000] Apparently my site is the reference Stackoverflow uses to comment on why application/xml is better than text/xml, except that blog post is really old and obsolete by now (although the bad RFC has not yet been updated). [02:10:12.0000] hallvors: CORS handles redirects [02:10:28.0000] hallvors: all redirect text is going away once I patch XMLHttpRequest to use Fetch [02:10:36.0000] /me will look at CORS [02:10:51.0000] Look at Fetch [02:10:57.0000] CORS is the past [02:12:26.0000] http://www.w3.org/TR/2013/CR-cors-20130129/#redirect-steps [02:12:35.0000] /me will look at Fetch too [02:14:00.0000] o_O TR/ [02:14:10.0000] http://steps.dodgson.org/b/2013/05/19/polymer-and-web-components/ "The New Gang of Four" :-) [02:15:51.0000] annevk: that's the CORS spec your XHR spec on whatwg links to :) [02:16:00.0000] /me believes in clicking links on the web [02:16:25.0000] o_O [02:16:34.0000] might be the latest I suppose, all the more reason to fetchify it [02:17:27.0000] ugh annevk, come back - I need you :-/ [02:20:39.0000] So Fetch says "If the CORS flag is set and response's location's origin is not request's url's origin, set request's origin to a globally unique identifier." [02:21:01.0000] I'm not entirely sure what that means [02:21:27.0000] but as far as I can tell, it doesn't apply if a CORS resource redirects back to a same-origin resource [02:31:29.0000] hallvors: They should use that. [02:32:10.0000] odinho: you meant the server names stuff? [02:32:49.0000] Yea. I made a support.js file for that at least. But can double check it when I move it. Was sidetracked by a meeting just now. [02:33:17.0000] excellent [02:34:07.0000] hallvors: globally unique identifier is just a long random string, -- and the important part is that it stringifies to "null" but one guid is always != another guid [02:35:07.0000] hallvors: If you mysite -> flickr -> flickr, then origin=flickr, if you do anything else, it's guid. [02:35:19.0000] hallvors: So even mysite -> flickr -> mysite == guid [02:35:37.0000] OK.. [02:36:46.0000] So that sends no Origin header in the next request - what about cookies? [02:37:53.0000] /me sometimes dislikes algorithm-style specs :-/ [03:00:13.0000] Fetch makes NO sense anyway. "If request's omit credentials mode is always": include cookies and auth. Huh? What does 'omit' mean again? [03:03:03.0000] Sounds strange. "omit credentials" always should not include cookies and auth. [03:11:35.0000] I just reported a bug for it [03:11:40.0000] probably an error [03:34:29.0000] hallvors, 'manual foo.html' in the MANIFEST [03:35:52.0000] Not that that's an agreed standard, but it works with Mozilla's infrastructure at least [03:36:32.0000] OK, thanks [03:36:43.0000] I admit that I don't usually update MANIFEST files [03:36:54.0000] I didn't know what they were for, really.. [03:37:34.0000] I've got a tool to automatically run the tests listed there, and they're used for Mozilla's importing code too [03:54:45.0000] Ms2ger: I started hanging around here when I was 15, not HTML WG fantasy land. [04:04:02.0000] /me wonders why anyone would *not* want to go to fantasy land! [04:19:51.0000] hallvors: seems I inverted the logic there [04:19:55.0000] hallvors: for both statements [04:19:59.0000] sloppy :/ [04:21:09.0000] Ah, I has a pull request BTW. https://github.com/w3c/web-platform-tests/pull/112 [04:21:16.0000] I added my todo list to it :-) [04:48:49.0000] annevk: https://www.w3.org/Bugs/Public/show_bug.cgi?id=22150 . And maybe you can add an explanatory note so that I'll understand why I don't have to report https://www.w3.org/Bugs/Public/show_bug.cgi?id=22151 next time.. ;) [04:56:02.0000] jgraham: was there a new review for https://critic.hoppipolla.co.uk/r/27 somewhere? URL? [04:56:40.0000] (if you haven't gotten around to it, no worries - I'll read through the old review and make fixes) [05:35:49.0000] Done with https://critic.hoppipolla.co.uk/r/116 for now, if anybody feels like reviewing [05:49:34.0000] hsivonen: about Google Plus, yeah, I got an admin message telling me I had to drop the [tm] from my name in order to comply with their misguided "real name" policy [05:52:56.0000] they still have a "real name" policy? [05:54:33.0000] MikeSmith: :-( [05:57:26.0000] Pff, g+ [05:57:57.0000] Today I learned. If you know the secret address of a shared calendar on Google Calendar and try to subscribe to it from another account, the you don't get to subscribe, but you are told the name of the calendar [06:05:12.0000] darobin: yeah they still have such a plicy afaik [06:06:10.0000] MikeSmith: so basically it's okay for there to be zillions of bots friending people pretending to be sexy girls so long as they use real names? [06:07:01.0000] /me pretends to be a sexy girl [06:07:18.0000] darobin: yep, that's an accurate description [06:07:29.0000] Of miketaylr? [06:07:35.0000] they really have their priorities straight [06:07:40.0000] Ms2ger: heh :) [06:07:48.0000] :D [06:11:03.0000] Oh, looks like Gecko has now [06:21:23.0000] nice, nice, nice! [06:35:17.0000] You'd think that the new Privacy Policy that allows Google to combine data across services would give them a way to tell bots and people apart by analyzing activity on other services [06:37:39.0000] That sounds even creepier [06:47:01.0000] Which part of "giant organisation that stores a complete record of everything you view online, your shopping habits, your email, your appointments, your documents and your social contacts" didn't already sound creepy? [06:47:41.0000] jgraham: the part where they do the same for bots — poor sods haven't been asking for it [06:47:43.0000] "Creepier" doesn't imply it wasn't already creepy [06:48:10.0000] the fight for bot privacy [07:42:07.0000] /me grumbles something about mimesniff [07:44:59.0000] Apparently a number of changes have been made to the Gecko sniffer in areas covered by the mimesniff without anyone letting me know [07:45:06.0000] +spec [09:17:26.0000] good morning, Whatwg! [10:16:19.0000] /me always has to do a double take to figure out whether a tweet came from @FakeAlexRussell or @slightlylate [10:29:40.0000] annevk: intertwindedness *is* a word. [10:29:51.0000] winded? [10:30:37.0000] intertwinedness [10:30:41.0000] Too many d's. [10:31:41.0000] tantek: Mind editing UI to specify that 'cursor' propagates from the root to the viewport? [10:31:54.0000] tantek: See "Addressing space outside a document's root element" thread. [10:32:05.0000] what does it mean for something to propagate to the viewport? [10:32:13.0000] sounds reasonable [10:32:23.0000] The effect of the property applies to the viewport. Check the wording around background. [10:32:37.0000] thread on which list? URL if you happen to be looking at it? [10:32:46.0000] www-style, one sec for link [10:33:15.0000] http://www.w3.org/mid/kmqqts$ql1$1⊙ggo [10:33:30.0000] bz and I agree on it [10:36:21.0000] TabAtkins - do we have a preferred canonical reference for this notion of viewport in CSS3, or are we still using 2.1 for that? [10:36:33.0000] Still 2.1. [10:36:37.0000] k [10:36:38.0000] Unless B&B has something useful in it. [10:36:47.0000] that's what I was wondering actually. [10:36:55.0000] Hm, wonder where the concept of "viewport" would even go... [10:39:16.0000] yeah, that question. [10:39:36.0000] css-viewport-3 [10:39:51.0000] Ms2ger: Consisting of two non-boilerplate paragraphs? [10:40:03.0000] Sounds like par for the course [10:40:12.0000] jerk. ^_^ [10:41:31.0000] Me? I'd never! :) [10:43:45.0000] dglazkov Hixie: The idea of using the new input types (such as ) with a custom UI has been discussed a few times on the mailing list, but there's never been a solid answer to this. [10:43:59.0000] The most recent response I've gotten from Hixie was that custom elements would solve this. [10:44:07.0000] Is that still the plan? [10:46:02.0000] Yes. [10:46:41.0000] Ok, so this presents two challenges. One hopefully easier to overcome than the other. [10:46:51.0000] The first problem is that nobody supports this. [10:47:18.0000] Chrome/Canary throw an error if you try to replace the Shadow DOM for an input: http://jsfiddle.net/tj_vantoll/uTa2d/ [10:47:24.0000] Well, nobody supports anything else either [10:47:32.0000] That's the problem that's hopefully easy to overcome. [10:48:02.0000] Yes, that's something we know about and will fix as we go along. [10:48:07.0000] The bigger problem is that you wouldn't actually want to replace all elements, just the ones of a certain @type. [10:48:20.0000] That is indeed the hard problem. :/ [10:48:30.0000] was badly designed from the start. [10:48:41.0000] No real way around it. [10:49:13.0000] Ok, let's start with an easier problem. Let's say you want to just create a new element instead of hijacking [10:49:29.0000] So you create a custom element like [10:49:34.0000] Which inherits from [10:49:55.0000] We'll need a way to specify that it actually inherits from so that all the semantics work. [10:50:23.0000] Will custom elements be able to leverage native validation or will everything have to go through setCustomValidity()? [10:53:04.0000] We don't yet let you define your own form elements yet. When we do, though, we'll provide hooks for all the APIs. [10:53:24.0000] (And probably make satisfying the hooks required - no form elements that provide a submit value but don't understand the validity API, etc.) [10:57:28.0000] It seems like if that were possible you probably wouldn't want to go the route of changing the shadow root of an . [10:58:10.0000] Well, this is just the same old progressive enhancement of HTML4, upgraded to HTML5. [10:58:17.0000] Changing, no. Adding a new shadow root, yes. [10:58:44.0000] Doesn't adding a new shadow root remove the old one? [10:59:19.0000] Or did you just mean that we're not reaching into the existing one and changing it. [10:59:20.0000] Not quite - it shadows (hah!) the old one, but you can surface the old one through the element in your shadow tree. [11:03:51.0000] Has any work started towards specifying custom form elements yet? [11:04:56.0000] There has been thought about it. Nothing specified yet. [11:07:11.0000] I assumed intertwindness had been banned as a word to prevent Authur C. Clarke using it in a sex scene [11:07:32.0000] I suspect he already has, though I'd have to reread. [11:09:53.0000] Ok so just to make sure I understand what has been discussed, the fact that you cannot add a new shadow root to form elements in Chrome is an implementation issue, but it should be possible at some point. And, the long term plan is to allow for custom form elements that will have hooks into things like the validation APIs. [11:10:38.0000] Yes. [11:11:16.0000] FWIW the design of is helpful if you don't start from the point of view of trying to make components work [11:11:43.0000] e.g. can fall back to a text input without problems [11:11:44.0000] jgraham: Not particularly. It means that you have to swap out interfaces based on attribute changes, which is nasty in a component-less world too. [11:11:54.0000] Yeah, that's the one good thing about it. [11:11:59.0000] Well yes, there is that [11:12:10.0000] But can also be solved (with a drop in usability) by allowing fallback contents. [11:14:05.0000] Ok. Thanks TabAtkins. [11:30:39.0000] /me wonders what is lurking in the shadows... [11:34:59.0000] Me [12:53:33.0000] GPHemsley: Note that the shadow/light dom naming was originally a reference to legend of zelda. [12:57:07.0000] so that's the real reason we have for components [12:57:29.0000] Well, duh. Surprised it took you so long. [12:58:01.0000] or is it import now? [12:58:10.0000] Still a link. [13:06:06.0000] When do we get the boomerang? [13:06:20.0000] /me falls over [13:06:23.0000] It's here! [14:27:16.0000] TabAtkins: yt? [14:27:23.0000] rniwa: pong [14:27:25.0000] TabAtkins: hi [14:27:29.0000] TabAtkins: i have a question for object-fit [14:27:34.0000] Shoot [14:27:54.0000] TabAtkins: so suppose we have an image with an instrinstic ratio of 3:2 [14:28:10.0000] TabAtkins: and then set width & height of an img element that uses this page to be 120px and 80px [14:28:27.0000] TabAtkins: now further suppose that I set max-width to 100px; [14:28:40.0000] TabAtkins: in this case, does img element still occupy 80px in height? [14:28:57.0000] rniwa: what's the value of object-fit? [14:28:58.0000] TabAtkins: (at least that's my current understanding of the spec) [14:29:04.0000] hober: oh very important [14:29:15.0000] TabAtkins, hober: with object-fit: contain [14:29:16.0000] That has nothing to do with object-fit, but rather to the sizing algorithm. [14:29:25.0000] object-fit doesn't change the sizing algorithm in any way. [14:29:37.0000] TabAtkins: but why? [14:29:40.0000] And the sizing algorithm just receives a specified size of 100 by 80 [14:29:44.0000] rniwa: Why what? [14:29:59.0000] TabAtkins: why doesn't sizing algorithm change the height to be 66px instead? [14:30:10.0000] TabAtkins: what's the use case for leaving that extra space for img element? [14:30:17.0000] ...because why would it? You set the height to 80px. We believe you when you say that. [14:30:25.0000] If you want CSS to compute the height, leave it auto. [14:30:39.0000] TabAtkins: so 120px and 80px are bad examples [14:30:53.0000] TabAtkins: a realistic example will be something like 100% by 100% [14:31:03.0000] TabAtkins: or 1em by 1em [14:31:10.0000] if you don't know what the width or height of an image is, so you don't know it's intrinsic aspect ratio, you want to constrain both width and height and maintain the aspect ratio without having weird extra space on either side [14:31:14.0000] Still all bad examples, because you're setting the height. [14:31:42.0000] hober: I don't think it's possible to enforce that many constraints at once. [14:31:44.0000] TabAtkins: why not? [14:32:00.0000] rniwa: Because you're setting the height. Again, *we believe you* if you set it. [14:32:30.0000] i *think* we're talking about this case: img { max-width: 100%; max-height: 100%; object-fit: contain; } [14:32:47.0000] Okay, so that's a new situation. [14:32:48.0000] hober: s/max-// [14:33:00.0000] oh, interesting [14:33:05.0000] Let's assume that both of the 100%s resolve to a definite length. [14:33:26.0000] img { width: 100%; height: 100%; max-width: 1000px; max-height:1000px; object-fit: contain; } [14:33:42.0000] Now, width and height are both auto, so you enter the sizing algorithm with a specified size that's only constrained on the max side. [14:34:10.0000] TabAtkins: wait, why are width & height auto in this case? [14:34:15.0000] rniwa: No, your example doesn't demonstrate anything anything, again because width and height are both set. [14:34:20.0000] TabAtkins: yeah [14:34:23.0000] hober's does, because they're auto. [14:34:24.0000] TabAtkins: but this is the case i'm talking about. [14:34:39.0000] rniwa: Your case has nothing interesting going on, assuming that both 100%s resolve to a definite length. [14:34:41.0000] TabAtkins: no, i'm not interested in talking about the case where width & height are auto. [14:34:57.0000] TabAtkins: what I want is for height or width to shrink [14:35:03.0000] TabAtkins: preserving the aspect ratio [14:35:09.0000] rniwa: That's not what you'll get. [14:35:10.0000] TabAtkins: instead of leaving empty space there [14:35:12.0000] As I keep explaining. [14:35:29.0000] TabAtkins: so what will happen? [14:35:35.0000] If you *leave height auto*, it'll do what you want. [14:35:41.0000] TabAtkins: we don't want to :( [14:35:51.0000] Unless the height is too tall, I guess. Then it'll squish. [14:35:58.0000] if i were to try to put the author of rniwa's example's intent into english, it's "make this image super big, but with max constraints in both dimensions, while preserving aspect ratio" [14:36:13.0000] Yeah, I get the intent. [14:36:15.0000] hober: yeah. [14:36:28.0000] He just keeps asking me about specific code that doesn't express that intent. ^_^ [14:36:40.0000] TabAtkins: so how would you acheive that intent, given that you don't know the intrinsic aspect ratio of unknown.jpg? [14:37:34.0000] isn't that object-fit: cover? [14:37:40.0000] /me should read up [14:37:48.0000] miketaylr: No, object-fit has no effect on the element's size. [14:37:56.0000] It affects the size of the image *within* the element. [14:38:12.0000] right [14:38:30.0000] TabAtkins: right, but I'm challenging that behavior isn't useful. [14:38:34.0000] and how many authors realize that those are different things? [14:38:43.0000] TabAtkins: what most of authors want is for the width & height of img to be affected by object-fit. [14:38:46.0000] actually, how many authors want those to be different things? [14:38:54.0000] on the order of zero i'm guessing [14:39:09.0000] rniwa: I... don't think they do? I mean, the entire example is about the image changing size within the tag. [14:39:23.0000] TabAtkins: but why do we want that? [14:39:25.0000] What you're looking for is a stronger way to enforce aspect ratios than CSS gives you currently. [14:39:31.0000] TabAtkins: when do you want to resize the image within img? [14:39:42.0000] For videos, for example, to do letterboxing. [14:40:00.0000] When your video and