2011-02-01 [16:01:00.0000] TabAtkins: I can imagine it being a pain to get those URLs in there [16:01:01.0000] I dunno if it is or not. If the url is carried in the email somehow, I can do it. [16:01:02.0000] TabAtkins: I don’t think it is [16:02:00.0000] TabAtkins: In that case, you could host the diffs yourself [16:02:01.0000] I'm confused. What is missing about the diffs? They're right there in the feed. [16:02:02.0000] TabAtkins: Yeah, but there’s no way to link to them individually (from the feed) [16:03:00.0000] Oh, to link to individual commits? [16:03:01.0000] Yeah [16:03:02.0000] Like your full feed, only limited to one commit [16:04:00.0000] I can rig that up. I'll see if I can do that later today. [16:04:01.0000] It would allow us to turn http://twitter.com/csscommits into something that looks more like http://twitter.com/whatwg [16:05:00.0000] In fact, just gimme a few minutes to talk to my dentist, and I'll get on it. [16:05:01.0000] Yay! [16:08:00.0000] Argh, where is MikeSmith when you need him? WAKE UP, JAPAN. [16:09:00.0000] omg http://code.google.com/p/es-operating-system/ [16:12:00.0000] paul_irish: Contacted the LearnBoost dude and let him know that my slidedeck is out-of-date, and he shouldn't rely on *any* syntax until he sees something ship. [16:16:00.0000] bga_: OK, that is fascinating. Most of the UI on the Wii web browser is HTML, CSS and JS - but that's taking it a bit further. (c: [16:26:00.0000] btw wilhelm while we invent tabs/lists/trees/... each time because whatwg does not want standardize xul/other full ui markup - its bad [16:30:00.0000] That's a difficult problem to solve. [16:31:00.0000] choose most popular open version http://en.wikipedia.org/wiki/User_interface_markup_language :) [16:32:00.0000] abarth, where's the CSP use-cases pages you started that Lucas mentioned? [16:36:00.0000] bga_: Just within Opera, there are at least three different UI toolkits in use, in part due to platform constraints and in part due to a decade of legacy code. As I said, this is a difficult problem to solve. (c: [16:37:00.0000] man i hate iana's mime type registry [16:37:01.0000] it is so completely useless [16:39:00.0000] wilhelm cross platform toolkits: wxwidget qt gtk ... :) [16:40:00.0000] gtk is very lightweight [16:42:00.0000] Neither of those are sufficiently cross-platform. And no, gtk isn't lightweight enough for all use cases. Neither is qt - which we removed from our GNU/Linux browser because it was too slow. [16:50:00.0000] matjas: Is this sufficient? http://www.xanthir.com/feed/public-css-commits/?t=2011-01-31T21:57:35+00:00 [16:50:01.0000] The feed now lists each entries' permalink as a rel=alternate. [16:50:02.0000] definitely! [16:51:00.0000] TabAtkins: +2 internets to you [16:51:01.0000] Excellent. Soon I will have *all* the internets. [16:52:00.0000] I really need to cache this stuff, so I'm not constantly hitting up GMail for the data. [16:52:01.0000] But to do that, I need to write my file-based persistence layer, which I'll be using all over my site so I can turn off my db and save myself 2c per day! [16:53:00.0000] Am I misunderstanding HTTP auth here, or is this guy clueless? http://www.w3.org/Bugs/Public/show_bug.cgi?id=11912 [16:54:00.0000] aaah, wall of text [16:54:01.0000] /me hides [16:54:02.0000] skip his wall of text, read Aryeh's comments. [16:54:03.0000] cunning plan [16:55:00.0000] oh he's just asking for s/cookies/auth/? [16:55:01.0000] good luck with that [16:55:02.0000] Looks like it, yeah. [16:55:03.0000] I'm trying to figure out if the benefits he claims for HTTP auth even theoretically make sense. [16:55:04.0000] Leaving aside whether it's practically useful. [16:55:05.0000] I can't see how they do. [16:56:00.0000] But I have no idea how HTTP auth actually works. [16:56:01.0000] TabAtkins: could you remove the leading whitespace in your feed? [16:56:02.0000] TabAtkins: before the XML prolog [16:57:00.0000] http://feedvalidator.org/check.cgi?url=http%3A%2F%2Fwww.xanthir.com%2Ffeed%2Fpublic-css-commits%2F [16:57:01.0000] (and while you're at it, why not just remove the XML prolog altogether?) [16:57:02.0000] Can I? [16:57:03.0000] /me has no idea. [16:57:04.0000] /me is confused and enraged by XML. [16:57:05.0000] AryehGregor: http auth works different ways depending on the auth type [16:58:00.0000] AryehGregor: for basic, you send the username and password with each request. [16:58:01.0000] in plain text [16:58:02.0000] TabAtkins: Sure you can. http://mathiasbynens.be/notes.atom validates just fine [16:58:03.0000] matjas: Just removed the entity. Validates now. [16:59:00.0000] Yeah, I can't see how that has any advantages whatsoever except convenience. [16:59:01.0000] I'm gonna go remove it from my blog feed too, then. I hate the contortions you have to go through to output an XML prolog in PHP. [17:00:00.0000] What contortions? [17:01:00.0000] You can't just output it literally, because it looks like a PHP shorttag. [17:02:00.0000] Which I use, because I love [17:02:01.0000] AryehGregor: it's theoretically better, but was poorly deployed and is now practically irrelevant [17:02:02.0000] What's theoretically better about it? [17:02:03.0000] TabAtkins, oh, shorttags, blech. [17:02:04.0000] , blech. [17:03:00.0000] , yay! [17:03:01.0000] ok
is pretty funny (from http://www.456bereastreet.com/archive/201011/html5_allows_almost_any_value_for_the_id_attribute_use_wisely/) [17:03:02.0000] AryehGregor: http://www.w3.org/Security/wiki/Use_Cases_for_Content_Security_Policies [17:03:03.0000] got to run [17:03:04.0000] Hixie: Hehe. [17:04:00.0000] AryehGregor: it's theoretically better because the browser is in charge of login/logout, rather than the page [17:04:01.0000] ...wait. That selector selects nothing, by definition. [17:04:02.0000] TabAtkins: it's not a selector, so that's unimportant :-P [17:04:03.0000] AryehGregor: so you can do clever things like have many different sessions, or whatnot [17:04:04.0000] Hixie: But it's clearly supposed to be used as one. [17:04:05.0000] TabAtkins: sure [17:06:00.0000] Anyway, sent him a correction. [17:09:00.0000] TabAtkins: FYI, updated the proxy feed that posts to http://twitter.com/csscommits [17:09:01.0000] kk [17:09:02.0000] i.e. http://mathiasbynens.be/demo/css-commits [17:10:00.0000] slooooow since it pings your feed, which in turns connects to gmail [17:10:01.0000] but it should only get 1 hit every 30 mins anyway [17:10:02.0000] yay first tweet https://twitter.com/csscommits/status/32245165687046145 [17:13:00.0000] yay! [17:13:01.0000] It makes me happy to add two more links in the ridiculous chain of interconnected data here. [17:14:00.0000] CVS commits -> mailing list -> gmail inbox -> atom feed -> twitterbot -> html page [17:14:01.0000] +1 for the web [17:15:00.0000] TabAtkins: you forgot about my intermediary Atom feed [17:15:01.0000] Oh jeez. What does your intermediary do? [17:16:00.0000] TabAtkins: clears out some whitespace and weird semicolons so it looks nice in a tweet [17:16:01.0000] Those semicolons are misplaced. I didn't initially realize that I was keeping the \n at the end of each log line. [17:16:02.0000] I need to fix that. [17:17:00.0000] CVS commits → mailing list → Gmail inbox → Atom feed → proxy Atom feed → Twitterbot → Twitter → link to detailed log [17:17:01.0000] Eff yeah. [17:18:00.0000] TabAtkins: I’m off for tonight, but please do keep me posted :) [17:18:01.0000] kk [17:29:00.0000] It's amazing how much cleaner this makes your code: function $(sel) { return document.querySelector(sel); } [17:31:00.0000] I know! [17:31:01.0000] Though, I use query() and queryOne(). Same deal. [17:33:00.0000] /me is discovering http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingWIthAPS/CommunicatingWIthAPS.html [17:35:00.0000] through http://blog.mfabrik.com/2011/01/29/apple-push-notifications-apn-with-python/ [17:44:00.0000] Fun, JS diffs: http://aryeh.name/spec/innertext/test/innerText.html [17:57:00.0000] AryehGregor: what is the difference, in practice, between innerText and textContent ? [17:57:01.0000] paul_irish, innerText is way more complicated, and much better matches what you actual see. [17:57:02.0000] It's basically a plaintext version of the HTML. [17:58:00.0000] So it will hide things that are display: none, add newlines when you have display: block, normalize runs of whitespace to a single space, etc. [17:58:01.0000] Add tabs for tables. [17:58:02.0000] Lots of other stuff. [17:59:00.0000] AryehGregor: i'm about to integrate window.atob! :-) [17:59:01.0000] :)! [17:59:02.0000] AryehGregor: is http://aryeh.name/spec/base64.html still the most up to date copy? [17:59:03.0000] Hixie, yes. [17:59:04.0000] awesome [17:59:05.0000] paul_irish, my spec for innerText so far is here: http://aryeh.name/spec/innertext/innertext.html It's still missing lots of details and testing, but you get the idea. [18:00:00.0000] AryehGregor: do you think if you spec it fully that ffx will implement it? [18:00:01.0000] I ask because we're looking to modify what .text() does in jQuery and i'd love to do elem.textContent || elem.innerText .. we might still do it but document the visibility cases [18:00:02.0000] AryehGregor: great. thank you [18:00:03.0000] Well, for setting they should behave the same, or roughly so. [18:00:04.0000] /me wouldn't implement innerText if he was a firefox dev and could get away with it. it sucks [18:01:00.0000] For getting they're totally different -- in particular, the whitespace they return will be extremely different in most real-world cases. [18:01:01.0000] jamesr__, even if it's to a spec? [18:01:02.0000] AryehGregor: well depends on the spec, but the webkit implementation is horrifying [18:01:03.0000] How much of the horrifyingness is required for web compat? [18:01:04.0000] no clue :) [18:02:00.0000] maybe going from code -> reverse engineering -> spec -> code will clean it up [18:02:01.0000] I'll aim for something not too horrifying and we'll see if it works. [18:02:02.0000] that sort of worked for the parser [18:02:03.0000] The parser spec is pretty horrifying . . . [18:02:04.0000] imo it's a lot better than the code we had before [18:02:05.0000] Opera's impl is incredibly simple, it ignores almost all the complexity and isn't that different to textContent. [18:02:06.0000] Well, you'd know better than me. [18:02:07.0000] gsnedders, yes, which makes it basically useless. May as well use textContent instead. [18:02:08.0000] just from an implementation point of view [18:03:00.0000] That hasn't caused too much site compat issues :P [18:03:01.0000] most of that is (hopefully) hidden safely away from authors [18:03:02.0000] AryehGregor: If you're looking for simplicity… :P [18:04:00.0000] if we can drop any of this stuff altogether, i'd be even happier, but my (and thus AryehGregor's) goal is to at least have a spec so that we can have that discussion well-informed [18:04:01.0000] my suspicion, though, is that given that ffx is the only one to not do it at all (right?) we are probably stuck with it [18:04:02.0000] wow, http://aryeh.name/spec/innertext/innertext.html is the closest anyone has come to convincing me to change the small-caps style on the h1 :-) [18:05:00.0000] Hehe [18:05:01.0000] Glad to be of service. [18:05:02.0000] AryehGregor: btw the wording here may be of use http://www.whatwg.org/specs/web-apps/current-work/complete/#being-rendered [18:06:00.0000] We need font-variant:small-caps-unless-ugly [18:07:00.0000] hah [18:07:01.0000] Hixie, that doesn't seem to match my needs, at a glance. For instance, innerText works on elements that aren't part of a Document. [18:07:02.0000] You didn't expect we could actually reuse definitions on the web platform, did you? [18:07:03.0000] Silly Hixie. [18:07:04.0000] yeah i didn't mean you could reuse the definition [18:08:00.0000] just that the phrasing may be of interest [18:08:01.0000] what should i call th esection in which i define atob and btoa [18:09:00.0000] The "discard last 4 and interpret as an 8-bit number" bit is crazy. [18:09:01.0000] innerText does something different when used on unrendered content IIRC [18:12:00.0000] It seems to do something completely insane in WebKit when used on display: none content. [18:12:01.0000] Maybe that's why. [18:12:02.0000] It seems to behave a lot more like textContent in that case. [18:12:03.0000] TabAtkins, how so? [18:14:00.0000] I think it might behave exactly like textContent in that case [18:14:01.0000] That would be easy to spec, if it's actually desirable. Is it? It doesn't make any sense to me. [18:21:00.0000] hsivonen: we discussed what happens when you document.write() a string with broken surrogates at some point... i'm going to promote the use of webidl's "convert to unicode" thing from AryehGregor's atob() spec to apply to every method with a DOMString argument, so document.write() will be adding U+FFFDs to the input stream for that case. [18:22:00.0000] Maybe that change should just be made in WebIDL? [18:22:01.0000] yeah maybe [18:22:02.0000] Yeah, that'd make sense to have in the ES binding [18:23:00.0000] i don't understand what the "a" in "atob" is supposed to stand for. [18:23:01.0000] oh wait. [18:23:02.0000] i have them backwards. [18:23:03.0000] so "b" is binary and "a" is ascii. [18:23:04.0000] ok. [18:24:00.0000] which should i put first, base64-to-"binary", or "binary"-to-base64? [18:24:01.0000] i guess the latter [18:31:00.0000] AryehGregor: what errors aren't caught by the algorithm? [18:31:01.0000] in atob() [18:34:00.0000] also, why "strictly greater" rather than "greater"? [21:41:00.0000] jgraham: i'm getting an error from pms that i've never had before [21:41:01.0000] "TypeError: expected string or buffer" deep inside build/bdist.linux-i686/egg/html5lib/treewalkers/lxmletree.py, according to the traceback i get [22:34:00.0000] jgraham: may have been because of a typo [22:58:00.0000] Hixie: I strongly disagree with making document.write FFFD out unpaired surrogates. What problem is being solved? [23:25:00.0000] hsivonen: the problem of having unpaired surrogates in what is supposedly a Unicode-clean environment [23:25:01.0000] why would we ever want to allow surrogates -- paired on unpaired -- in? [23:54:00.0000] hahaha http://ishtml5readyyet.com/ has been updated to use new HTML elements [23:54:01.0000] and has a very pretty countdown clock [00:03:00.0000] Hixie: I have another change request :) [00:05:00.0000] benschwarz: shoot [00:05:01.0000] Hixie: can we rename the "web developer edition" text to read "A technical specification for web developers" [00:06:00.0000] you betcha [00:06:01.0000] lowercase "w" in "web"? [00:06:02.0000] not "Web"? [00:06:03.0000] I always think of Web as the proper noun name for the Web [00:06:04.0000] like the Internet as opposed to one of the many possible internets [00:07:00.0000] Hixie: we can do upper case :) [00:08:00.0000] regenning [00:08:01.0000] Hixie: <3's floating towards you [00:09:00.0000] it's up [00:09:01.0000] legend [00:09:02.0000] did you make the chrome frame change? [00:12:00.0000] benschwarz: not yet, will do that momentarily [00:13:00.0000] holy cow, someone actually used to do a fractal. with web workers in the background for the calculation! http://juliamap.googlelabs.com/#ll=29.152261,-81.051636&z=10&p=ffffff,ffffff,ffffff,ffffff,ff0000,ffff00,ffff00,ff00,ff&f=mandelbrot [00:13:01.0000] sweet [00:14:00.0000] Hixie: see your secret messages? [00:21:00.0000] can someone explain to me why the rows on http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#base64-table are not lined up? [00:22:00.0000] chrome [00:22:01.0000] using -webkit-column-stuff [00:30:00.0000] AryehGregor: atob is in [00:31:00.0000] AryehGregor: i made a number of minor editorial changes to your text to make it fit the spec's style, you may be interested in comparing the two for your edification :-) [00:54:00.0000] ISSUE-151 o_O [00:54:01.0000] Maybe we should recharter too to cut all cooperation [00:56:00.0000] So issues are still being created without any kind of filtering? [00:56:01.0000] Anything goes it seems [00:56:02.0000] Hixie: what do you think about a applicationCache.canceUpdate() method? [01:00:00.0000] Hixie: the DOM isn't a Unicode-clean environment [01:17:00.0000] hsivonen: What do you think about innerHTML? I presume you think the same? [01:17:01.0000] jgraham: yes [01:17:02.0000] Conceptually I don't think the innerHTML case is so cleancut [01:18:00.0000] I mean, document.write just adds bytes to the input stream, so it isn't surprising if you get the bytes out that you put in [01:18:01.0000] conceptually, I think the DOM and JavaScript form a system of UTF-16 code units and layout has to deal with unpaired surrogates [01:19:00.0000] But conceptually innerHTML runs the HTML parser on the input and if you want to reuse the full parser pipeline you naturally get the unpaired surrogate handling [01:19:01.0000] jgraham: existing browsers don't seem to use the full pipeline [01:21:00.0000] That might be a winning argument. Nevertheless it is unclear to me that the behaviour makes sense [01:21:01.0000] /me points to topic [01:21:02.0000] Well yes [01:22:00.0000] It is less stupiod than, say, innerText, I will give you that [01:22:01.0000] topic really is a good one :) [01:22:02.0000] I don't look forward to explaining to smaug and others who've spent time optimizing innerHTML that I landed something that makes it slower so that we can be theoretically cleaner in the Unicode sense [01:22:03.0000] especially when we can't make JS strings enforce UTF-16 well-formedness, because people use JS strings for binary data [01:23:00.0000] Right, I agree that the Unicode-hygiene argument doesn't make any sense given that you can already add unpaired surrogates via DOM [01:23:01.0000] virtuelv: why's maxf giving you congrats? [01:23:02.0000] (I assume?) [01:23:03.0000] (well, actually, they don't tend to use the code points that are surrogates for binary data) [01:23:04.0000] jgraham: right [01:25:00.0000] /me wonders what SteveF would expect an implemenation of
to look like [01:25:01.0000] jgraham: I believe the parts of the pipeline I used for Firefox 4 innerHTML and document.write are exactly the right ones considering compat [01:25:02.0000] and perf [01:27:00.0000] hsivonen: I don't really disagree. I just want to be sure that we have covered all the cases [01:38:00.0000] oh, 151 is a Last Call issue... [01:40:00.0000] Hixie: could you run the fixBrokenLink() script earlier than onload to speed up loading? [01:44:00.0000] benschwarz: same with you ^ :) [01:45:00.0000] zcorpan: other than the obvious factor of it "fixing the links" [01:45:01.0000] what does it actually do? [01:46:00.0000] https://lists.webkit.org/pipermail/webkit-dev/2011-January/015797.html yay Maciej [01:47:00.0000] MikeSmith: it was meant for @opvard who's been with Opera for ten years this year [01:47:01.0000] benschwarz: it redirects to the right page if the fragment is not found on the current page [01:48:00.0000] zcorpan: so its important for the pages that are split? [01:48:01.0000] (multipage specs)? [01:48:02.0000] yeah [01:49:00.0000] but hmm, i guess it needs to be run after the content has been loaded after all [01:49:01.0000] so ignore me [01:49:02.0000] zcorpan: perhaps I could re-write it in ruby postprocessors [01:49:03.0000] and remove the script altogether [01:51:00.0000] benschwarz: that wouldn't work, it needs to be in javascript [01:53:00.0000] but link-fixup.js logic could be put in fragment-links.js and instead of checking getElementById() just check if the current fragment is in the table and if so, if the current page matches what the table says it should be [01:54:00.0000] then you could run it ASAP and get faster redirects [01:54:01.0000] zcorpan: I'll look into it [01:54:02.0000] can you add an issue for me to track? [01:54:03.0000] sure [01:55:00.0000] thanks ;) [02:02:00.0000] zcorpan: I split link-fixup.js from fragment-links.js because I didn't really want it loading a quarter of a megabyte of scripts every time you visit a page [02:03:00.0000] since that doesn't seem good for bandwidth or performance in the common case where you're not visiting an obsolete fragment address [02:21:00.0000] Philip`: is it a quarter of a megabyte gzipped? [02:24:00.0000] zcorpan: More like 50KB to download [02:25:00.0000] /me wonder how long parsing takes [02:25:01.0000] 50KB doesn't sound so bad to waste in normal cases to speed up shortlink fixups [02:26:00.0000] developers.whatwg.org already does that anyway [03:11:00.0000] cool. brucel has started posting HTML5 videos on his blog instead of Flash-trapped videos [03:12:00.0000] the medium is the message [03:15:00.0000] http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/ [03:30:00.0000] /me wonders what the business model for Opera Widgets Runtime for Android is [03:30:01.0000] will handset makers or operators pay to bundle it? [04:00:00.0000] volkmar, for your bugs, did you check what existing impls do? [04:08:00.0000] the vid.ly player doesn't seem particularly keyboard accessible [04:09:00.0000] and the flash fallback doesn't seem to work for me in ie [04:15:00.0000] Philip`: ping [04:15:01.0000] http://www.gapminder.org/ is quite cool [04:15:02.0000] I wish it did not use Flash [04:16:00.0000] annevk: did you see the ted talks? [04:16:01.0000] yup [04:16:02.0000] The speaker ends up with a sword down his throat... [04:16:03.0000] Pretty odd. [04:17:00.0000] I did not see that one... [04:18:00.0000] smaug____: did you see the unpaired surrogate discussion earlier on this channel today? [04:18:01.0000] hsivonen: no [04:19:00.0000] smaug____: "surrogate" is the string to look for in the logs. [04:19:01.0000] annevk: I am wary of a site with a title like that [04:19:02.0000] Although the graphs are pretty, the brief commentary seems to be bogus [04:20:00.0000] smaug____: AFAICT, it's a case of theoretical purity vs. innerHTML perf [04:20:01.0000] smaug____: I thought you might care since you've worked on innerHTML perf [04:20:02.0000] jgraham, see e.g. http://www.youtube.com/watch?v=jbkSRLYSojo [04:21:00.0000] jgraham: I think the main think to be wary of is the Flash use. The substance is good. [04:21:01.0000] /me has only looked at a couple of graphs [04:22:00.0000] in this case, the software is quite old, so it's understandable it wasn't written in JS+HTML+SVG [04:29:00.0000] zcorpan, oh, did change? [04:30:00.0000] hsivonen: so every method taking a DOMString should check the input and possibly modify it? [04:31:00.0000] I think we would not be happy with that in general [04:32:00.0000] hsivonen: that would certainly cause some performance regressions, and for things like Gecko's xhr.sendAsBinary it just doesn't make sense [04:33:00.0000] At least I imagine that the conversation would go "the spec says that we have to check for unpaired surrogates in all DOM APIs" "the spec is stupid. That will just cause performance issues for no appreciable gain" [04:33:01.0000] But I am only guessing [04:35:00.0000] annevk: dunno [04:37:00.0000] smaug____, the spec allows for exceptions though I hope sendAsBinary goes away... [04:37:01.0000] smaug____: right. so since browsers don't historically do it, I think we should just say "no" [04:37:02.0000] sendAsBinary was just an example, and yeah, I hope it will go away [04:37:03.0000] (Though I'm not really convinced this make sense either. Unpaired surrogates can still get through.) [04:42:00.0000] Right. I don't understand why we hate unpaired surrogates so much. They don't seem to be causing any harm at present, but trying to guard against them everywhere would case harm [04:43:00.0000] Hixie: see above. Please don't make the spec check for unpaired surrogates in innerHTML or document.write [04:44:00.0000] There is a few places where you need that algorithm by the way. But only when you want to serialize to e.g. UTF-8 or some such. [04:45:00.0000] XMLHttpRequest uses it for that reason. [05:05:00.0000] aaargh. yay for XML. so createContextualFragment requires to propagate XML well-formedness errors as exceptions to the caller. How sad. [05:07:00.0000] I followed innerHTML, but we don't do that either [05:10:00.0000] in http://canvex.lazyilluminati.com/misc/dom-viewer/x.html?%3C!DOCTYPE%20html%3E%0A%3Cscript%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%27%3Etry{d%3Ddocument.createElement%28%27div%27%29%3Bd.innerHTML%3D%27%26lt%3Bfoo%3E%27%3B}catch%28e%29{alert%28e%29}%3C%2Fscript%3E i get two alerts at the same time in firefox [05:11:00.0000] shouldn't alerts wait for the current alert to be dismissed? [05:12:00.0000] /me has no idea how the new alerts in Firefox work [05:12:01.0000] /me is generally unhappy about propagating nsresult [05:14:00.0000] /me is generally unhappy about not propagating nsresult [05:14:01.0000] "Mediocrity: It's quicker, and by the time anybody notices, it's too late." [05:16:00.0000] Ms2ger: well, now that we have the infallible malloc, the vast majority of nsresult propagation is useless [05:35:00.0000] annevk: that's what Webkit does, I don't think anyone implement progress element [05:36:00.0000] both Opera and Chrome have an implementation [05:37:00.0000] annevk: i should check Opera then [05:39:00.0000] annevk: looks like in Opera it doesn't use the theme from Gtk [05:40:00.0000] oven uglier in Chrome [05:40:01.0000] :-( [05:40:02.0000] I don't expect Web authors to use this any time soon if it looks like this in Chrome [05:40:03.0000] hsivonen: Opera and Chrome don't really care about system theme for what i've seen (at least for GTK) [05:40:04.0000] annevk: Opera is following the specs word by word [05:41:00.0000] I guess the Chrome impl. still scores some points on html5test.com or something :-( [05:41:01.0000] hsivonen: it looks great on MacOS though [05:42:00.0000] so i would probably bet on web authors using it with no care for the GNU/Linux users [05:43:00.0000] maybe [05:44:00.0000] maybe Linux users welcome their new unthemed Chromium overlords, because it's "so fast" :-( [05:45:00.0000] I suspect for Linux they mostly care about Chromium OS [05:50:00.0000] /me wonders if Chrome would seem faster if I used it more [05:51:00.0000] As it is, the processes tend to get swapped out and there is a noticable responsiveness issue when the UI is swapped in but not the content [05:53:00.0000] Also, while Firefox and Opera seem to map well known font names to Ubuntu-bundled lookalikes properly, Chromium doesn't. [05:54:00.0000] correction: It seems that Opera has failures in that department, too [05:55:00.0000] Why do you make me look at XMLSerializer :( [05:56:00.0000] Ms2ger: I thought you had volunteered. :-) [05:57:00.0000] Ms2ger: anyway, I think we should make XMLSerializer escape stuff that would otherwise be normalized away when round-tripping [05:57:01.0000] Ms2ger: perhaps the right place to spec it is in HTML5 [05:58:00.0000] since XMLSerializer already refers to it [05:58:01.0000] We need an algorithm for XML serializing in any case [06:18:00.0000] indeed we do [06:18:01.0000] part of DOM Parsing and Serializing no? [06:19:00.0000] Sure [06:19:01.0000] Patches welcome ;) [06:24:00.0000] /me wonders what the point of using kSpace instead of ' ' is [06:25:00.0000] it's not like the code point will get reassigned every couple of years warranting a layer of abstraction [06:31:00.0000] hi again everyone! [06:41:00.0000] the video element in chrome is ugly. :( [06:46:00.0000] hsivonen: Maybe a general policy that inline constants are bad? [06:47:00.0000] Philip`: what's bad about inline constants for ASCII characters? [06:49:00.0000] Probably nothing, but some other cases of magic constants are bad, and complex policies with exceptions depending on the types of constants are bad, so it's easier just to forbid them entirely if you don't trust your programmers to be sensible, I guess [06:51:00.0000] Philip`: well, it leads to issues like having to push .h files around because different people defined kSpace in different places than must never see each other [06:51:01.0000] s/than/that/ [07:02:00.0000] annevk: are you gonna call into the HTML-XML TF? [07:02:01.0000] thanks [07:05:00.0000] Hixie, atob() as I specced it ignores trailing bits that aren't zero, as noted in the second-to-last step, even though those can't be output by btoa(). It also doesn't require the trailing equals signs, although if they're present they must be the exact right number. As I note in HTML comments, WebKit is laxer, but I followed Gecko. [07:06:00.0000] Hixie, I say "strictly greater" out of mathematician's habit, I guess. To mathematicians, "greater" is ambiguous, it's often used to mean "greater than or equal to". Probably for a spec, the "strictly" is unnecessary. [07:08:00.0000] Greater than is >, always [07:08:01.0000] To programmers, yeah. [07:08:02.0000] Just like 0 is never positive [07:08:03.0000] Mathematicians also are sometimes sloppy about the difference between "positive" and "nonnegative". The thing is, when you're dealing with continuous quantities, the difference is usually irrelevant. [07:09:00.0000] Because it's a difference of one point in a continuum, which doesn't matter. [07:09:01.0000] Programmers deal with discrete quantities, so it makes a difference. [07:09:02.0000] (sometimes it makes a difference in math too, but then mathematicians will often say "strictly" if they mean strictly, to clarify) [07:09:03.0000] But it's unnecessary in a computing spec, I agree. [07:16:00.0000] Hixie, I filed three bugs about editorial issues in the base64 stuff. [09:00:00.0000] /me points out that hgroup has at least parser impl in at least gecko and webkit [09:02:00.0000] also, http://software.hixie.ch/utilities/js/live-dom-viewer/saved/818 styling is still suboptimal with the :any(section, ...) ... h1 styling [09:18:00.0000] hmm [09:18:01.0000] "MIME-Handling: Sniffing Opt-Out [09:19:00.0000] http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-v-comprehensive-protection.aspx [09:19:01.0000] I wonder how it will be more effective. As soon it is built into a library that people use inadequatly [09:32:00.0000] tech support from ISP at my mom's house does not do Ubuntu [09:32:01.0000] apparently it was too hard to click on the connection thingie at the top and select the wired connection option [09:32:02.0000] (she previously had a wireless connection) [09:33:00.0000] unfortunately the competing ISPs are even worse [09:35:00.0000] othermaciej++ [09:35:01.0000] using CORS for fonts is protocol abuse [09:36:00.0000] annevk: sadly, TabAtkins is being kind of pushy about it [09:36:01.0000] annevk: fortunately, I think my C++-fu is better than his... [09:37:00.0000] /me wonders in what strange universe a debate about the merits of CORS for font DRM comes down to C++-fu [09:37:01.0000] annevk: incidentally, if we backed down and decided to use SOP+CORS for WOFF, is there any way we could still allow free cross-site linking of other font formats (TrueType, OpenType, SVG) [09:38:00.0000] webkit? [09:38:01.0000] jgraham: I doubt he's able to code a patch to implement his suggestion [09:38:02.0000] othermaciej, the way CORS works in theory is that the requester sets the policy [09:38:03.0000] so this would in theory need to be defined by @font-face [09:38:04.0000] Hmm, I guess this is the logical conclusion of "those who implement win" [09:39:00.0000] and you could of course do the request, and if it is WOFF (after sniffing) also check the relevant CORS stuff and otherwise ignore them [09:39:01.0000] however, that is very much like checing "usage rights" rather than "read rights" (what CORS is designed for) [09:39:02.0000] annevk: so the problem with this is either you make a CORS simple request for cross-site access for TT/OT/SVG fonts (which means no cookies etc are sent) or you make a preflight request for all font requests [09:40:00.0000] annevk: or you violate CORS by sending a request with credentials and no preflight [09:40:01.0000] i.e. CORS is not designed to prevent cross-origin image usage, it is designed to allow cross-origin images to be read by e.g. [09:40:02.0000] IE and FF get around this by applying a same-origin limitation to all font formats [09:40:03.0000] othermaciej, actually, for GET requests there is no preflight needed [09:40:04.0000] othermaciej, you got that wrong in your message [09:41:00.0000] is it ok to send credentials with a GET with no preflight? [09:41:01.0000] http://sebleedelisle.com/2011/02/html5-canvas-sprite-optimisation/ [09:41:02.0000] /me has trouble remembering this stuff [09:41:03.0000] othermaciej, yes, otherwise we could never make work with CORS [09:41:04.0000] ok [09:41:05.0000] othermaciej, and I wanted to be able to work with CORS [09:41:06.0000] so since none of the headers would be provided by the embedder, you could just send a normal request and read CORS headers in the response depending on Content-Type [09:41:07.0000] in principle [09:41:08.0000] though it would still (IMO) be bad design [09:42:00.0000] yeah, where the Content-Type is derived from sniffing [09:42:01.0000] killing WOFF was my knee-jerk reaction when IE came out and supported OTF [09:42:02.0000] it's protocol abuse for sure [09:42:03.0000] zcorpan: yeah, I have no idea what the point of WOFF is now [09:42:04.0000] I thought the whole purpose was to have a single font format, when IE refused to implement OTF and others refused to implement EOT [09:42:05.0000] I have stated several times that using CORS for this is the wrong solution [09:45:00.0000] I also wonder why deciding not to support part of a spec is suddenly a huge deal [09:45:01.0000] no one is up in arms because Mozilla refuses to support SVG fonts [09:46:00.0000] or Web SQL DB *cough* *cough* [09:47:00.0000] the foundries and e.g. Sylvain from Microsoft seem to be making it a big deal [09:48:00.0000] and the rest of the WG sort of gets dragged into it [09:48:01.0000] but I am not really interested in participating there, I was not welcome, so I posted something on my blog somewhere in April last year [09:50:00.0000] not implementing part of a spec *can* be pretty bad. but i think not implementing SOR for fonts isn't bad [09:52:00.0000] e.g. implementing WF2 API but not UI is pretty bad [09:52:01.0000] What about implementing ugly UI? ;) [09:53:00.0000] that's also pretty bad [09:54:00.0000] subjective! :p [10:00:00.0000] why does http://dev.w3.org/2006/webapi/FileAPI/#abort fire both 'error' and 'abort'? [10:00:01.0000] looks like a bug [10:23:00.0000] hey everyone, is this a good place to post a code question or is there a better group? [10:35:00.0000] For today's episode of "an ignorance shared is an ignorance harshly mocked on the internet" I have a question straight out of CS 101 [10:36:00.0000] Say I am trying to construct a representation of tests, in code. The obvious thing to do would be to have a Test base class and derive specific types of tests from that base class [10:37:00.0000] (these are web browser Tests fwiw) [10:38:00.0000] However it seems this will violate the Liskov Substitution Principle [10:39:00.0000] For example a Javascript test will have a single URL [10:39:01.0000] But a RefTest will have two urls and a type [10:39:02.0000] So, given that almost all the methods will be the same for all the types, what is one supposed to do? [10:41:00.0000] /me doesn't really understand what Substitution is occurring in this case [10:42:00.0000] Are you having a JavascriptTest and RefTest both derived from Test? [10:42:01.0000] othermaciej: I'm being "pushy" because SOR on @font-face is the right choice, and Moz and IE have both gone with it already. I'd like any new embedded media to have SOR. [10:42:02.0000] the latter is definitely not going to happen [10:42:03.0000] Philip`: Well that was the hypothesis [10:43:00.0000] video and audio don't have SOR (despite Mozilla's attempt to enforce it at some point) [10:43:01.0000] Right, we've very likely already lost our chance with those two. [10:43:02.0000] Are you having any methods on Test that won't behave equivalent for objects of either subclass? [10:43:03.0000] SOR for non-WOFF fonts is something I'd definitely consider an unacceptable change, there isn't even a spec argument for it [10:43:04.0000] i was on here last week asking about xmlhttp level 2 posting to a pwd protected url [10:43:05.0000] Sure there is. @font-face suggests applying SOR (though doesn't require it). [10:43:06.0000] s/equivalent/equivalently/ [10:43:07.0000] Philip`: Not that I know of. But does the constructor count? [10:44:00.0000] TabAtkins, that's not a good argument [10:44:01.0000] I mean the constructor necessarily has a different signature [10:44:02.0000] annevk suggested that if u set the Authoization header via JS it should be ok [10:44:03.0000] assuming the server accepts that header [10:44:04.0000] annevk: That was just challenging the statement that "there isn't even a spec argument for it". [10:44:05.0000] i allowed it on the server [10:45:00.0000] TabAtkins: I can't find the word "origin" in http://www.w3.org/TR/css3-fonts/ [10:45:01.0000] but i dont see the header showing in my request's options call [10:45:02.0000] TabAtkins, also, "suggestions" suggests it's a pretty bad spec [10:45:03.0000] TabAtkins, and what I've seen in WOFF about CORS is crap too [10:45:04.0000] TabAtkins, does not follow CORS at all [10:46:00.0000] TabAtkins: nor in the editor's draft [10:46:01.0000] wait, I guess it is in the ED [10:46:02.0000] annevk: What do you mean? [10:46:03.0000] jgraham: I believe constructors are irrelevant to the LSP, because the LSP is about using an object of a type that's a subclass of T as if it were an object of type T, so it's only applicable after you've already constructed the object [10:47:00.0000] Philip`: Interesting [10:47:01.0000] I hadn't considered that [10:47:02.0000] annevk: The language used is identical to that used in CSS3 Fonts. [10:47:03.0000] TabAtkins: CSS3 fonts doesn't "suggest" it afaict [10:47:04.0000] TabAtkins, I mean a) "suggests applying SOR" makes no sense, it should either require it or not and b) WOFF does not properly use CORS as specified by the CORS specification [10:47:05.0000] othermaciej: You're right. It simply defines what it means to apply SOR to @font-face resources. [10:47:06.0000] jgraham, why do the URLs or type have to be part of the base class? Why not make them members of the derived classes? [10:48:00.0000] btw, who decided to replace the perfectly good term "same-origin policy" with "same-origin restriction"? [10:48:01.0000] If you have lots of types of single-URL tests, make a SingleUrlTest class that they derive from. [10:48:02.0000] yeah, "SOR" makes no sense either [10:48:03.0000] If you want to get all obsessive about OO. [10:48:04.0000] AryehGregor: I don't want to get all obsessive [10:48:05.0000] annevk: I don't immediately see what's wrong with WOFF's use of CORS. Could you be more explicit? [10:48:06.0000] It's not like JS really does OO anyway [10:48:07.0000] Having a huge multi-level class heirachy is overkill [10:48:08.0000] TabAtkins: in fact, it doesn't even clearly say UAs MAY apply a same-origin limitation [10:48:09.0000] othermaciej: I don't see the distinction. [10:49:00.0000] But having one level of inheritance seems sensible [10:49:01.0000] Sorry, that was to SOP vs SOR. [10:49:02.0000] TabAtkins: I don't either, but using a different term sounds like it is drawing a distinction from the traditional terminology [10:49:03.0000] TabAtkins, to use CORS you need to define that the UA need to do a cross-origin request and set various parameters [10:49:04.0000] TabAtkins, then you need to deal with the potential return flags of that algorithm [10:49:05.0000] TabAtkins, as e.g. XMLHttpRequest does [10:49:06.0000] TabAtkins, @font-face nor WOFF does any of that and are therefore not really using CORS [10:49:07.0000] annevk: Is it simply defined somewhere in CORS what specs need to say to make it work? [10:50:00.0000] TabAtkins, yes [10:50:01.0000] but it is pretty clear nobody has actually read or understood the purpose of CORS [10:50:02.0000] TabAtkins: anyway - the ED (which it's not clear the CSS WG will even agree on) says if you limit fonts to same-origin, you MUST allow relaxation of that limit via CORS [10:50:03.0000] annevk: As far as I can tell, you've objected to every use of CORS outside of specs that you directly maintain. [10:51:00.0000] othermaciej: Yes. [10:51:01.0000] Philip`, AryehGregor: Thanks [10:51:02.0000] TabAtkins, no [10:51:03.0000] TabAtkins, what the fuck is that about? [10:51:04.0000] annevk: Not meant to be offensive. It's just that the only time I hear you talk about CORS, it's that some spec is using it wrong. [10:51:05.0000] jgraham: All that really matters is whether you can write code that takes an object which you know acts like a Test, without caring which type it really is - inheritance is useful as a way to encode "acts like a Test" in statically typed languages, but that doesn't work in JS, so JS prototype inheritance is just useful as a code-sharing mechanism [10:51:06.0000] Or that people don't understand it. [10:52:00.0000] it doesn't even say you MAY have a restriction (though presumably that is intended) [10:52:01.0000] TabAtkins: maybe there's nothing to say when people use it right? [10:52:02.0000] Well, otherwise it wouldn't have to be mentioned, no? ;) [10:52:03.0000] TabAtkins, oh? [10:52:04.0000] jgraham: so it seems fine to not worry much about inheritance hierarchy design [10:52:05.0000] TabAtkins, other than fonts I'm not aware of anyone trying to use it [10:52:06.0000] Philip`: This is actually Python [10:53:00.0000] WebSockets sort of does something similar, but it's not really CORS [10:53:01.0000] TabAtkins, and CORS isn't easy or anything [10:53:02.0000] it's really quite complicated [10:53:03.0000] not that anyone is available to listen but the only headers on the response i see are: [10:53:04.0000] annevk: I just skimmed through CORS again, and I can't find anywhere that defines in some simple way what a spec using CORS is supposed to provide. [10:54:00.0000] DateTue, 01 Feb 2011 18:53:00 GMTWWW-AuthenticateBasic realm="People Rails RC Environment"Content-Length401ConnectioncloseContent-Typetext/html; charset=iso-8859-1 [10:54:01.0000] which is why it upsets me WOFF is using it without the WG actually understanding what they are doing [10:54:02.0000] annevk: What chapter are the requirements in? [10:54:03.0000] TabAtkins, "CORS API Specification Advice" [10:55:00.0000] annevk: Oh, a "CORS API" is something another spec defines. [10:55:01.0000] of course [10:55:02.0000] CORS is a protocol [10:55:03.0000] In a spec called "CORS", it's not clear to me that "CORS API" is something outside of the spec. ^_^ [10:55:04.0000] jgraham: Oh, okay - I suppose that's a bit more OOey, but still not at all strictly [10:56:00.0000] Not sure what name would be better, though. [10:56:01.0000] (hence duck typing) [10:56:02.0000] I suppose I could rename it to "Advice for specifications using CORS" [10:57:00.0000] Ah, yeah, that would at least draw the eye better. [11:05:00.0000] http://www.googleartproject.com/ is awesome [11:05:01.0000] Wonder what we have to do so it can ditch flash for the image viewing [11:06:00.0000] Most likely, add DRM. [11:07:00.0000] That could be the problem I guess [11:07:01.0000] Although one would have thought that the paintings were out of copyright (I know the digital reproductions may not be) [11:08:00.0000] jgraham, the digital reproductions are out of copyright too, at least in the US, but you're not going to get museums' cooperation if you point that out. [11:08:01.0000] Since they get a lot of revenue from licensing copyrights they don't own. [11:10:00.0000] AryehGregor: Right, but not everywhere has the same law as the US there [11:10:01.0000] e.g. I think the UK is different [11:10:02.0000] The UK is unclear, AFAIK. [11:11:00.0000] Unclear to me at least :) [11:11:01.0000] (but that is diffrent from the US where it is fairly clear) [11:12:00.0000] I have to say, JS code I write for Chrome basically works fine in IE9. [11:13:00.0000] As opposed to IE8, where it dies horribly very early on. [11:13:01.0000] Kudos to the IE team. [11:14:00.0000] is the opposite true? JS code written for IE works in Chrome? [11:15:00.0000] document.all('x') [11:15:01.0000] Looks like a yes [11:16:00.0000] /me totally has to visit MoMA [11:16:01.0000] it's quite nice [11:17:00.0000] How do I feature-test the IE8 JS engine? I'm actually testing in IE9 in IE8 document mode, so I'm getting confused. [11:17:01.0000] I think IE9's JS engine is more conforming to ES5 than Chrome's [11:17:02.0000] In IE8 document mode, it fails with "'Node' is undefined", but trying to do something like if (Node === undefined) or if (typeof(Node) == "undefined") gives the same error. [11:17:03.0000] Yeah, the IE9 js engine should be very conforming [11:17:04.0000] Is there some way to say "if 'Node' is a variable name" that works in IE8? [11:18:00.0000] Maybe TabAtkins would know, he actually writes real web pages sometimes. [11:18:01.0000] if (window.Node) ? [11:18:02.0000] What's up? [11:19:00.0000] If foo is undefined, (foo === undefined) shouldn't be throwing an error. [11:19:01.0000] Nice, thanks. [11:19:02.0000] TabAtkins, this is IE8. [11:20:00.0000] I haven't cared about browser craziness in some time, sorry. Last cross-browser dev I did leaned heavily on jQuery. [11:20:01.0000] Nowadays I just code to Chrome and assume it'll work everywhere, which is usually true. [11:20:02.0000] (For some definition of "everywhere".) [11:21:00.0000] jgraham: come to NYC to see MoMA and you can work out of Opera Brooklyn (my tiny 2 person office) [11:23:00.0000] miketaylr: Sounds awesome, but I'm not sure how well "see MoMA" would go down under "purpose of trip" [11:23:01.0000] heh [11:24:00.0000] "network with other Opera employees" [11:24:01.0000] /me was somewhat considering visiting the US in the summer anyway [12:10:00.0000] Can anyone tell me why the Selection stringification is empty here for Opera? http://aryeh.name/spec/innertext/test/innerText.html [12:11:00.0000] "typeof identitifer" shouldn't be throwing reference errors... [12:11:01.0000] Even in IE8? [12:12:00.0000] Yeah [12:12:01.0000] If the identifier isn't previously declared it should just return undefined [12:12:02.0000] Oh well. [12:13:00.0000] Testing window.Node works, anyway. [12:14:00.0000] Yeah, that's the usual approach. I never liked typeof :) [12:15:00.0000] (Side note, Node == undefined is allowed to throw, and typeof is not a function so you don't need to do typeof(x)) [12:19:00.0000] I originally did "typeof x", but tried "typeof(x)" in case it would work. [12:19:01.0000] Which it didn't. [12:19:02.0000] Why is Node === undefined allowed to throw? That's silly. [12:19:03.0000] Because you're referencing an undeclared identifier [12:19:04.0000] That's either a reason to throw or not to throw, not to allow throwing. [12:20:00.0000] Well, allow as in "throw if there is a reason to throw" [12:20:01.0000] It's not optional [12:20:02.0000] What's "a reason to throw"? [12:20:03.0000] unresolvable reference [12:21:00.0000] Also, can anyone help me figure out where the plainText function called here is defined? I've been looking, but I can't find it. I want to compare my super-simple innerText to WebKit's real-world implementation: http://www.google.com/codesearch/p?hl=en#OAMlx_jo-ck/src/third_party/WebKit/WebCore/dom/Element.cpp&exact_package=chromium&l=1507 [12:21:01.0000] othermaciej, could you point me to WebKit's plainText implementation, or whatever does the bulk of the work of innerText? [12:24:00.0000] (I'm beginning to suspect that it uses some kind of internal rendering data structure, not the DOM at all . . .) [12:25:00.0000] (Which would be hopeless to spec.) [12:25:01.0000] It might rely on the Render Tree, which is a close analogue to CSS's box tree. [12:27:00.0000] This one maybe? http://www.google.com/codesearch/p?hl=en#OAMlx_jo-ck/src/third_party/WebKit/WebCore/editing/TextIterator.h&q=\bplainText\%28%20lang:cpp&exact_package=chromium&sa=N&cd=3&ct=rc [12:28:00.0000] It does scary things like respecting text-transform. [12:28:01.0000] (Well, the matching .cpp file anyway) [12:30:00.0000] Looks like it [12:31:00.0000] Searched for plainText taking a Range as parameter and that was the only one I could see [12:32:00.0000] I don't get that code at all, but I feel like the code that does the actual work must be someplace else. [12:32:01.0000] AryehGregor: I can look for you after I grab lunch [12:32:02.0000] Obviously I should just ask in #webkit. [12:35:00.0000] Ah, I think I see it now. [12:35:01.0000] handleTextNode() et al. [12:37:00.0000] Hmm, doesn't seem easy enough to understand to be useful. [12:38:00.0000] yes, you'll need someone to explain what it is doing [12:38:01.0000] /me hears othermaciej volunteer [12:39:00.0000] /me asks in #webkit [12:40:00.0000] we need code-analysis heuristics that magically read source code files and tell us what they do [12:40:01.0000] /me finds http://www.google.com/codesearch/p?hl=en#OAMlx_jo-ck/src/third_party/WebKit/LayoutTests/fast/dom/inner-text-001.html&exact_package=chromium&d=6 [12:41:00.0000] MikeSmith, why do you want us all unemployed? [12:42:00.0000] yeah [12:42:01.0000] then we can all be gentleman and ladies of leisure [12:42:02.0000] can retire with our riches to a bucolic life in the countryside [12:43:00.0000] hahahaha [12:43:01.0000] MikeSmith: Yo, question about boilerplate on the specs. [12:44:00.0000] Art sent me the message that you said to use the HTML5 WD boilerplate for the SotD. Should I just take the whole thing, replacing spec names when appropriate? [12:44:01.0000] othermaciej, annevk: are you opposed to having *any* standard mechanism which allows authors to control who can deep-link resources on their servers? (I mean subresource loads like IMG, font-face and video, not ) [12:45:00.0000] TabAtkins: yeah, please [12:45:01.0000] roc: there already is one, isn't there? [12:45:02.0000] MikeSmith: Okay, just making sure. [12:45:03.0000] k [12:45:04.0000] othermaciej: which is? [12:45:05.0000] (server-side check of Referer, or Origin in browsers that have it) [12:45:06.0000] sites do take measures to prevent image hotlinking [12:46:00.0000] I'm not sure adding a client-side way to do it for img would be worthwhile [12:46:01.0000] that requires an information leak from to the server and is unreliable due to firewall stripping [12:47:00.0000] I don't think any firewalls strip Origin, though it's true not all browsers send it for subresource loads (yet) [12:47:01.0000] a solution where the browser decide wouldn't have those problems, and could be easier for authors to deploy too [12:47:02.0000] firewall stripping is estimated to affect <5% of users and so would not materially affect the effectiveness of hotlinking prevention [12:49:00.0000] why should a firewall strip headers? [12:49:01.0000] some firewalls strip Refer for privacy purposes [12:49:02.0000] 'cause firewalls are crazy. [12:50:00.0000] or to avoid disclosing URLs on intranet servers that link to external sites [12:50:01.0000] because intranet administrators are concerned about people clicking on a link from worlddomination.google.com to evil.com [12:50:02.0000] Origin should be less of an issue, since it doesn't disclose the full linking URL [12:50:03.0000] though it's true that the hostname itself could leak info [12:50:04.0000] anyway [12:51:00.0000] if there's some general mechanism that can reasonably be applied to IMG, whether client-side or not, I would not be averse to also applying it to @font-face [12:51:01.0000] is Webkit going to start sending Origin for all subresource loads? [12:51:02.0000] I believe we already do [12:53:00.0000] good [12:53:01.0000] trying to figure out how to construct the tcpdump command to verify [12:54:00.0000] I think deploying Origin checking is likely to be very hard for most Web authors though [12:56:00.0000] and "default allow" just seems wrong :-( [12:56:01.0000] well, according to tcpdump I'm wrong (about sending Origin), but I'm not sure why [12:57:00.0000] othermaciej, just use wireshark :) [12:58:00.0000] roc: if we were redesigning the Web from scratch, it might make sense to default to denying cross-origin resource loads, but it seems unhelpfully inconsistent to do it only for some resource types, and reversing the default on IMG or SCRIPT at this point is likely impossible [12:58:01.0000] I agree that's impossible [12:59:00.0000] I don't buy the consistency argument since we DO default-deny cross-origin for XHR [12:59:01.0000] that said, I'd be fine with an across-the-board hotlinking prevention mechanism that servers can opt into [12:59:02.0000] OK [12:59:03.0000] if it was materially easier than checking headers [12:59:04.0000] I ask mainly because I've heard some people claim that any such mechanism is "against the spirit of the Web" or something like that [13:00:00.0000] well, servers can do it already [13:00:01.0000] if we had a header that a server could send to ask the browser to limit embedding, that doesn't seem hugely different [13:00:02.0000] people do all kinds of things that are against the spirit of the Web :-) [13:00:03.0000] since adding a static header to a resource might be easier than checking a request header [13:01:00.0000] XHR is different because it lets you read the response [13:01:01.0000] not just embed it in an opaque way [13:01:02.0000] same-origin policy is traditionally about preventing actual access to data from another site, not preventing embedding [13:02:00.0000] (XHR has the added wrinkle that it can make requests that could be dangerously side-effecting which are otherwise impossible to produce from a WEb page) [13:02:01.0000] I would also want to get rid of cross-origin non-GET form submission if that was possible [13:02:02.0000] I understand why it's different, but it's still not consistent [13:02:03.0000] sadly, probably not [13:03:00.0000] and denying cross-origin loads is still not a new concept on the Web [13:03:01.0000] fonts are like images or video in that respect, not like XHR [13:03:02.0000] the distinction between "reading" and "embedding" makes sense but I don't know if authors appreciate it ... and in practice, the distinction is not so clear, witness all the information leak issues we've had with cross-origin CSS loads etc [13:03:03.0000] neither of the reasons that XHR is different apply (reading result, sending dangerous requests) [13:04:00.0000] agree; if starting from scratch, it might make sense to reverse the polarity [13:05:00.0000] I think adding an Allow-Embedding-From-Origins: header that works across the board would be reasonable and possibly helpful to authors [13:05:01.0000] Alex Russel believes that doing perfect browser detection is so simple he leaves it as an exercise for the reader, no need to actually demonstrate how [13:06:00.0000] All you need is indexOf("Netscape") [13:07:00.0000] roc, I think we need a generic blocking mechanism that can be used for fonts/images/scripts/framed resources/etc. [13:08:00.0000] roc, using CORS for fonts and something else for all the other stuff is somewhat insane [13:08:01.0000] plus, CORS is not meant for blocking [13:09:00.0000] that is why we want a default-same-origin policy for fonts [13:09:01.0000] well, one of the reasons [13:09:02.0000] but our platform is such that such resources work cross-origin by default [13:09:03.0000] singling out fonts is silly [13:09:04.0000] no it's not, see above [13:09:05.0000] XHR is reading data [13:09:06.0000] fonts is like images [13:09:07.0000] and scripts [13:10:00.0000] you cannot read the data, just use it [13:10:01.0000] it's "cross origin by default" when you "embed" a resource instead of "reading" it, which it turns out is a rather slippery distinction in the presence of cssText etc [13:10:02.0000] you might be able to pixel-hunt images [13:10:03.0000] and we're gonna have CORS for images, to enable not getting tainted [13:10:04.0000] same would apply with fonts [13:10:05.0000] AryehGregor, gave you access to the data repo too, I forgot earlier [13:12:00.0000] i gotta go [13:12:01.0000] maybe later tonight [13:12:02.0000] Ms2ger, oh, okay, thanks. [13:13:00.0000] I'll update that at some point, then. [13:13:01.0000] Would be nice ;) [13:14:00.0000] this "embedding" vs "reading" distinction actually constrains our API design, because we have to make sure that we minimize data leakage from resources that are only "embeddable", not "readable" [13:14:01.0000] are there any genuine use-cases for resources being "embeddable but not readable", other than legacy content? [13:14:02.0000] yes, all our APIs do that [13:15:00.0000] roc: thinking about it more, it seems like a possibly useful state to be able to allow cross-site embedding, but not cross-site reading [13:15:01.0000] othermaciej: maybe; what are the use-cases? [13:15:02.0000] I'm not sure that's necessarily true for fonts, but it seems clearly true for non-font resources [13:15:03.0000] how about images? [13:16:00.0000] scripts? css? (note that CSS isn't really supported, because cssText exists --- do authors resent that?) [13:16:01.0000] I don't really see any author caring about the distinction between their resources being downloaded for an embed vs for a read. [13:17:00.0000] we allow image embedding but not image reading by default [13:17:01.0000] for legacy reasons [13:17:02.0000] and I think most would agree we can't change either of those defaults [13:17:03.0000] roc: imxp, no one cares about cssText allowing reading of CSS. [13:17:04.0000] othermaciej: I agree, of course [13:18:00.0000] so it seems that a priori it must be a useful state [13:18:01.0000] othermaciej: the point is, are we carrying this "embedding vs reading" distinction forward into new resource types just for the sake of consistency with legacy stuff? Or are there genuine use-cases for it? [13:18:02.0000] roc, what is your problem with canvas tainting? do you see dom tainting coming? ;) [13:18:03.0000] it's complexity [13:18:04.0000] it surprises authors [13:18:05.0000] erlehmann: canvas tainting is similar to xorigin iframes being limited. [13:19:00.0000] as far as I know, it has not real purpose other than working around a mistake in the design of the Web [13:19:01.0000] for me, as an author, it took some time to figure out to do embedding
is good in concept, but poor in name. article implies syndication, journalism, etc written work. whereas the semantic purpose is more for the 'main content' of a page. i suggest instead [15:28:00.0000] section and content are perfectly dialectic. 1 syntactic, 1 semantic [15:28:01.0000]
is for syndication [15:28:02.0000] see the spec :-) [15:28:03.0000] But
can be used in secondary, non-main-part-of-the-page places [15:28:04.0000] Syndication is more-or-less the semantic you want for
, though.
is a section that is appropriate for linking to individually. [15:28:05.0000] see, this is the ambiguity i'm talking about [15:28:06.0000] It's probably too late to change the names. Some of them aren't quite right, but we'll never have a stable spec if we keep on arguing about them. [15:29:00.0000] and, of course, you can have multiple first-level
s [15:29:01.0000] there's no ambiguity [15:29:02.0000] the word "syndication" is in the first sentence of the definition of
in fact [15:29:03.0000] Not that we'll ever have a stable spec anyway. [15:29:04.0000] Nor do we want one. But this part could be stable. [15:29:05.0000] if a corporate site uses a menu for site structure + context, the main content of the page would not be proper for syndication [15:29:06.0000] so you shouldn't use
in that case [15:30:00.0000] yet it would still be helpful to denote the 'main content' of the page [15:30:01.0000] the main content is everything besides the non-main content [15:30:02.0000] what, so we have use-speicific tags now? TBL be damned [15:30:03.0000] yes [15:30:04.0000] if you must, call it
[15:30:05.0000] and it should have a semantic identity [15:31:00.0000] uh, weak. i literally know a whole camp of html 5 developers who are using the perceived looseness of article to refer to their main content, even if not intended for distribution [15:31:01.0000] i don't even see why there's a tag for content on the basis of syndication or not [15:31:02.0000] again,
should be renamed [15:31:03.0000] People misuse everything. [15:32:00.0000] There are lots of web pages on which it's semantically appropriate to use
for what you're calling the main content. There are many web sites where that's inappropriate from a semantic standpoint. It just depends on the page. [15:32:01.0000] and this is why the web is a toilet to dev for; lazy spec developers [15:32:02.0000] let me ask this: do you expect large corporations to wrap their page specific content in
? [15:33:00.0000] no. I expect them to wrap articles in
. [15:33:01.0000] if they would syndicate it as an independent item of content in a feed - then yes, I would expect them to wrap it in an
[15:33:02.0000] corporate web sites are not intending to distribute their page content sans context. you and i both know this. [15:33:03.0000] tantek: And that's equivalent to what hober said. ^_^ [15:33:04.0000] do you guys not see the gap i'm shining light on? [15:33:05.0000] key: if we rename
to , people will think it's for their main content, when it is in fact for syndication. [15:33:06.0000] key: we see that there's currently no eelemtn for "the main section of the page" [15:33:07.0000] the syndication attribute of article needs to be removed, leaving a generic [15:33:08.0000] TabAtkins - no hober said articles in
- that's a tautology :P [15:33:09.0000] but that has nothing to do with no, would be for any unit of content [15:34:01.0000] whole and complete [15:34:02.0000] key - that's what
is for [15:34:03.0000] we already have a generic "main content of page" element, it's [15:34:04.0000] heh [15:34:05.0000] Hixie: indeed, I misspoke [15:34:06.0000] yea, the spec sure is tight and clean. [15:34:07.0000] tantek: Only if you claim that the "article-ness" of a piece of content is defined solely through what it's wrapped in. [15:34:08.0000] and now you understand the difference between
and
[15:34:09.0000] hixie, there is a difference just as there is HEAD and HEADER [15:34:10.0000] tantek: If you assume that article-ness if an independent quality, then it makes sense. [15:35:00.0000] congratulations - quick, write it up in an FAQ :) [15:35:01.0000] 1 is for message, the other is semantic [15:35:02.0000] tantek: it's probably already in there [15:35:03.0000] is a historical artefact,
is to help authors not have to use
for a common class="header" case [15:35:04.0000] hober - if so, point to it :P [15:35:05.0000] /me is not particularly fond of either [15:36:00.0000] hixie, there is the structure of the message, then there is the semantic partitioning of the content (body) of the message [15:36:01.0000] uh [15:36:02.0000] you guys should /not/ be developing specs for the web [15:36:03.0000] you are welcome to do it in our stead :-) [15:36:04.0000] key - you're welcome to fork and do a better job :P [15:36:05.0000] lol [15:36:06.0000] i'm actually working on it [15:36:07.0000] the spec is under a license that allows forking for exactly this reason [15:37:00.0000] all you have to do is convince the browser vendors that you're doing a better job, and your spec will be the official one :-) [15:37:01.0000] or at least, as official as the whatwg's one today [15:37:02.0000] i'm sorry you guys want to squeeze everything web into the character of a blog. [15:37:03.0000] key - no need to strawman - https://secure.wikimedia.org/wikipedia/en/wiki/Straw_man [15:38:00.0000] i know what strawman means, and i did not ply that scheme [15:38:01.0000] tantek: looks like it's not in there. Hence my 'probably' :) [15:38:02.0000] having a tag so semantically rigid as article is in fact a poor choice [15:39:00.0000] Hey, it sure beats
[15:39:01.0000] This is why open-source licenses are neat. They give you a way to tell people to shut up while at the same time feeling smug and self-righteous about it. [15:39:02.0000] i like most of the idea behind it, but it shouldn't imply anything re syndication! [15:39:03.0000] HTML has lots of weird elements,
is on the less weird end of things [15:39:04.0000] so we lower our standards vs increasing them hober? [15:39:05.0000] i mean, wtf does that comment even mean? [15:39:06.0000] key: then just think of it being an independent section, and forget anyone said anything about syndication [15:39:07.0000] key: see the topic [15:39:08.0000] key, the fact is, you're not the one deciding what goes into the WHATWG's HTML spec. So you can either try to convince people, or agree to disagree. Just telling us we're wrong is not really very useful. [15:40:00.0000] key - your statement "you guys want to squeeze everything web into the character of a blog" is a misrepresentation of our positions [15:40:01.0000] hober, but you damn well know the 'syndication' reference will give cover to people who want to scrape and rape ppl's content [15:40:02.0000] key: the idea behind
is exclusively to allow syndication, so if you don't like that, you don't like the idea behind
. Which is fine, but you'll find it easier to convince us if you start from the standpoint of what you actually want than saying you agree to something you actually disagree with. [15:40:03.0000] wait, what? [15:40:04.0000] ergo strawman [15:41:00.0000] I'd call it more like a "flame". [15:41:01.0000] A straw man is really more when you *counter* an argument that your opponent doesn't hold. [15:41:02.0000] nah. moment, let me ponder [15:41:03.0000] key: Your entire conversation so far has been a massive pile of insult, distortion, and flame. This is not how you conduct conversations. [15:41:04.0000] Not when you merely accuse them of holding it. [15:41:05.0000] AryehGregor: yep you got it [15:41:06.0000] The whole point of the analogy is that straw men are easy to defeat, because they don't fight back. [15:41:07.0000] At least, not if you want to actually accomplish anything besides getting ignored. [15:42:00.0000] wait what? now we're condoning rape? [15:42:01.0000] If they aren't trying to counter the argument, it's not really appropriate to call it a straw man, IMO. [15:42:02.0000] . . . ? [15:42:03.0000] man, this conversation went sour fast [15:42:04.0000] relax [15:42:05.0000] I just happened to look here and we're talking about rape? [15:42:06.0000] there seems to be 2 sides to article [15:42:07.0000] what kind of logic is... oh [15:42:08.0000] 1. syndication being implied. 2. unit of content; whole and complete [15:42:09.0000] i like 2, i think 1 is less useful [15:43:00.0000] ok, so just don't worry about 1 then [15:43:01.0000] how does it affect you? [15:43:02.0000] would be semantically organizational, whereas
would be structurally organizational [15:43:03.0000] because we need a tag like it, semantically, but better [15:43:04.0000] hence [15:43:05.0000] the semantic of what you think of as is different from
, and this is orthogonal to the syndication thing [15:43:06.0000] if it's about syndication,
should inherit from , not
[15:44:00.0000] no, because it's sensible for a page to have many
s on it [15:44:01.0000] yes and? [15:44:02.0000] and, assuming I understand you when you talk about the nonexistent tag, it would only be once a page [15:44:03.0000] it's also sensible for an article to be spread over multiple pages [15:44:04.0000] not necessarily [15:44:05.0000] the same as article, just with no implication re syndication; which is just odd [15:45:00.0000] i mean fuck, why don't you guys just make a tag? would compliment well your blog tags [15:45:01.0000] I give up. [15:46:00.0000] key, are you trying to be constructive here? [15:46:01.0000] yes [15:46:02.0000] Then I regret to inform you that you're not very good at it. [15:47:00.0000] k [15:47:01.0000] takes ears to hear [15:47:02.0000] Uh, yeah. /ignore, dude. [15:47:03.0000] I'm pretty sure that whoever's listening, cursing at them and telling them they're incompetent is an ineffective rhetorical strategy. [15:47:04.0000] i tried reason, fell on deaf ears [15:48:00.0000] Well, that's why I asked you if you were trying to be constructive. [15:48:01.0000] The alternative would be that you had given up and were just venting. [15:48:02.0000] slightly [15:48:03.0000] it's frustrating to me. the web has so much promise that has yet to be realized [15:48:04.0000] we're decades into it now, it should be better than this [15:49:00.0000] the tag set should be complete and abstract, and not imply things irrelevant [15:49:01.0000] if you ask me, the semantic web is mostly going to be a failure [15:49:02.0000] future tense? [15:49:03.0000] jcranmer: No need to use the future tense. The "Semantic Web" was a failure. [15:49:04.0000] jcranmer: you're probably right. the temptation to try to create a tag for everything will overwhelm it [15:50:00.0000] should be a complete set of abstract tags, not tags for every kind of thing [15:50:01.0000] maybe the Semantic Web was something I didn't think it was [15:50:02.0000] It punted on all the hard issues like trust in favor of solving the more theoretically interesting ratholes. [15:50:03.0000] /me goes to check Wikipedia [15:50:04.0000] I don't think trust was the big issue. [15:50:05.0000] trust is a huge issue [15:50:06.0000] eg,