/irc-logs / freenode / #whatwg / 2010-02-01 / end

Options:

  1. # Session Start: Mon Feb 01 00:00:00 2010
  2. # Session Ident: #whatwg
  3. # [00:03] * Quits: ttepasse (~ttepas--@ip-95-222-120-117.unitymediagroup.de) (Quit: 404)
  4. # [00:04] * Quits: starjive (beos@81-233-16-19-no30.tbcn.telia.com)
  5. # [00:08] * Joins: Heimidal (~heimidal@97-118-43-164.hlrn.qwest.net)
  6. # [00:08] * Quits: Heimidal (~heimidal@97-118-43-164.hlrn.qwest.net) (Changing host)
  7. # [00:08] * Joins: Heimidal (~heimidal@unaffiliated/heimidal)
  8. # [00:10] * Joins: tndH (~Rob@cpc2-leed18-0-0-cust427.leed.cable.ntl.com)
  9. # [00:14] * Quits: Heimidal (~heimidal@unaffiliated/heimidal) (Remote host closed the connection)
  10. # [00:17] * Joins: dbaron (~dbaron@c-98-234-51-190.hsd1.ca.comcast.net)
  11. # [00:30] * Quits: Rik` (~Rik`@pha75-2-81-57-187-57.fbx.proxad.net) (Remote host closed the connection)
  12. # [00:31] * Joins: Rik` (~Rik`@pha75-2-81-57-187-57.fbx.proxad.net)
  13. # [00:42] * Joins: GarethAdams|Home (~GarethAda@5ac3fd1f.bb.sky.com)
  14. # [00:42] * Quits: GarethAdams|Home (~GarethAda@5ac3fd1f.bb.sky.com) (Changing host)
  15. # [00:42] * Joins: GarethAdams|Home (~GarethAda@pdpc/supporter/active/GarethAdams)
  16. # [00:45] * Joins: cardona507 (~cardona50@c-67-180-160-250.hsd1.ca.comcast.net)
  17. # [00:49] * Quits: FireFly (~firefly@unaffiliated/firefly) (Quit: Leaving)
  18. # [00:50] * Joins: mackstann__ (~death@216-20-152-177-dsl.hevanet.com)
  19. # [00:58] * Joins: workmad3 (~workmad3@cpc3-bagu10-0-0-cust651.1-3.cable.virginmedia.com)
  20. # [01:07] <annevk> smaug___, note that <h1><h2> may be relevant because <h2> closes <h1>
  21. # [01:07] <annevk> iirc
  22. # [01:07] <annevk> smaug___, so you want to use <div> instead if you were to actually use that in example code
  23. # [01:08] <smaug___> annevk: it isn't relevant
  24. # [01:08] <smaug___> if I use xhtml that all just works
  25. # [01:08] <smaug___> in that example using <hX> was simpler
  26. # [01:08] <annevk> well sure
  27. # [01:08] <annevk> but XHTML does not work in IE
  28. # [01:09] <annevk> so that would be a problem
  29. # [01:09] <annevk> if we want to test IE
  30. # [01:09] <smaug___> using divs would have required id attributes or something
  31. # [01:09] <smaug___> that wasn't a testcase
  32. # [01:09] <smaug___> but just an example
  33. # [01:09] <smaug___> even trivial one
  34. # [01:09] <annevk> anyways, it seems like someone needs to define hit testing
  35. # [01:09] <smaug___> maybe
  36. # [01:10] <smaug___> though, if IE really behaves like that with mouseenter/leave
  37. # [01:10] <smaug___> I think those should be just dropped
  38. # [01:10] <smaug___> those aren't that useful
  39. # [01:10] <annevk> are you sure?
  40. # [01:10] <smaug___> well, you can emulate them using scripts
  41. # [01:10] <annevk> lots of developers want those events
  42. # [01:10] <smaug___> and mouseover/out
  43. # [01:11] <Dashiva> I would wager that a majority of all uses of mouseover/out really wants mouseenter/leave
  44. # [01:12] <annevk> e.g. a simple search gives http://blog.stchur.com/2007/03/15/mouseenter-and-mouseleave-events-for-firefox-and-other-non-ie-browsers/
  45. # [01:14] * Joins: Rik`_ (~Rik`@pha75-2-81-57-187-57.fbx.proxad.net)
  46. # [01:18] * Quits: Rik` (~Rik`@pha75-2-81-57-187-57.fbx.proxad.net) (Ping timeout: 264 seconds)
  47. # [01:18] * Rik`_ is now known as Rik`
  48. # [01:30] * Joins: Heimidal (~heimidal@97-118-43-164.hlrn.qwest.net)
  49. # [01:30] * Quits: Heimidal (~heimidal@97-118-43-164.hlrn.qwest.net) (Changing host)
  50. # [01:30] * Joins: Heimidal (~heimidal@unaffiliated/heimidal)
  51. # [01:32] <annevk> http://foolip.org/microdatajs/live/ neat
  52. # [01:32] * annevk -> past bedtime
  53. # [01:32] <annevk> nn
  54. # [01:35] * Joins: wakaba_ (~wakaba_@122x221x184x68.ap122.ftth.ucom.ne.jp)
  55. # [01:43] * Quits: erlehmann (~erlehmann@echelon.ext.c-base.org) (Quit: Ex-Chat)
  56. # [01:49] * Quits: salavas (salavas@h4n1fls31o279.telia.com) (Ping timeout: 246 seconds)
  57. # [01:49] * Quits: nessy (~Adium@124-171-43-189.dyn.iinet.net.au) (Ping timeout: 258 seconds)
  58. # [01:49] * Quits: csarven (~csarven@ip157-77-212-87.adsl2.static.versatel.nl) (Quit: Leaving.)
  59. # [01:50] * Quits: gavin_ (~gavin@firefox/developer/gavin) (Ping timeout: 265 seconds)
  60. # [01:52] * Joins: erlehmann (~erlehmann@84.22.107.1)
  61. # [01:53] * Joins: paul_iri_ (~paul_iris@c-71-192-163-128.hsd1.nh.comcast.net)
  62. # [01:53] * Joins: nessy (~Adium@124-171-43-189.dyn.iinet.net.au)
  63. # [01:54] * Quits: paul_irish (~paul_iris@c-71-192-163-128.hsd1.nh.comcast.net) (Killed (NickServ (GHOST command used by paul_iri_)))
  64. # [01:54] * paul_iri_ is now known as paul_irish
  65. # [01:56] * Joins: gavin_ (~gavin@firefox/developer/gavin)
  66. # [01:56] * Joins: ojan (~ojan@2620:0:1080:8:219:e3ff:fe08:1d8d)
  67. # [01:57] * Quits: cardona507 (~cardona50@c-67-180-160-250.hsd1.ca.comcast.net) (Quit: zzzzz)
  68. # [01:58] * Joins: salavas (salavas@h4n1fls31o279.telia.com)
  69. # [01:59] * Quits: Heimidal (~heimidal@unaffiliated/heimidal) (Remote host closed the connection)
  70. # [02:07] * Quits: erlehmann (~erlehmann@84.22.107.1) (Quit: Ex-Chat)
  71. # [02:11] * Quits: paul_irish (~paul_iris@c-71-192-163-128.hsd1.nh.comcast.net) (Remote host closed the connection)
  72. # [02:12] * Joins: paul_irish (~paul_iris@c-71-192-163-128.hsd1.nh.comcast.net)
  73. # [02:13] * Joins: tkent (~tkent@220.109.219.244)
  74. # [02:24] <Hixie> foolip, your microdata tool is awesome
  75. # [02:24] <Hixie> i've added it to my list of consoles on http://damowmow.com/portal/ (top right)
  76. # [02:24] <Lachy> Hixie, new version of Requiem is out. It aparently fixes the 4GiB file size limit.
  77. # [02:24] <Hixie> nice
  78. # [02:24] <Hixie> (there was a 4GB file size limit?)
  79. # [02:25] <Lachy> it's taking me a while to download it from Tor - it's a really slow connection today - and I couldn't find it on any torrent sites yet.
  80. # [02:26] <Hixie> ah
  81. # [02:27] <Lachy> there was a limit, but since only a few of the HD movies available from iTunes are over 4GB, it probably hasn't affected you
  82. # [02:28] <Lachy> it hasn't affected me either, since being outside the US, there is no HD content available
  83. # [02:29] <Hixie> heh
  84. # [02:30] <Hixie> how weird
  85. # [02:30] <Lachy> and the Australian iTunes store (which my account is for) is unlikely to bother with HD content while our internet continues to be over priced and capped with extremely low usage caps
  86. # [02:30] <Hixie> don't they have an itunes datacenter?
  87. # [02:32] <Lachy> yes, they do. But our ISPs count your data usage, and downloading 2GB HD TV shows frequently will send most users over their 10GB to 20GB monthly limit quite quickly. (Plans with more than that are way over priced)
  88. # [02:33] <Lachy> and so unless Apple does some deals with Australian ISPs to make iTunes content be unmetered, the market for HD content will be very small
  89. # [02:34] <Hixie> so basically unless you lose your net neutrality, you're screwed?
  90. # [02:34] <Hixie> what is it with english-speaking countries and being stupid
  91. # [02:36] <Lachy> yeah, basically. Although, to some extent, some Aussie ISPs have gone against net neutrality, and have in the past, included some major download sites (like tucows and cnet downloads) as part of the unmetered freezone.
  92. # [02:37] <Lachy> Telstra includes its own BigPond network in their free zone too
  93. # [02:38] <AryehGregor> Hixie, maybe non-English-speaking countries are also stupid, but you don't notice it as much because it's in a foreign language?
  94. # [02:38] <Lachy> I've heard claims that the reason for the over priced, capped internet is because the cost of sending data across the Pacific ocean is expensive.
  95. # [02:38] <AryehGregor> Bandwidth caps make more sense than "unlimited" plans where you get threatening calls from your ISP if you use too much bandwidth . . .
  96. # [02:38] <Hixie> i speak french and lived in swizterland, and also lived in norway, and i haven't seen the same kinds of stupidity as in the UK, US, and Australia.
  97. # [02:39] <Hixie> but i'm sure each country has its own stupidity, certainly :-)
  98. # [02:39] <Lachy> Hixie, there are plenty of non-English speaking countries that are stupid. LIke China, Iran (I think), and some other middle eastern countries.
  99. # [02:39] <AryehGregor> Unlimited plans don't make much market sense, they encourage tragedies of the commons like BitTorrent.
  100. # [02:40] <Lachy> AryehGregor, what do you mean by tragedies of the commons?
  101. # [02:40] <AryehGregor> Lachy, I mean that if it's unlimited, you won't care how much you use, so you'll be much more likely to use an unreasonably large amount, which in aggregate degrades service for everyone.
  102. # [02:40] <AryehGregor> But every individual bears too little of the cost to care.
  103. # [02:40] <AryehGregor> http://en.wikipedia.org/wiki/Tragedy_of_the_commons
  104. # [02:42] <Lachy> I strongly disagree. Bandwidth caps place an unfair burdon on end users, and place wholly artificial limits on what people can and can't do.
  105. # [02:43] <AryehGregor> How is it wholly artificial or unfair to pay for the resources you use? Most resources you use are metered, like electricity.
  106. # [02:43] <AryehGregor> But yeah, it's a pain, so people don't like it and ISPs try to avoid it.
  107. # [02:44] <AryehGregor> Which creates tragedies of the commons, but oh well.
  108. # [02:46] <GarethAdams|Home> AryehGregor: different argument. Your electricity is metered, but it's probably unlimited
  109. # [02:46] <AryehGregor> Ah, someone upgraded the wiki to 1.15.1.
  110. # [02:47] <GarethAdams|Home> (unlimited within capacity provision)
  111. # [02:47] <AryehGregor> GarethAdams|Home, well, yes. Caps are just a coarser form of metering, though, where you have to pay in advance to upgrade to the next plan.
  112. # [02:47] <AryehGregor> Lachy, should I upgrade the wiki to the latest alphas from SVN so that it's outputting HTML5 instead of XHTML1 Transitional? :)
  113. # [02:48] <GarethAdams|Home> Personally I think pre-pay vs credit is quite a fundamental difference
  114. # [02:48] <Lachy> AryehGregor, bandwidth is not a limited resource in the same sense as physical resources, and bandwidth caps attempt to solve the issue the wrong way.
  115. # [02:48] <AryehGregor> Lachy, it's limited every bit as much as things like electricity or water. How would you solve it?
  116. # [02:49] <AryehGregor> Well, it's too late for me to get into an argument, but I could set up MediaWiki 1.16alpha tonight, or not.
  117. # [02:49] <AryehGregor> You gave me shell access, but I don't want to do it without at least one other person thinking it's a reasonable idea. :)
  118. # [02:49] <Lachy> Bandwidth is, for the sake of simplicity, effectively a measure of how much data can be transmitted at the same time. So offering plans based on the bandwidth, or rather speed, provided to the user makes sense.
  119. # [02:50] <AryehGregor> Whee, still using MySQL 4.1. At least one user is benefiting for our support for ancient MySQL versions!
  120. # [02:52] <Lachy> But imposing monthly usage limits tries to treat data as a finite resource, and implies that it will somehow run out if too much is used in a month.
  121. # [02:53] <AryehGregor> Well, what they really care about is how much you're using at peak. If there's excess capacity, it makes no difference to them, no. So it's a crude metric, that's true.
  122. # [02:53] <AryehGregor> That's not quite true, actually.
  123. # [02:53] <AryehGregor> They do pay for every bit that goes over a backbone, AFAIK.
  124. # [02:53] <Lachy> but that's not the case at all. If a backbone can support 1Gbps, and 50 users are connected to that, each going flat out on their ADSL2+, 20Mbps connection, they could do that all indefinitely.
  125. # [02:53] <AryehGregor> But anyway, are you going to answer me about upgrading the WHATWG wiki?
  126. # [02:54] <AryehGregor> Yes, but they oversell, because people don't use all their bandwidth at once.
  127. # [02:54] <Lachy> Although, with bandwidth caps, they would hit their artificial limit within a day
  128. # [02:54] <Lachy> right. But bandwidth caps do nothing to address that problem of over selling
  129. # [02:55] <AryehGregor> Overselling isn't a problem, it's the only thing that makes sense. It would be crazy to let massive bandwidth capacity lie idle because you have to reserve a fixed amount for each customer.
  130. # [02:56] * AryehGregor wonders why Lachy keeps on ignoring the questions about the wiki.
  131. # [02:56] <Lachy> oh, I missed the wiki question.
  132. # [02:56] <AryehGregor> I only asked it about eight times.
  133. # [02:58] <Lachy> sure, do whatever you like with the wiki (as long as you don't break it).
  134. # [02:58] <Lachy> or if you do break it, fix it
  135. # [02:58] <AryehGregor> There are no hacks, are there?
  136. # [02:58] <AryehGregor> So I can overwrite the files and there will be no problems?
  137. # [02:58] <Lachy> no
  138. # [02:58] <AryehGregor> k.
  139. # [02:58] <Lachy> there are plugins, I believe
  140. # [02:59] <Lachy> can't remember which ones we have installed though
  141. # [02:59] <AryehGregor> ConfirmEdit, no problem.
  142. # [03:03] * Joins: breakmau5 (~breakz@erft-5d809a0b.pool.mediaWays.net)
  143. # [03:05] <Lachy> AryehGregor, have you ever lived with an internet connection that was capped?
  144. # [03:06] <AryehGregor> No. Is that relevant?
  145. # [03:07] <Lachy> I was just wondering, since if you had, you might actually understand the detrimental effects that caps can have on many things, including work. I can tell you for a fact that it's no fun trying to do web development when your connection has been shaped to 64kbps for going over your monthly bandwidth limit
  146. # [03:07] * Quits: TabAtkins (~chatzilla@70-139-15-246.lightspeed.rsbgtx.sbcglobal.net) (Ping timeout: 246 seconds)
  147. # [03:08] <AryehGregor> Did I ever say caps were fun? I'm pretty sure I explicitly said customers don't like them.
  148. # [03:08] <AryehGregor> (although, I was talking more about metering than caps)
  149. # [03:08] <Lachy> metering implies caps
  150. # [03:09] <AryehGregor> No it doesn't. My server's connection is metered but uncapped.
  151. # [03:09] <Lachy> unless you're talking about plans that charge per MB, and can get quite expensive really quickly
  152. # [03:09] <jcranmer> I've legitimately done about 1GiB/day
  153. # [03:09] <jcranmer> granted, scp'ing 100MiB files to a server is going to do that rather quickly
  154. # [03:10] * Quits: breakmau5 (~breakz@erft-5d809a0b.pool.mediaWays.net) (Read error: Connection reset by peer)
  155. # [03:10] <AryehGregor> Sure, and it would be fair if you were charged more than someone who just checks their e-mail.
  156. # [03:11] <Lachy> if someone just wants to check their e-mail, give them a low bandwidth, but uncapped, plan. I don't mind paying extra for the extra bandwidth. But I expect to be able to make use of it, which caps don't let me do
  157. # [03:12] <AryehGregor> Updating wiki, will be down for a few minutes.
  158. # [03:12] <AryehGregor> Back up.
  159. # [03:13] <AryehGregor> Try viewing source. :)
  160. # [03:14] <AryehGregor> Anyone who finds a problem should report it to me and I'll fix it. Meanwhile, I'm going to sleep.
  161. # [03:14] <Lachy> <!doctype html>
  162. # [03:14] <Lachy> <html lang="en" dir="ltr" version="HTML+RDFa 1.0" >
  163. # [03:14] <Lachy> wtf?
  164. # [03:14] <AryehGregor> Oh, right.
  165. # [03:14] <Lachy> lose the version crap
  166. # [03:14] <AryehGregor> Let me disable the RDFa. :P
  167. # [03:14] <Lachy> how did RDFa shit get into mediawiki?
  168. # [03:14] <AryehGregor> Try now.
  169. # [03:15] <AryehGregor> Someone committed it.
  170. # [03:15] <AryehGregor> Then I said we should also allow microdata, and then I said we should allow only microdata, and a lengthy debate ensued on the mailing list.
  171. # [03:15] <AryehGregor> (wikitech-l, I mean)
  172. # [03:15] <AryehGregor> I think the likely outcome is that both get disabled by default.
  173. # [03:15] <Lachy> you should get the RDFa removed. It's non-conforming HTML5
  174. # [03:16] <AryehGregor> It's conforming HTML5+RDFa!
  175. # [03:16] <AryehGregor> Anyway, conformance matters less than usefulness.
  176. # [03:16] <AryehGregor> The HTML5 mode means a whole truckload of non-conforming content, since we don't blacklist things like cellpadding and what have you.
  177. # [03:16] <Lachy> that's true. But HTML+RDFa is a completely useless spec
  178. # [03:17] <AryehGregor> But it also means more features, so to heck with validators.
  179. # [03:17] <AryehGregor> Well, you don't have to convince me of that.
  180. # [03:17] * AryehGregor points out type=search in the search bar, some type=number in preferences, autofocus in lots of places, . . .
  181. # [03:18] <AryehGregor> All of which I wrote. :P
  182. # [03:19] <AryehGregor> And of course, speaking of bandwidth, look at all those saved bytes!
  183. # [03:19] <AryehGregor> Okay, now's about time to go to bed.
  184. # [03:34] * Quits: mackstann__ (~death@216-20-152-177-dsl.hevanet.com) (Ping timeout: 258 seconds)
  185. # [03:41] * Joins: miketaylr (~miketaylr@24.42.95.234)
  186. # [03:41] * Quits: seventh (seventh@189.59.177.251.dynamic.adsl.gvt.net.br) (Quit: ...)
  187. # [03:42] * Philip` wonders if Lachy would be happier with an unmetered uncapped 256Kbps connection that he could use all day every day, or with a 20Mbps one that's capped at 100GB/month for the same cost
  188. # [03:47] * Hixie looks at Jingle and SIP to see if either would be usable with <device> and comes out disturbed at how complicated people make their protocols
  189. # [04:07] * Quits: Rik` (~Rik`@pha75-2-81-57-187-57.fbx.proxad.net) (Read error: Connection timed out)
  190. # [04:08] * Joins: Rik` (~Rik`@pha75-2-81-57-187-57.fbx.proxad.net)
  191. # [04:14] * Joins: JoePeck (~JoePeck@cpe-74-65-7-212.rochester.res.rr.com)
  192. # [04:15] * Quits: GarethAdams|Home (~GarethAda@pdpc/supporter/active/GarethAdams) (Ping timeout: 252 seconds)
  193. # [04:18] * Quits: JoePeck (~JoePeck@cpe-74-65-7-212.rochester.res.rr.com) (Client Quit)
  194. # [04:21] * Joins: GarethAdams|Home (~GarethAda@5ac3fd1c.bb.sky.com)
  195. # [04:21] * Quits: GarethAdams|Home (~GarethAda@5ac3fd1c.bb.sky.com) (Changing host)
  196. # [04:21] * Joins: GarethAdams|Home (~GarethAda@pdpc/supporter/active/GarethAdams)
  197. # [04:22] * Quits: gavin_ (~gavin@firefox/developer/gavin) (Ping timeout: 248 seconds)
  198. # [04:26] * Quits: pablof (~palbo@pat-tdc.opera.com) (Ping timeout: 276 seconds)
  199. # [04:26] * Joins: gavin_ (~gavin@firefox/developer/gavin)
  200. # [04:28] * Joins: pablof (~palbo@pat-tdc.opera.com)
  201. # [05:04] * Joins: mackstann__ (~death@216-20-152-177-dsl.hevanet.com)
  202. # [05:06] * Joins: Heimidal (~heimidal@97-118-43-164.hlrn.qwest.net)
  203. # [05:06] * Quits: Heimidal (~heimidal@97-118-43-164.hlrn.qwest.net) (Changing host)
  204. # [05:06] * Joins: Heimidal (~heimidal@unaffiliated/heimidal)
  205. # [05:06] * Quits: Heimidal (~heimidal@unaffiliated/heimidal) (Remote host closed the connection)
  206. # [05:09] * Quits: gavin_ (~gavin@firefox/developer/gavin) (Ping timeout: 240 seconds)
  207. # [05:15] * Joins: gavin_ (~gavin@firefox/developer/gavin)
  208. # [05:22] * Joins: cedric_ (~cedric@112.199.165.11)
  209. # [05:24] * Joins: cedric__ (~cedric@112.199.189.214)
  210. # [05:25] * Quits: cedricv (~cedric@124.197.93.169) (Ping timeout: 240 seconds)
  211. # [05:27] * Joins: cedricv (~cedric@116.197.249.112)
  212. # [05:27] * Quits: cedric_ (~cedric@112.199.165.11) (Ping timeout: 245 seconds)
  213. # [05:29] * Quits: cedric__ (~cedric@112.199.189.214) (Ping timeout: 245 seconds)
  214. # [05:36] * Joins: Utkarsh (~admin@117.201.81.98)
  215. # [05:38] * Quits: cedricv (~cedric@116.197.249.112) (Ping timeout: 245 seconds)
  216. # [05:38] * Joins: cedricv (~cedric@124.197.87.80)
  217. # [05:43] * Quits: cedricv (~cedric@124.197.87.80) (Ping timeout: 240 seconds)
  218. # [05:48] * Joins: cedricv (~cedric@116.197.196.135)
  219. # [05:53] * Quits: cedricv (~cedric@116.197.196.135) (Ping timeout: 245 seconds)
  220. # [05:55] * Quits: Utkarsh (~admin@117.201.81.98) (Ping timeout: 264 seconds)
  221. # [05:58] * Quits: wakaba_ (~wakaba_@122x221x184x68.ap122.ftth.ucom.ne.jp) (Ping timeout: 252 seconds)
  222. # [05:59] * Joins: wakaba_ (~wakaba_@119-228-219-41.eonet.ne.jp)
  223. # [06:00] * Joins: Utkarsh (~admin@117.201.80.78)
  224. # [06:02] * Quits: m_W (~mwj@c-69-141-106-205.hsd1.nj.comcast.net) (Ping timeout: 265 seconds)
  225. # [06:04] * Joins: _Utkarsh (~admin@117.201.87.135)
  226. # [06:05] * Quits: Amorphous (jan@unaffiliated/amorphous) (Read error: Operation timed out)
  227. # [06:07] * Quits: Utkarsh (~admin@117.201.80.78) (Ping timeout: 258 seconds)
  228. # [06:08] * Joins: paul_iri_ (~paul_iris@c-71-192-163-128.hsd1.nh.comcast.net)
  229. # [06:09] * paul_iri_ is now known as paul_irish_
  230. # [06:09] * Quits: paul_irish (~paul_iris@c-71-192-163-128.hsd1.nh.comcast.net) (Killed (NickServ (GHOST command used by paul_irish_)))
  231. # [06:09] * paul_irish_ is now known as paul_irish
  232. # [06:11] * Joins: m_W (~mwj@c-69-141-106-205.hsd1.nj.comcast.net)
  233. # [06:11] * Quits: _Utkarsh (~admin@117.201.87.135) (Ping timeout: 272 seconds)
  234. # [06:17] * Joins: Utkarsh (~admin@117.201.82.45)
  235. # [06:20] * Joins: Amorphous (jan@unaffiliated/amorphous)
  236. # [06:21] * Joins: _Utkarsh (~admin@117.201.83.226)
  237. # [06:22] * Quits: Utkarsh (~admin@117.201.82.45) (Ping timeout: 256 seconds)
  238. # [06:28] * Quits: miketaylr (~miketaylr@24.42.95.234) (Remote host closed the connection)
  239. # [06:36] * Quits: _Utkarsh (~admin@117.201.83.226) (Ping timeout: 264 seconds)
  240. # [06:42] * Joins: Utkarsh (~admin@117.201.85.251)
  241. # [07:19] * Quits: gavin_ (~gavin@firefox/developer/gavin) (Ping timeout: 264 seconds)
  242. # [07:19] * Quits: Utkarsh (~admin@117.201.85.251) (Ping timeout: 260 seconds)
  243. # [07:25] * Joins: gavin_ (~gavin@firefox/developer/gavin)
  244. # [07:25] * Quits: mackstann__ (~death@216-20-152-177-dsl.hevanet.com) (Ping timeout: 272 seconds)
  245. # [07:25] * Joins: Utkarsh (~admin@117.201.81.19)
  246. # [07:30] * Quits: dbaron (~dbaron@c-98-234-51-190.hsd1.ca.comcast.net) (Quit: 8403864 bytes have been tenured, next gc will be global.)
  247. # [07:33] <NickYoung> ping: Hixie
  248. # [07:35] <Hixie> hey
  249. # [07:35] * Quits: mamund (mamund@frost.nullshells.net) (Ping timeout: 276 seconds)
  250. # [07:35] * Joins: mamund (mamund@frost.nullshells.net)
  251. # [07:40] <NickYoung> hey Hixie - do you know, or know someone who knows, or know somewhere I can find out information about youtube.com/html5 ?
  252. # [07:41] <Hixie> what information?
  253. # [07:41] <NickYoung> HTTP requisites
  254. # [07:41] <Hixie> not sure what you mean
  255. # [07:41] <NickYoung> I'm getting 403 on my experimental build of webkit
  256. # [07:41] <Hixie> odd
  257. # [07:41] <NickYoung> so presumably there are requisite headers
  258. # [07:41] <Hixie> 403 for the video file?
  259. # [07:41] <NickYoung> yes
  260. # [07:42] <Hixie> and it works for regular webkit?
  261. # [07:42] <Hixie> how weird
  262. # [07:42] <Hixie> have you dumped the two network traffic sessions and compared them?
  263. # [07:42] <Hixie> i don't see why there'd be anything like that
  264. # [07:42] <NickYoung> this is a different multimedia backend
  265. # [07:43] <Hixie> i'd recommend cracking out tcpdump and comparing them
  266. # [07:43] <NickYoung> hmm, ok
  267. # [07:44] <NickYoung> my thought is it's probably either a cookie it wants, or a missing refferer header
  268. # [07:44] <NickYoung> my backend passes on neither at the moment
  269. # [07:45] <NickYoung> anyway, I just thought you might have seen some documents floating around I could consult :)
  270. # [07:45] * Joins: TabAtkins (~chatzilla@70-139-15-246.lightspeed.rsbgtx.sbcglobal.net)
  271. # [07:46] <Hixie> oh you almost certainly need the opt-in cookie
  272. # [07:50] <NickYoung> yeah, unfortunately the webkit interface for media is somewhat broken in this respect. The backend is only passed a URL to the media file.
  273. # [07:50] * Joins: cedricv (~cedric@124.197.79.134)
  274. # [07:52] <Hixie> seriously, i'd recommend using tcpdump to see what the working UA is sending
  275. # [07:52] <Hixie> it could be something obvious
  276. # [07:52] <othermaciej> NickYoung: we do want to eventually fix the networking to go through WebKit's http stick - just tricky to beat both WebKit and relevant media engines into shape
  277. # [07:52] <othermaciej> NickYoung: I think Referer or Cookie is a likely candidate
  278. # [07:53] <othermaciej> NickYoung: if you find the differences, one easy way to see which is making the difference could be to use curl or wget with custom headers
  279. # [07:54] * Joins: othree (~othree@admin39.ct.ntust.edu.tw)
  280. # [07:55] * Quits: m_W (~mwj@c-69-141-106-205.hsd1.nj.comcast.net) (Ping timeout: 264 seconds)
  281. # [07:55] <NickYoung> unfortunately I'm on linux atm, and HTML5 media support is in chrome (but not chromium) afaik
  282. # [07:55] <NickYoung> which leaves me with nothing to compare against
  283. # [07:56] <NickYoung> but a massive wget hack could work :P
  284. # [08:04] * Joins: FireFly (~firefly@unaffiliated/firefly)
  285. # [08:07] <othermaciej> there's no official Chrome for Linux yet?
  286. # [08:07] <othermaciej> wait, WebKit/Gtk has video support - does that not work?
  287. # [08:07] <othermaciej> (or is that what you are working on now?)
  288. # [08:08] <NickYoung> I'm working on WebKit/Qt
  289. # [08:08] <othermaciej> you could check if WebKit/Gtk can handle YouTube, that might be the easiest point of reference (though of course you'd need a GStreamer module that does H.264...)
  290. # [08:09] <NickYoung> yeah.. I have that
  291. # [08:09] <NickYoung> I'll investigate :)
  292. # [08:10] * Quits: ojan (~ojan@2620:0:1080:8:219:e3ff:fe08:1d8d) (Quit: ojan)
  293. # [08:11] <NickYoung> also, it looks like there is an official chrome for linux now
  294. # [08:18] * Joins: maikmerten (~merten@ls5dhcp196.cs.uni-dortmund.de)
  295. # [08:18] * Quits: TabAtkins (~chatzilla@70-139-15-246.lightspeed.rsbgtx.sbcglobal.net) (Ping timeout: 265 seconds)
  296. # [08:22] * Joins: drunknbass_work (~aaron@cpe-76-173-195-145.socal.res.rr.com)
  297. # [08:22] * Joins: Heimidal (~heimidal@97-118-43-164.hlrn.qwest.net)
  298. # [08:22] * Quits: Heimidal (~heimidal@97-118-43-164.hlrn.qwest.net) (Changing host)
  299. # [08:22] * Joins: Heimidal (~heimidal@unaffiliated/heimidal)
  300. # [08:28] <NickYoung> dear lord, the GTK version explicitly spoofs its user agent for movies.apple.com
  301. # [08:33] * Quits: virtuelv (~virtuelv_@162.179.251.212.customer.cdi.no) (Ping timeout: 276 seconds)
  302. # [08:37] * Joins: zalan (~zalan@host-131.nrln.net)
  303. # [08:49] * Quits: FireFly (~firefly@unaffiliated/firefly) (Quit: Leaving)
  304. # [08:54] * Joins: pesla (~retep@procurios.xs4all.nl)
  305. # [08:56] * Joins: portenkirchner (~portenkir@p5794A77B.dip.t-dialin.net)
  306. # [08:57] * Quits: portenkirchner (~portenkir@p5794A77B.dip.t-dialin.net) (Quit: portenkirchner)
  307. # [08:58] * Joins: Maurice (~ano@a80-101-46-164.adsl.xs4all.nl)
  308. # [08:58] * Joins: portenkirchner (~portenkir@p5794A77B.dip.t-dialin.net)
  309. # [09:00] * Quits: portenkirchner (~portenkir@p5794A77B.dip.t-dialin.net) (Client Quit)
  310. # [09:04] * Quits: Utkarsh (~admin@117.201.81.19) (Read error: Connection reset by peer)
  311. # [09:04] * Joins: Utkarsh (~admin@117.201.87.12)
  312. # [09:06] * Joins: _Utkarsh (~admin@117.201.87.12)
  313. # [09:09] * Quits: Utkarsh (~admin@117.201.87.12) (Ping timeout: 256 seconds)
  314. # [09:17] <othermaciej> NickYoung: if you find that UA spoofing is indeed required for movies.apple.com, could you please send me the info so I can file a bug on them? mjs@apple.com
  315. # [09:24] * Quits: Heimidal (~heimidal@unaffiliated/heimidal) (Remote host closed the connection)
  316. # [09:29] * Quits: gavin_ (~gavin@firefox/developer/gavin) (Ping timeout: 258 seconds)
  317. # [09:32] * Quits: danbri (~danbri@unaffiliated/danbri) (Remote host closed the connection)
  318. # [09:34] * Quits: _Utkarsh (~admin@117.201.87.12) (Ping timeout: 248 seconds)
  319. # [09:35] * Joins: gavin_ (~gavin@firefox/developer/gavin)
  320. # [09:39] * Joins: zcorpan (~zcorpan@pat.se.opera.com)
  321. # [09:44] * Joins: Lachy_ (~Lachlan@85.196.122.246)
  322. # [09:47] * Quits: Lachy (~Lachlan@85.196.122.246) (Ping timeout: 256 seconds)
  323. # [09:49] * Quits: Lachy_ (~Lachlan@85.196.122.246) (Quit: Leaving)
  324. # [09:50] * Joins: Lachy (~Lachlan@85.196.122.246)
  325. # [09:55] <hsivonen> othermaciej: does aria-hidden actually work in Firefox for the use case you mentioned on the list?
  326. # [09:55] <othermaciej> hsivonen: does aria-hidden in Firefox cause content to be hidden from visual rendering?
  327. # [09:55] * Quits: GarethAdams|Home (~GarethAda@pdpc/supporter/active/GarethAdams) (Quit: GarethAdams|Home)
  328. # [09:56] <hsivonen> othermaciej: no, AFAIK
  329. # [09:56] <othermaciej> hsivonen: I assume not, because that would violate the ARIA spec
  330. # [09:56] * Joins: GarethAdams|Home (~GarethAda@5ac3fd1c.bb.sky.com)
  331. # [09:56] * Quits: GarethAdams|Home (~GarethAda@5ac3fd1c.bb.sky.com) (Changing host)
  332. # [09:56] * Joins: GarethAdams|Home (~GarethAda@pdpc/supporter/active/GarethAdams)
  333. # [09:56] <othermaciej> so I assume it does work in Firefox
  334. # [09:56] <hsivonen> othermaciej: but at least at some point, it didn't really prune anything from the accessible tree, either
  335. # [09:56] <othermaciej> hsivonen: that would presumably be a bug in their ARIA support...
  336. # [09:56] <hsivonen> othermaciej: it depended on the author specifying *[aria-hidden="true"] { display: none; }
  337. # [09:57] <othermaciej> hsivonen: I'm certainly not telling authors to include that, since it subverts the intent of the ARIA spec (as far as I can tell)
  338. # [09:57] <hsivonen> othermaciej: I guess "the intent of the ARIA spec" is tricky thing
  339. # [09:58] <othermaciej> my reading is that role="presentation" is supposed to skip an element (but still include its children) in the accessibility tree, and aria-hidden is supposed to hide the element *and* its children in the accessibility tree
  340. # [09:58] <hsivonen> what I've heard from the folks behind ARIA, *[aria-hidden="true"] { display: none; } in an author style sheet is very much something that is expected
  341. # [09:58] <hsivonen> othermaciej: that's my understanding of the spec, too.
  342. # [09:59] <othermaciej> having that in a UA stylesheet would definitely violate the ARIA spec
  343. # [09:59] <othermaciej> having it in an author stylesheet does not seem like a problem per se if you definitely want to visually hide all content that's also hidden from accessibility
  344. # [09:59] <hsivonen> othermaciej: I said "author style sheet" intentionally. Putting it in the UA style sheet would be clearly wrong.
  345. # [09:59] <othermaciej> however, the author should not *have* to specify that, to hide content in the accessibility tree
  346. # [10:00] <othermaciej> if the UA doesn't prune it from the accessibility tree unless the author includes "*[aria-hidden="true"] { display: none; }", that too would violate the ARIA spec (as I read it)
  347. # [10:00] <othermaciej> or at least, if the UA+AT combination still present the content in that case, then there is clearly a bug in at least one of them
  348. # [10:00] <hsivonen> I agree. Dunno what Firefox does now and what's considered a bug and what's a feature here.
  349. # [10:01] * Joins: mhausenblas (~mhausenbl@wg1-nat.fwgal01.deri.ie)
  350. # [10:01] <othermaciej> but like I said, I've been advising people to use it like a recursive version of role="presentation"
  351. # [10:03] <othermaciej> (the case this has particularly come up, the content does not actually need to work in other browsers, but that doesn't seem relevant to the actual issue of use cases)
  352. # [10:03] <hsivonen> othermaciej: has this been for iTunes-embedded WebKit?
  353. # [10:04] <othermaciej> can't really talk about the specific details, but feel free to speculate
  354. # [10:04] <hsivonen> I see
  355. # [10:04] <othermaciej> and I am sure we will need something similar in the future in content that works cross-browser
  356. # [10:05] <othermaciej> at which point I guess we will have to test in all the target browsers we care about and possibly report bugs
  357. # [10:05] * Joins: virtuelv (~virtuelv_@pat-tdc.opera.com)
  358. # [10:05] * Quits: virtuelv (~virtuelv_@pat-tdc.opera.com) (Client Quit)
  359. # [10:06] * Joins: virtuelv (~virtuelv_@pat-tdc.opera.com)
  360. # [10:07] * Joins: danbri (~danbri@unaffiliated/danbri)
  361. # [10:07] * Quits: GarethAdams|Home (~GarethAda@pdpc/supporter/active/GarethAdams) (Quit: GarethAdams|Home)
  362. # [10:14] <zcorpan> othermaciej: aaronlev said back in 2007 that aria-hidden did nothing in firefox but display:none hid from accessibility tree
  363. # [10:14] <zcorpan> othermaciej: dunno if it has changed
  364. # [10:15] <othermaciej> zcorpan: in Safari on Mac with VoiceOver, it definitely hides the whole subtree from the accessibility tree
  365. # [10:15] <othermaciej> I could test in Firefox on Mac
  366. # [10:15] <othermaciej> I have n easy way to test accessibility behavior on Windows though :-/
  367. # [10:15] * Joins: ttepasse (~ttepas--@ip-95-222-120-117.unitymediagroup.de)
  368. # [10:16] <zcorpan> there's an aapi debug tool for windows
  369. # [10:17] <zcorpan> inspect32.exe at http://www.microsoft.com/downloads/details.aspx?familyid=3755582a-a707-460a-bf21-1373316e13f0
  370. # [10:23] <othermaciej> my favorite thing about voiceover is that it shows what it's speaking, so you can even test with it muted...
  371. # [10:23] * Quits: Maurice (~ano@a80-101-46-164.adsl.xs4all.nl) (Ping timeout: 248 seconds)
  372. # [10:24] <othermaciej> hmm my copy of Firefox does not seem to support VoiceOver on Mac
  373. # [10:24] <othermaciej> I'm running 3.5.2
  374. # [10:24] <othermaciej> same thing with a minefiled alpha
  375. # [10:25] <hsivonen> othermaciej: IIRC, Mac accessibility of Firefox got frozen, because the developers didn't get enough information out of Apple a couple of years ago
  376. # [10:25] <othermaciej> hsivonen: do you know if Firefox supports accessibility at all on Mac?
  377. # [10:25] <othermaciej> I can't get VoiceOver to read anything but the title controls
  378. # [10:25] <hsivonen> othermaciej: there at least used to be code but IIRC it has never been turned on by default
  379. # [10:25] <othermaciej> guess I can't test this after all
  380. # [10:28] * Joins: Maurice (~ano@a80-101-46-164.adsl.xs4all.nl)
  381. # [10:28] <othermaciej> and in Chrome only the toolbar supports VoiceOver, not the content area
  382. # [10:29] <othermaciej> if anyone feels like testing on Windows, here is my test case:
  383. # [10:29] <othermaciej> <div>First paragraph.</div>
  384. # [10:29] <othermaciej> <div aria-hidden="true">Hidden from accessibility.</div>
  385. # [10:29] <othermaciej> <div>Third paragraph.</div>
  386. # [10:29] <othermaciej> (or on Linux)
  387. # [10:29] <othermaciej> Safari definitely reads the first and third paragraph, but not the second, and shows all three
  388. # [10:35] <zcorpan> othermaciej: from what i can tell with inspect32.exe, firefox does not hide the paragraph from msaa
  389. # [10:35] * Joins: surkov (~surkov@client-72-80.sibtele.com)
  390. # [10:38] * Quits: cedricv (~cedric@124.197.79.134) (Ping timeout: 245 seconds)
  391. # [10:39] <othermaciej> zcorpan: how about IE?
  392. # [10:40] <hsivonen> surkov: is it intentional that Firefox doesn't hide stuff from the accessible tree if aria-hidden=true?
  393. # [10:40] <surkov> smaug__, David Bolter tried to contact with Apple developers to get some help but no real success iirc
  394. # [10:40] <surkov> hsivonen: I think so, iirc this ARIA requirement
  395. # [10:40] <Hixie> jeez. i only got this laptop last week and i'm already nearly killing it again.
  396. # [10:40] <surkov> we set proper state on the accessible
  397. # [10:40] * Hixie moves his laptop further away from the tea cup
  398. # [10:40] <zcorpan> othermaciej: same as firefox
  399. # [10:41] <othermaciej> maybe on Windows it's the screen reader's job to hide aria-hidden stuff
  400. # [10:42] * Quits: danbri (~danbri@unaffiliated/danbri) (Remote host closed the connection)
  401. # [10:42] <othermaciej> (I don't actually know which of Safari or VoiceOver hides it on Mac, I tested end-to-end)
  402. # [10:42] <hsivonen> surkov: where is the requirement in ARIA?
  403. # [10:43] <surkov> hsivonen: it sounds the things were changed, now ARIA impl guide sais "# has one of the WAI-ARIA global states and properties but does not have the aria-hidden property set to "true". Hidden elements are not exposed to assistive technology."
  404. # [10:43] <surkov> http://www.w3.org/WAI/PF/aria-implementation/
  405. # [10:44] <zcorpan> "This is not used in mapping to platform accessibility APIs. Instead, use information from the layout system to determine if the element is hidden or not. Advisory: it is incorrect use of ARIA if an element with aria-hidden="true" is visible. The aria-hidden property is exposed only so that DOM-based assistive technologies can be informed of visibility changes. However, the layout will be able to provide the most complete set of all truly hidden
  406. # [10:44] <zcorpan> nodes."
  407. # [10:44] <zcorpan> (same url)
  408. # [10:44] <zcorpan> uh i mean https://developer.mozilla.org/En/ARIA_to_API_mapping
  409. # [10:44] <othermaciej> hmm, that seems to contradict what WAI-ARIA itself says
  410. # [10:45] <zcorpan> (but the other url seems to say the same thing)
  411. # [10:45] <hsivonen> zcorpan: English translation: aria-hidden is only for IE7+JAWS
  412. # [10:45] <othermaciej> "This allows http://www.w3.org/TR/wai-aria/terms#def_at or http://www.w3.org/TR/wai-aria/terms#def_useragent to properly skip http://www.w3.org/TR/wai-aria/terms#def_hidden elements in the document."
  413. # [10:45] <hsivonen> yay for UA-specific features
  414. # [10:45] <othermaciej> (boy that copied oddly)
  415. # [10:46] <othermaciej> so I wonder what is the correct way to do the deep equivalent of role="presentation"
  416. # [10:46] <othermaciej> should you just put role="presentation" on every element in the subtree? (But that still won't affect the text nodes)
  417. # [10:47] <surkov> hsivonen: actually it sounds aria-hidden doesn't make sense at all in the current aria impl guide edition
  418. # [10:47] <hsivonen> othermaciej: maybe send feedback to public-pfwg-comments@w3.org today? today is the DL for ARIA comments.
  419. # [10:47] <othermaciej> I wonder also why the implementor's guide apprently contradicts the spec on this
  420. # [10:47] <othermaciej> hsivonen: will attempt to
  421. # [10:48] <surkov> hsivonen: I'll ping David Bolter about this issue since he is a member of ARIA group
  422. # [10:48] <hsivonen> surkov: thanks
  423. # [10:49] <Hixie> othermaciej: the correct way is "don't have presentational elements"
  424. # [10:49] <othermaciej> I'm posting to public-pfwg-comments but I don't necessarily expect to have a prompt reply
  425. # [10:49] * Quits: Lachy (~Lachlan@85.196.122.246) (Quit: This computer has gone to sleep)
  426. # [10:50] <othermaciej> Hixie: we have some markup that would give bad results in a screen reader if you didn't hide part of it, but where the extra bits can't be tacked on via CSS
  427. # [10:50] * Joins: danbri (~danbri@dyn26-96.roaming.few.vu.nl)
  428. # [10:50] * Quits: danbri (~danbri@dyn26-96.roaming.few.vu.nl) (Changing host)
  429. # [10:50] * Joins: danbri (~danbri@unaffiliated/danbri)
  430. # [10:50] <Hixie> othermaciej: sounds like a bug for css
  431. # [10:50] <othermaciej> Hixie: so maybe your answer is "redesign the UI", but that does not seem like helpful advice
  432. # [10:51] <othermaciej> is it a goal for CSS to allow generated content with arbitrarily complex internal structure and styling?
  433. # [10:51] <othermaciej> I mean, you can use XBL to do that
  434. # [10:51] <othermaciej> but in that case you'd still need ARIA to control how your XBL binding is presented to a screen reader
  435. # [10:51] <Hixie> maybe the answer is xbl
  436. # [10:51] <Hixie> it's hard to know without examining the actual use case
  437. # [10:51] <othermaciej> which regrettably I am not at liberty to paste here
  438. # [10:52] <Hixie> i think we'll probably need to add something to xbl to indicate whether the accessibility apis are expected to crawl it or not
  439. # [10:52] <Hixie> really this should be solved by not using the same media type for screens as screen readers
  440. # [10:52] <Hixie> but that's another story
  441. # [10:53] <othermaciej> I think you may need more control than binary "yes" or "no" over the accessibility behavior
  442. # [10:53] <othermaciej> though I suppose reading either the surface markup or the contents of the XBL binding which may internally use ARIA would cut it
  443. # [10:53] <othermaciej> but you'd still need a proper mechanism to hide parts of the XBL shadow tree from screen readers
  444. # [10:54] <othermaciej> using a different media type would be cleaner CSS wise, but would require generating two render trees to have both visual and audio presentation at the same time
  445. # [10:54] <othermaciej> (which is the only mode VoiceOver has, so you can work with or help a blind person by looking over their shoulder)
  446. # [10:56] * Joins: ROBOd (~robod@89.122.216.38)
  447. # [11:03] * Quits: danbri (~danbri@unaffiliated/danbri) (Remote host closed the connection)
  448. # [11:03] <surkov> I agree XBL markup should have a stuffs to control its accessible tree, in firefox we some basic stuffs to do this. For example, accessible for bound XBL element can provide accessible name or XBL can allow or deny accessible children in its subtree
  449. # [11:04] <surkov> ideally I think XBL should special markup to control all this stuffs
  450. # [11:05] * Joins: Lachy (~Lachlan@pat-tdc.opera.com)
  451. # [11:10] * Joins: danbri (~danbri@dyn26-96.roaming.few.vu.nl)
  452. # [11:10] * Quits: danbri (~danbri@dyn26-96.roaming.few.vu.nl) (Changing host)
  453. # [11:10] * Joins: danbri (~danbri@unaffiliated/danbri)
  454. # [11:20] <othermaciej> hsivonen, zcorpan, surkov: http://lists.w3.org/Archives/Public/public-pfwg-comments/2010JanMar/0038.html
  455. # [11:20] <hsivonen> http://www.floodgap.com/software/classilla/ wow
  456. # [11:20] <othermaciej> surkov: I think the markup to control accessible presentation of XBL should be (a possibly extended version of) ARIA, and it should also be usable outside XBL, so that it's viable to use DIV soup as fallback to XBL during the transition
  457. # [11:21] <othermaciej> I would not want to see a whole second form of accessibility markup
  458. # [11:21] <othermaciej> hsivonen: neat parlor trick, I guess
  459. # [11:23] <annevk> othermaciej, if origin is a unique identifier the result is Origin: null
  460. # [11:24] <annevk> and my idea was that it would support preflights as well
  461. # [11:24] <annevk> because that was the plan for Level 2 of their protocol anyway
  462. # [11:25] * Quits: gavin_ (~gavin@firefox/developer/gavin) (Ping timeout: 246 seconds)
  463. # [11:26] <Hixie> ok well i've dealt with all the websocket feedback that is not on the hybi list and all the feedback on the hybi list up to the 28th of this month
  464. # [11:26] <Hixie> all that's left is GIANT threads of pain
  465. # [11:26] * Joins: gavin_ (~gavin@firefox/developer/gavin)
  466. # [11:26] <Hixie> i guess i go through and delete the process ones first
  467. # [11:26] <othermaciej> annevk: should there be a "force no preflight" flag anyway to define XDR sanely?
  468. # [11:26] <othermaciej> annevk: I guess XDR just doesn't allow sending any requests that would cause preflight, so nevermind
  469. # [11:27] <othermaciej> Hixie: I tried to move discussion into the technical threads
  470. # [11:27] <Hixie> yeah that helps a lot, indeed
  471. # [11:28] <Hixie> i like the subthread with the subject line "Process, was: Technical feedback. was: Process"
  472. # [11:28] <othermaciej> Hixie: I have some potentially bad news, which is that I came up with a way to do the handshake that is both much more secure and likely much easier to use in existing server software
  473. # [11:28] <Hixie> oh?
  474. # [11:28] <othermaciej> Hixie: is it too late to consider changes to the handshake?
  475. # [11:28] <Hixie> depends how much of an improvement it is
  476. # [11:28] <Hixie> what is the improvement?
  477. # [11:29] <othermaciej> ok, so as I understand it, the security goal of the "exact binary match" requirement on the first part of the header is to reduce the risk of abusing unmodified vanilla HTTP servers, or non-HTTP resources
  478. # [11:29] <zcorpan> othermaciej: thanks
  479. # [11:29] <Hixie> othermaciej: more or less, yeah
  480. # [11:29] <othermaciej> so there's two problems with the current setup:
  481. # [11:29] <annevk> othermaciej, you can prevent sending a preflight by preventing making requests that result in one
  482. # [11:30] <annevk> (you can force a preflight if you want)
  483. # [11:30] <othermaciej> 1) Hardcoding not just the status line, but also a few of the initial headers, is apparently a pain in the ass to work into existing HTTP stacks in servers (I'm willing to take their word for it).
  484. # [11:30] <Hixie> i don't buy that at all, but i have heard it, yes
  485. # [11:30] <othermaciej> 2) The handshake response consists exclusively of fixed contents, and literal character-for-character echoes of parts of the handshake request
  486. # [11:31] <Hixie> right
  487. # [11:31] <othermaciej> this means that if you can trick any server into echoing back exact text of choice in response to a WebSocket request, you are hosed
  488. # [11:31] <othermaciej> a better method would be requiring something in the response that proves you saw the request, but is not predictable in advance
  489. # [11:31] <Hixie> yes, though i'm not aware of any case where it is possible, and i've looked
  490. # [11:31] <othermaciej> so here is my proposal:
  491. # [11:32] <Hixie> woah woah
  492. # [11:32] <Hixie> no
  493. # [11:32] <Hixie> we don't want to require that the server parse the request
  494. # [11:32] <Hixie> in fact in the common case the server won't parse the request at all
  495. # [11:32] <othermaciej> - Include a nonce in the request
  496. # [11:32] <othermaciej> - Server includes a hash of the nonce plus the request origin in the response status line
  497. # [11:33] <othermaciej> - Only the status line is strictly constrained, not response headers
  498. # [11:33] <othermaciej> This is clearly more robust against cross-protocol attacks
  499. # [11:33] <Hixie> unless you're aware of a web service that can be tricked into sending back the handshake, that seems unnecessarily complicated
  500. # [11:34] <Hixie> right now in the most common case a websocket server will send the handshake before the client does
  501. # [11:34] <othermaciej> it's actually pretty trivial
  502. # [11:34] <othermaciej> cross-protocol attacks do happen and it's hard to predict them
  503. # [11:34] <Hixie> it's not as trivial as not doing anything :-)
  504. # [11:34] <othermaciej> witness recent firefox-based attack against IRC
  505. # [11:35] <Hixie> i agree that they happen, but as far as i've been able to tell, what we have currently is sufficient
  506. # [11:35] <othermaciej> what I described is far more robust against cross-protocol attacks, and likely easier to do in the context of integrating with an existing Web server
  507. # [11:35] <Hixie> actually i don't see why it's any more secure
  508. # [11:35] <othermaciej> again, anything where the necessary handshake response is predictable is much more robust
  509. # [11:35] <Hixie> why can't you just cause the server to echo back the right hash?
  510. # [11:35] <othermaciej> because you can't predict the correct handshake response
  511. # [11:35] <Hixie> why not?
  512. # [11:36] <othermaciej> because you (the JS-level attacker) do not know the nonce
  513. # [11:36] <Hixie> oh the UA makes up the nonce, ok
  514. # [11:36] <othermaciej> it is generated by the UA
  515. # [11:36] <Hixie> that seems like a lot more complexity than what we have now
  516. # [11:36] <Hixie> i agree it's easy for experienced programmers
  517. # [11:36] <othermaciej> it doesn't even have to be a cryptographically secure hash, in fact, it might be an improvement even if you don't hash the nonce at all
  518. # [11:36] <Hixie> and even more non-experienced ones
  519. # [11:36] <Hixie> s/more/most/
  520. # [11:37] <Hixie> (or at least many0
  521. # [11:37] <Hixie> but it is still more work than nothing
  522. # [11:37] <Hixie> i'm not aware of any protocol where you can cause the server to echo back the handshake or even get close
  523. # [11:38] <Hixie> especially given how constrained the client's part of the handshake is
  524. # [11:38] <othermaciej> and putting the unpredictable part of the required handshake response in the status line makes it slightly more robust against header injection attacks on normal HTTP services
  525. # [11:38] <othermaciej> right, the client can only control the URL part
  526. # [11:39] <othermaciej> however, what I described is secure at a stronger level than "I'm not aware of any hackable services currently"
  527. # [11:39] <Hixie> agreed, but it's not enough of an improvement to throw away the half-dozen or so implementations
  528. # [11:39] <Hixie> (if you had suggested this six months ago, it'd be in without question)
  529. # [11:40] <othermaciej> why don't we check if server and client implementors think it's enough of an improvement?
  530. # [11:40] <Hixie> go for it
  531. # [11:40] <othermaciej> afaik the only client implementation that has actually shipped is Chrome, and they specifically said they weren't looking to prematurely lock in the protocol
  532. # [11:40] <Hixie> i'm certainly happy to improve matters if people are willing to rewrite their code
  533. # [11:40] <Hixie> though i really don't like requiring that the server have to do work in the handshake
  534. # [11:40] <Hixie> isn't there some way we can get around that?
  535. # [11:41] <othermaciej> I posted a vague form of my suggestion on the hybi list
  536. # [11:41] <othermaciej> maybe I should pull it out of the thread and/or post it on whatwg
  537. # [11:41] <annevk> man, all this hybi crap in my inbox
  538. # [11:41] <othermaciej> maybe also get abarth's opinion
  539. # [11:41] <annevk> and now you guys are spamming this channel with it as well :p
  540. # [11:42] <Hixie> actually the more i think of this the less i like it... i don't like making the server have to read the client's data
  541. # [11:42] <Hixie> currently you can make a really simple server that completely ignores the server if you want to do something simple (similar to eventsource)
  542. # [11:42] <Hixie> er, ignores the client
  543. # [11:42] <othermaciej> Hixie: if a server accepts requests from multiple origins, doesn't it have to read the client's data anyway?
  544. # [11:42] <Hixie> yes, but that's likely to be much rarer
  545. # [11:43] * Joins: mat_t (~mattomasz@91.189.88.12)
  546. # [11:44] <othermaciej> but the fact that it's needed in that case makes me think it is not such a huge burden
  547. # [11:44] <Hixie> i didn't say it was a huge burden, i said it was a burden
  548. # [11:44] <Hixie> right now you can literally never read a byte from the client
  549. # [11:44] <othermaciej> the part that the server has to read, check and echo-back isn't even in the fixed-order-and-capitalization part of the request, it's in the freeform part
  550. # [11:45] <othermaciej> is it not required for servers to check correctness of the client part of the handshake?
  551. # [11:45] <Hixie> no
  552. # [11:45] <Hixie> they can totally ignore the client
  553. # [11:45] <othermaciej> so a server could respond with WebSocket data even if you don't include Upgrade: WebSocket Connection: Upgrade?
  554. # [11:45] <Hixie> yes
  555. # [11:46] <othermaciej> wouldn't such a service be at risk of being exploited via XHR?
  556. # [11:46] <Hixie> comnnechow?
  557. # [11:46] <Hixie> er
  558. # [11:46] <Hixie> how?
  559. # [11:46] <Hixie> try connecting to damowmow.com:11111
  560. # [11:46] <Hixie> how can XHR exploit that?
  561. # [11:47] <othermaciej> If it does not check the handshake request, I bet I can send it a GET with some preformatted messages as the body
  562. # [11:47] <othermaciej> even if I can't get the results back, that's still an integrity violation
  563. # [11:47] <Hixie> ?
  564. # [11:48] <othermaciej> if the service accepts commands of some kind via WebSocket that have side effects, rather than just reporting data, you could use XHR to abuse it if it does not check the handshake request
  565. # [11:48] <Hixie> if the server ignores the client, there's really not much to abuse
  566. # [11:48] <surkov> othermaciej: thanks for the link, I looked at the Firefox code and we do nothing with aria-hidden. And it sounds it goes with the spec :). However I'm agree it's not clear why ARIA hidden is at all.
  567. # [11:48] <othermaciej> at least in a browser that supports CORS
  568. # [11:49] <othermaciej> surkov: it doesn't sound to me like that is correct per the actual spec
  569. # [11:49] <Hixie> if the server ignores the client handshake but does listen to frames, then yes, you could send frames, just like you could if you just used zombies to send data there
  570. # [11:49] <Hixie> that doesn't seem like a particular problem
  571. # [11:49] <annevk> XHR cannot do GET with a body
  572. # [11:49] <annevk> unless the UA is broken
  573. # [11:50] <othermaciej> it's a problem if the server uses Cookies from the request but does not otherwise check correctness
  574. # [11:50] <surkov> othermaciej: the spec sais aria-hidden="true" should be on hidden elements, aria-hidden="false" on visible elements so aria-hidden does affect on nothing
  575. # [11:50] <othermaciej> annevk: good point - do any cross-site POSTs count as "simple requests"
  576. # [11:50] <annevk> yes
  577. # [11:50] <annevk> if the Content-Type header matches <form enctype> allowed values
  578. # [11:51] <Hixie> othermaciej: yes, if you read cookies you should make sure you're getting a websocket handshake. but then we're far past "ignoring the client", and checking the handshake is not a burden any more, since you're already parsing it and everything.
  579. # [11:51] <othermaciej> so if you're not checking correctness of the handshake request you presumably don't check the method either
  580. # [11:51] <othermaciej> Hixie: it seems to me that if you are completely ignoring the client, you don't really need a full duplex connection
  581. # [11:52] <Hixie> othermaciej: *shrug*
  582. # [11:52] <othermaciej> if you listen to the messages, then you'd better check the handshake
  583. # [11:52] <Hixie> i doubt most servers will
  584. # [11:52] <othermaciej> the spec should at least mention this in security considerations, even if it does not mandate rejecting a bad handshake
  585. # [11:53] <othermaciej> if most servers will not, then we effectively have an insecure protocol
  586. # [11:53] <Hixie> not much we can do about that as far as i can tell
  587. # [11:53] <othermaciej> it's always possible to make a buggy server, and indeed we can't prevent that
  588. # [11:54] <othermaciej> but:
  589. # [11:54] <othermaciej> a) the spec could require the server to check the handshake for correctness, even if we know some won't listen
  590. # [11:54] <Hixie> sure, i can add that, at least for the case where you read cookies
  591. # [11:55] <othermaciej> b) even if it does not require it, the spec could recommend checking the handshake for correctness in the case where you look at any credentials and/or perform any side effects in response to messages
  592. # [11:55] * Quits: wakaba_ (~wakaba_@119-228-219-41.eonet.ne.jp) (Ping timeout: 264 seconds)
  593. # [11:55] <othermaciej> c) my nonce proposal would actually force servers to read the handshake and process it (though it can't force them to check it is really correct, I suppose)
  594. # [11:56] * Joins: wakaba_ (~wakaba_@122x221x184x68.ap122.ftth.ucom.ne.jp)
  595. # [11:56] <othermaciej> if a server truly ignores all input, then it could work just as well over EventSource with less trouble, so I am not sure WebSocket has to make that use case extra easy
  596. # [11:57] <Hixie> i think requiring the non-sensitive cases to be harder just to secure the sensitive cases is making the wrong tradeoff, personally
  597. # [11:57] <Hixie> what i'd really like to do is throw out the HTTP compatibility altogether
  598. # [11:57] <Hixie> and go back to ports 81 and 815
  599. # [11:58] <othermaciej> I think the sensitive use cases are some of the most important
  600. # [11:58] <Hixie> and then just have people use port 443 as they will anyway
  601. # [11:58] <othermaciej> chat is clearly a case where you care about integrity, not just confidentiality
  602. # [11:58] <othermaciej> (i.e. you don't want random third parties to be able to forge chat messages as you)
  603. # [11:59] <othermaciej> I think security is one area where I would be very hesitant to cut corners, even if it makes things easier for the use cases where you don't need any security
  604. # [12:00] <Hixie> well if we really want security to that level, we should design the handshake with that in mind and stop using HTTP
  605. # [12:00] <Hixie> trying to retrofit it into HTTP isn't ideal
  606. # [12:01] <Hixie> and will always leave us vulnerable to the fake-websocket-via-form-post attack
  607. # [12:01] <othermaciej> retrofitting it into HTTP makes it easier to share a host:port with a web server
  608. # [12:01] <Hixie> i thought so too, but apparently not
  609. # [12:01] <Hixie> because it makes people think they should use their HTTP output code
  610. # [12:02] <othermaciej> well it's really the input side of the handshake that matters
  611. # [12:02] <othermaciej> i.e. the request from the client to the server
  612. # [12:03] <othermaciej> the server response could be anything, the fact that it takes the form of an HTTP 101 request is just following things to their logical conclusion
  613. # [12:03] <othermaciej> that being said, I think making the handshake response unpredictable would do more to improve security than making the handshake non-HTTP
  614. # [12:04] <Hixie> making the handshake non-HTTP could solve the entire attack scenario you described
  615. # [12:04] <Hixie> which is a real attack scenario
  616. # [12:04] <Hixie> unlike echoing the handshake, which is theoretical at this point
  617. # [12:04] <Hixie> so i'd say it's the other way around
  618. # [12:04] <othermaciej> actually, if a non-http handshake still allowed the server to ignore the client handshake request, it would do nothing to prevent my attack scenario
  619. # [12:06] <Hixie> nah, it'd be easy to design it in a way that it could... e.g. terminate the handshake with \n, so that the first frame would be corrupt
  620. # [12:07] <othermaciej> then you would have to hard fail on a bad frame instead of ignoring it and moving on - does the protocol require that currently?
  621. # [12:07] * Quits: danbri (~danbri@unaffiliated/danbri) (Remote host closed the connection)
  622. # [12:07] <Hixie> if you're writing a server lazily, that's by far the easiest thing to do
  623. # [12:08] <Hixie> the spec does explain how you can go the extra mile and ignore unknown frames, but it's extra code, like checking the handshake
  624. # [12:08] <othermaciej> if the frame boundary is a fixed sentinel, then it's easiest to scan for the sentinel
  625. # [12:08] <Hixie> we could arrange for the failure to be with a length-delimited frame and for the length to be gigantic
  626. # [12:08] <Hixie> by flipping the meanings of the high bits in the frame typesa and the length marker
  627. # [12:10] <Hixie> if we do your nonce idea, we could put the nonce in a specific header that would only be included with websockets
  628. # [12:10] <Hixie> so that if you can't find it, you can't send it
  629. # [12:10] <othermaciej> request-wise you mean?
  630. # [12:10] <Hixie> yeah
  631. # [12:10] * Quits: Rik` (~Rik`@pha75-2-81-57-187-57.fbx.proxad.net) (Quit: Rik`)
  632. # [12:10] <Hixie> that might make it more likely that the server implementors would fail if they can't find it
  633. # [12:10] <othermaciej> I agree that it should go in a request header that is only sent by WebSocet
  634. # [12:11] <othermaciej> er *WebSocket
  635. # [12:11] <othermaciej> I think I will ask abarth for his opinion on these issues
  636. # [12:12] <othermaciej> both whether the attacks I described are worth worrying about, and whether a nonce mechanism would be an effective defense
  637. # [12:21] <Hixie> one of my concerns with requiring that authors read the handshake is that one of the advantages of them NOT reading the handshake is they won't just echo back the origin
  638. # [12:21] <Hixie> i'm worried that authors will just do that instead of echoing back only their own origin
  639. # [12:24] <othermaciej> servers that accept connections from multiple origins actually *do* have to do that, after checking the origin, but you are right that it may affect the likelihood of making a mistake in the single-origin case
  640. # [12:26] <othermaciej> though of course you could write the server-side algorithms to say otherwise (i.e. have different ones for single-origin and multi-origin case, where the former only sends the fixed allowed origin after separately comparing it to the handshake origin)
  641. # [12:27] <Hixie> that's more or less what the spec does
  642. # [12:27] <Hixie> the parsing is in a separate (later) section
  643. # [12:27] <othermaciej> people using stock tools for this (like mod_pywebsocket) might be less likely to make that mistake, if the framework asks you to declare allowed origins to it up front
  644. # [12:28] <othermaciej> then the framework could make sure to both check against your list and echo back
  645. # [12:28] <othermaciej> I guess the main risk there would be if the framework has an "allow any origin" mode, authors might switch that on inadvertantly
  646. # [12:28] <Hixie> or indeed if they default to that :-)
  647. # [12:29] <Hixie> given how easy it is to write a websocket server, i don't know how much point there is to a websocket framework really
  648. # [12:29] <Hixie> (not having to parse the header is a big part of that)
  649. # [12:30] <othermaciej> well, if you want something that operates on a large scale, you probably need some sort of framework, even if not for parsing the header
  650. # [12:30] <othermaciej> anyway - frameworks should probably either default to failing if you don't specify allowed origins, or default to allowing the same origin as the WEb sever they are running inside, if their purpose is to share a host:port with an existing web server
  651. # [12:34] <hsivonen> what's blocking bytes in JS?
  652. # [12:34] <annevk> TC39
  653. # [12:34] <annevk> doh
  654. # [12:36] * Joins: cedricv (~cedric@124.197.77.11)
  655. # [12:37] * Joins: Michelangelo (~Michelang@193.205.162.69)
  656. # [12:39] * Joins: erlehmann (~erlehmann@82.113.106.160)
  657. # [12:39] * Joins: Utkarsh (~admin@117.201.88.150)
  658. # [12:39] * Joins: danbri (~danbri@unaffiliated/danbri)
  659. # [12:40] <Hixie> othermaciej: btw, re having acks in the protocol, it's relatively easy to add them at the application level, but it turns out to be much harder to add them at the websocket level. Basically all you need is to number your messages, and tell the server what the last message was you got when you reconnect.
  660. # [12:41] <Hixie> othermaciej: but if you do that at the websocket level, you've no way to know if the script _actually_ received the message
  661. # [12:41] <othermaciej> Hixie: right - I'm wondering what the practical benefit (if any) would be of doing it at the websocket level
  662. # [12:41] <othermaciej> obviously, at the websocket level you could only generate transport-level acks, not guarantee actual end-to-end delivery to the app at either end
  663. # [12:41] * Joins: MikeSmith (~MikeSmith@EM114-51-69-233.pool.e-mobile.ne.jp)
  664. # [12:41] <Hixie> yeah
  665. # [12:42] <Hixie> one thing that would help is having a flag in the onclose event to say whether it was an orderly close or not
  666. # [12:42] <othermaciej> I'm wondering if a clean shutdown handshake is something that benefits from being at the protocol level
  667. # [12:42] <Hixie> TCP already does that for us, no?
  668. # [12:42] <othermaciej> it sounds like if you don't use one at the app level, you have to do the same kind of "lingering close" dance as HTTP servers, or you may lose mssages
  669. # [12:43] <othermaciej> some of the content on the thread implies that the TCP close handshake is broken, and http servers have to work around it in crazy ways
  670. # [12:43] <othermaciej> I do not have enough expertise to check the accuracy of those claims
  671. # [12:44] <othermaciej> obviously you can do a close handshake at the subprotocol level if you want, but if every subprotocol has to do it to be remotely correct, then maybe it should be in the base protocol
  672. # [12:44] <Hixie> i guess i'd have to understand the use case better
  673. # [12:45] <Hixie> to have an opinion
  674. # [12:45] <othermaciej> apparently, if you just do a normal close of your socket when you are done sending, in some cases it can make the client drop data that it has already ACKd at the TCP level
  675. # [12:46] <othermaciej> in other words, you might lose the last few messages even if there is no actual disruption of service
  676. # [12:46] <othermaciej> Web servers do something crazy that I don't understand to work around this
  677. # [12:46] <othermaciej> it would be nice if protocol reliability could just rely on TCP-level acks, but besides the close issue, there's the problem that OS TCP stacks apparently don't expose how much has been ACK'd
  678. # [12:47] <othermaciej> which seems like a waste...
  679. # [12:47] <othermaciej> TCP is supposed to provide a reliable stream, but the next level up has to reinvent reliability
  680. # [12:47] <Hixie> wait, back up
  681. # [12:47] <Hixie> who's closing?
  682. # [12:47] <Hixie> client or server?
  683. # [12:47] <othermaciej> the server
  684. # [12:47] <Hixie> and why?
  685. # [12:47] <Hixie> ah
  686. # [12:47] <othermaciej> the server has sent the final message it intends to
  687. # [12:47] <othermaciej> closes the socket
  688. # [12:47] <othermaciej> that can make the client lose the last few messages
  689. # [12:47] <Hixie> so the server thinks it's done but it wants to make sure it gets all the client's messages?
  690. # [12:48] <othermaciej> (apparently)
  691. # [12:48] <Hixie> well there's no way to do that except at the application layer, since you don't know what the app wants to send but hasn't sent yet
  692. # [12:48] <othermaciej> not messages from the client
  693. # [12:48] <othermaciej> what people claim is this:
  694. # [12:48] <othermaciej> - the server sends some messages to the client
  695. # [12:48] <othermaciej> - the server gets TCP-level ACKs
  696. # [12:48] <othermaciej> - the server closes the socket
  697. # [12:49] <othermaciej> in this case, TCP requirements can cause the client to forcibly drop the last few messages
  698. # [12:49] <Hixie> oh i see
  699. # [12:49] <othermaciej> and you have to do some "lingering close" trick to avoid it
  700. # [12:49] <Hixie> wow, really?
  701. # [12:49] * Joins: myakura (~myakura@p3213-ipbf4202marunouchi.tokyo.ocn.ne.jp)
  702. # [12:49] <Hixie> that's, ah, stupid
  703. # [12:49] <Hixie> how about we fix TCP
  704. # [12:49] <othermaciej> it sounds like a huge bug in TCP to me
  705. # [12:49] <othermaciej> but I think "fix TCP" is out of the range of the practical
  706. # [12:49] <annevk> someone asked about TCP5 from us
  707. # [12:50] <foolip> Hixie: cool, glad you enjoyed it
  708. # [12:50] <annevk> jokingly maybe
  709. # [12:50] <othermaciej> whereas "shutdown handshake" is viable
  710. # [12:50] <hsivonen> Hixie: did you happen to find out and document what exactly WebKit does with initial about:blank?
  711. # [12:50] * annevk forgot who it was
  712. # [12:50] <foolip> Hixie: it turned out that the new RDF extraction algorithm is a bit b0rked, will send mail about that tonight hopefully
  713. # [12:50] * Quits: mat_t (~mattomasz@91.189.88.12) (Quit: Leaving)
  714. # [12:50] <Hixie> hsivonen: not in any more detail than what the spec says now
  715. # [12:50] <Hixie> foolip: cool
  716. # [12:50] <othermaciej> I wonder if SCTP fixes this problem
  717. # [12:50] <hsivonen> Hixie: ok.
  718. # [12:51] <hsivonen> clearly, what the spec says now isn't what WebKit does
  719. # [12:51] <hsivonen> http://hsivonen.iki.fi/test/moz/about-blank-load.html
  720. # [12:52] <hsivonen> this whole about:blank has been so sad. I reached my timeout of fixing it the right way on the critical path of HTML5 parser enablement
  721. # [12:52] <hsivonen> so I'm going to paper over it for now
  722. # [12:52] <hsivonen> but I'd still like to fix it the right way once the HTML5 parser is on by default on trunk
  723. # [12:52] <othermaciej> Hixie: the "Reliable message delivery" subthread had the explanations of the socket close issue
  724. # [12:52] <othermaciej> http://www.ietf.org/mail-archive/web/hybi/current/msg01030.html
  725. # [12:53] <othermaciej> http://www.ietf.org/mail-archive/web/hybi/current/msg01044.html has more details
  726. # [12:53] <hsivonen> (that is, even what the spec says now and what the spec says plus load event are too much on the critical path)
  727. # [12:54] <hsivonen> fwiw, the above demo alerts "Different body" in Gecko, WebKit and Trident
  728. # [12:54] <hsivonen> and "Same body" in Opera
  729. # [12:54] <othermaciej> hsivonen: does the spec require too much relative to what WebKit does, or too little?
  730. # [12:54] * Joins: mat_t (~mattomasz@91.189.88.12)
  731. # [12:54] <hsivonen> othermaciej: breaks enough test cases that poking at about:blank is going to be a test case whack-a-mole project on its own right
  732. # [12:55] <othermaciej> I am surprised that this echoed "Different body"
  733. # [12:55] * Joins: breakmau5 (~breakz@erft-5d809f18.pool.mediaWays.net)
  734. # [12:55] <hsivonen> getting the HTML5 parser on by default is big enough a test case whack-a-mole project already
  735. # [12:56] * Quits: MikeSmith (~MikeSmith@EM114-51-69-233.pool.e-mobile.ne.jp) (Read error: Connection reset by peer)
  736. # [12:56] <othermaciej> hsivonen: I figured out why it says "Different body" in WebKit
  737. # [12:56] * Joins: MikeSmith (~MikeSmith@EM114-51-180-41.pool.e-mobile.ne.jp)
  738. # [12:56] <othermaciej> hsivonen: it's not because the about:blank load is async, it's because the load event listener runs before the second script
  739. # [12:57] <hsivonen> othermaciej: does the event loop spin or do you fire a sync load event?
  740. # [12:58] <othermaciej> hsivonen: I don't know code-wise why it happens (either explanation is plausible), but I verified that the end() function runs before the second script by adding more alerts
  741. # [12:58] <foolip> http://dev.w3.org/rdfa/specs/rdfa-dom-api.html
  742. # [12:58] <hsivonen> othermaciej: ok. thanks
  743. # [12:59] <othermaciej> hsivonen: I believe we do fire a load event from the middle of parsing without spinning the event loop
  744. # [13:00] <othermaciej> foolip: I am amused that the "Triple" interface has 6 things in it...
  745. # [13:00] <hsivonen> othermaciej: eww. I really don't want to go down that road.
  746. # [13:00] <othermaciej> hsivonen: I just think that is how our code happens to work - no idea if this is required
  747. # [13:00] <othermaciej> hsivonen: I think it is actually as a result of DOM insertion, not parsing, that the load event fires
  748. # [13:00] * Joins: MikeSmithX (~MikeSmith@EM114-51-14-177.pool.e-mobile.ne.jp)
  749. # [13:01] * Quits: MikeSmith (~MikeSmith@EM114-51-180-41.pool.e-mobile.ne.jp) (Ping timeout: 248 seconds)
  750. # [13:01] <hsivonen> othermaciej: ok. I still want to avoid sync events while the parser is on the call stack
  751. # [13:01] <othermaciej> and I can see the wisdom of that
  752. # [13:01] <othermaciej> I honestly have no idea if this behavior is needed for Web compat
  753. # [13:01] <othermaciej> I'm just trying to describe what we do
  754. # [13:02] <hsivonen> sure. thanks
  755. # [13:02] <Dashiva> So the IETF doesn't like cool URIs? Interesting
  756. # [13:02] <annevk> that's nothing new
  757. # [13:02] <annevk> though tools.ietf.org generally does
  758. # [13:02] <annevk> so I use that
  759. # [13:03] <foolip> othermaciej: well, (object, datatype, language) is really all part of the object, and children is just a bit odd. I assume this won't be the final draft.
  760. # [13:03] <MikeSmithX> othermaciej: about the H:TML draft, I will get an announcement out to public-html shortly
  761. # [13:03] <MikeSmithX> sorry for the delay, I made quite a lot of changes over the weekend
  762. # [13:04] * Joins: seventh (seventh@189.59.183.86.dynamic.adsl.gvt.net.br)
  763. # [13:04] <hsivonen> whoa. the load event is sync in IE8, too
  764. # [13:05] * Quits: MikeSmithX (~MikeSmith@EM114-51-14-177.pool.e-mobile.ne.jp) (Read error: Connection reset by peer)
  765. # [13:06] <Hixie> othermaciej: btw, the two framing types is a result of targetting novice authors. SPDY is intended to be implemented by experts only.
  766. # [13:06] * Joins: Phae (~phaeness@gatea.mh.bbc.co.uk)
  767. # [13:06] * Joins: MikeSmithX (~MikeSmith@EM114-51-25-129.pool.e-mobile.ne.jp)
  768. # [13:07] <Hixie> othermaciej: also, it's really easy to do multiplexing if your subprotocol supports it, just use a shared worker
  769. # [13:07] <othermaciej> Hixie: at this point I'm a little frightened of the thought of novice authors implementing the protocol by hand - I really hope people make good frameworks for Perl/Python/Ruby/Java/etc
  770. # [13:08] <Hixie> why?
  771. # [13:08] <Hixie> the protocol is trivial
  772. # [13:08] * Joins: cpearce (~cpearce@ip-118-90-91-135.xdsl.xnet.co.nz)
  773. # [13:08] <othermaciej> it seems like there are many opportunities for subtle mistakes, when you dig into the details
  774. # [13:09] <Hixie> i've tried to minimise those
  775. # [13:09] <Hixie> obviously it's impossible to make a protocol idiot-proof, but it's a lot harder to screw up than most
  776. # [13:10] <othermaciej> it's easier to make an API (more) idiot-proof than a protocol, so I hope people do so
  777. # [13:11] <othermaciej> for multiplexing, yes, you could have clients coordinate via a SharedWorker or a shared iframe
  778. # [13:12] <othermaciej> it also seems to me that transparent multiplexing could be added down the line (between the UA and the server, invisible to the JS client code)
  779. # [13:12] <othermaciej> since the handshakes allow custom headers, and since you could introduce new frame types
  780. # [13:12] <Hixie> yes, indeed
  781. # [13:13] <othermaciej> voluntary multiplexing also doesn't work if your clients might be running from different origins
  782. # [13:13] <othermaciej> but sharing a connection in such a case is scarier security-wise
  783. # [13:13] <othermaciej> bugs in doing framing become much more severe issues
  784. # [13:13] <Hixie> well, shared workers will be cross-origin capable in due course
  785. # [13:13] <Hixie> which would solve that issue
  786. # [13:14] <othermaciej> I think transparent multiplexing would be cool, but it seems to me that it could be a 2.0 feature if deployment experience with WebSocket shows it is useful
  787. # [13:14] <Hixie> indeed
  788. # [13:14] <othermaciej> likewise for transparent compression
  789. # [13:14] <othermaciej> or whatever
  790. # [13:14] <Hixie> yup
  791. # [13:16] <annevk> what's the idea with the frame types though? lots of people seem to have in mind non-browser use cases, will they fork some of the frame types?
  792. # [13:16] * Quits: wakaba_ (~wakaba_@122x221x184x68.ap122.ftth.ucom.ne.jp) (Quit: Leaving...)
  793. # [13:17] <Hixie> no idea
  794. # [13:17] <Hixie> non-browser use cases seems tupid to me
  795. # [13:17] <Hixie> s/seems tupid/seem stupid/
  796. # [13:17] <Hixie> i mean, just use TCP
  797. # [13:17] <Hixie> websockets is a terrible protocol if you're not trying to use this with JS
  798. # [13:17] <Dashiva> Hixie: I think the idea is to reuse existing services made for browsers in websocket
  799. # [13:18] <Hixie> in that case, there won't be forked frame types
  800. # [13:18] * Joins: MikeSmithXX (~MikeSmith@EM114-51-180-3.pool.e-mobile.ne.jp)
  801. # [13:18] <annevk> well, stupid or not, the people on the hybi list wanna do it
  802. # [13:19] <Hixie> othermaciej: oh, the reason the fixed part of the handshake is more than one line long is to ensure that you have to cause the server to echo something with a newline in it (which you can't send in the request)
  803. # [13:19] <annevk> i'm not sure it's very productive to label them stupid
  804. # [13:19] <annevk> that's prolly also what part of the clash is coming from
  805. # [13:20] <annevk> they have completely different use cases in mind
  806. # [13:20] <Hixie> i have yet to see a good reason to use websocket rather than TCP for something where there's no browser as possible client
  807. # [13:20] <othermaciej> Hixie: I see - in that case, I think a nonce would definitely remove the benefit of having a newline in the fixed part
  808. # [13:20] <Hixie> (indeed i've yet to see a reason at all)
  809. # [13:20] <Hixie> othermaciej: yes
  810. # [13:20] <Hixie> othermaciej: probably
  811. # [13:20] * Quits: MikeSmithX (~MikeSmith@EM114-51-25-129.pool.e-mobile.ne.jp) (Ping timeout: 272 seconds)
  812. # [13:20] <othermaciej> I could imagine using WebSocket if you have browser clients *and* other clients
  813. # [13:21] <annevk> i think the reason for these server developers is that they can provide a easy-to-use library to their customers
  814. # [13:21] <Hixie> sure
  815. # [13:21] <Hixie> but then you wouldn't invent new frame types
  816. # [13:21] <Hixie> annevk: can't they do that with TCP too?
  817. # [13:21] <annevk> they want to interoperate
  818. # [13:21] <annevk> with other servers and new clients
  819. # [13:22] <annevk> from that perspective it makes sense to have a standard protocol
  820. # [13:22] <Hixie> TCP is a standard protocol?
  821. # [13:22] <annevk> yes, but they want an abstraction
  822. # [13:22] <annevk> just like HTTP is an abstraction
  823. # [13:22] <annevk> i don't see how this is very hard to get...
  824. # [13:23] <Hixie> websocket isn't an abstraction
  825. # [13:23] <Hixie> it's a minimal browser origin model security layer
  826. # [13:23] <annevk> it will be an abstraction of some kind once we have send(Stream)
  827. # [13:23] <annevk> well, and UTF-8 support is already an abstraction, imo
  828. # [13:26] <Hixie> i don't think "abstraction" means what you think it means
  829. # [13:27] <annevk> higher-level?
  830. # [13:27] * Quits: MikeSmithXX (~MikeSmith@EM114-51-180-3.pool.e-mobile.ne.jp) (Ping timeout: 265 seconds)
  831. # [13:27] <Hixie> seriously, you can do everything websockets does in like 10 lines of documentation if all you want is a convention of using UTF-8 or something like htat.
  832. # [13:27] * annevk doesn't really care what term we use
  833. # [13:28] <Hixie> i don't understand why you would use websocket
  834. # [13:28] <Hixie> unless you specifically cared about browsers
  835. # [13:28] <Hixie> i understand using it for something where browsers is a use case and you also want to handle non-browser clients
  836. # [13:29] <Hixie> but for something where you don't have browser clients?
  837. # [13:29] <Hixie> it's silly.
  838. # [13:29] <hsivonen> Hixie: even for cutting through firewalls?
  839. # [13:29] * Joins: Faye (~phaeness@gateb.thls.bbc.co.uk)
  840. # [13:30] <annevk> Hixie, it seems like you don't even try to understand their concerns
  841. # [13:30] <Hixie> hsivonen: websocket doesn't do anything special to cut through firewalls.
  842. # [13:31] <othermaciej> I think a use case with both browser and non-browser clients is legitimate
  843. # [13:31] <Hixie> annevk: please enlighten me
  844. # [13:31] <othermaciej> you may well not want to offer two forms of your service
  845. # [13:31] <Hixie> othermaciej: absolutely
  846. # [13:31] <othermaciej> I could also imagine that once you have that infrastructure, you may want to reuse the client and server code for some cases that don
  847. # [13:31] <othermaciej> t also involve a browser client
  848. # [13:31] <othermaciej> I am not sure those should get consideration on the level of a primary use case
  849. # [13:32] * Quits: Phae (~phaeness@gatea.mh.bbc.co.uk) (Ping timeout: 256 seconds)
  850. # [13:32] <Hixie> that's like saying "ok, i've deployed IMAP, now I want to be able to run my MUD using IMAP"
  851. # [13:32] <othermaciej> I could also imagine that you may want to talk an extended version of your protocol to a non-browser client rather than having a whole different protocol
  852. # [13:32] <othermaciej> I would bet someone has actually run a MUD over IMAP :-)
  853. # [13:32] <Hixie> and they're silly :-)
  854. # [13:33] <othermaciej> people also run back end business-to-business data messaging over HTTP
  855. # [13:33] <hsivonen> HTTP over WS-* over Web Socket
  856. # [13:34] <Hixie> people do a lot of silly things
  857. # [13:34] <Hixie> that doesn't stop them being silly
  858. # [13:34] * Joins: MikeSmithXX (~MikeSmith@EM114-51-153-22.pool.e-mobile.ne.jp)
  859. # [13:34] * Quits: gavin_ (~gavin@firefox/developer/gavin) (Ping timeout: 248 seconds)
  860. # [13:35] <annevk> well, it seems to me they want something akin to HTTP for bidirectional communication
  861. # [13:36] <annevk> they also think that deploying a new protocol is costly
  862. # [13:36] <Hixie> yes, i have several people say those things a lot
  863. # [13:37] <Hixie> have seen, rather
  864. # [13:37] <hsivonen> annevk: if they want bidirectional HTTP for B2B back end integration, what does it have to do with Web Socket?
  865. # [13:37] <annevk> it seems they don't believe that deploying two protocols will work so they want WebSocket to also accommodate use cases / requirements they have
  866. # [13:39] * Quits: bzed (~bzed@devel.recluse.de) (Read error: Connection reset by peer)
  867. # [13:40] * Quits: nessy (~Adium@124-171-43-189.dyn.iinet.net.au) (Quit: Leaving.)
  868. # [13:46] * Joins: plainhao (~plainhao@mail.xbiotica.com)
  869. # [13:46] * Joins: bzed (~bzed@devel.recluse.de)
  870. # [13:48] * Quits: cedricv (~cedric@124.197.77.11) (Quit: cedricv)
  871. # [13:49] * Joins: cedricv (~cedric@124.197.77.11)
  872. # [13:51] * Joins: nessy (~Adium@124-171-43-189.dyn.iinet.net.au)
  873. # [13:52] * Quits: MikeSmithXX (~MikeSmith@EM114-51-153-22.pool.e-mobile.ne.jp) (Ping timeout: 246 seconds)
  874. # [13:52] * Joins: FireFly (~firefly@unaffiliated/firefly)
  875. # [13:54] * Joins: svl (~chatzilla@a194-109-2-65.dmn.xs4all.nl)
  876. # [13:56] * Quits: Lachy (~Lachlan@pat-tdc.opera.com) (Quit: Leaving)
  877. # [13:56] * Joins: Lachy (~Lachlan@pat-tdc.opera.com)
  878. # [14:00] * Quits: workmad3 (~workmad3@cpc3-bagu10-0-0-cust651.1-3.cable.virginmedia.com) (Remote host closed the connection)
  879. # [14:00] * Joins: workmad3 (~workmad3@cpc3-bagu10-0-0-cust651.1-3.cable.virginmedia.com)
  880. # [14:01] <Hixie> othermaciej: seems like the orderly close could be done easily just by having an echo feature of some kind
  881. # [14:01] <Hixie> othermaciej: either at the application level or in WS itself if we wanted to require all implementations to do it
  882. # [14:01] <othermaciej> Hixie: echo feature?
  883. # [14:02] <Hixie> yeah where the side that wants to close the connection sends a packet saying "this is close attempt X" for some value of X, and the other side replies "close X", and if the first side receives a "close X" with the value of X that it sent, and it still thinks it wants to close, then it closes.
  884. # [14:02] <Hixie> without lingering.
  885. # [14:03] * Quits: drunknbass_work (~aaron@cpe-76-173-195-145.socal.res.rr.com) (Quit: Leaving...)
  886. # [14:04] <annevk> but the side that sends close X does not know when it can close?
  887. # [14:04] <annevk> because wasn't the concern that if it closes to early "close X" would not arrive
  888. # [14:06] <Hixie> the side that sends close X will know it can close when the other side closes.
  889. # [14:08] <annevk> in that case one side could just do the closing attempt right?
  890. # [14:08] <annevk> no need for confirmation
  891. # [14:08] <Dashiva> Then there might be data lost in transmission
  892. # [14:10] <annevk> A says close, B closes on arrival of that message, A knows B closed
  893. # [14:10] <annevk> so A can close
  894. # [14:10] * Quits: workmad3 (~workmad3@cpc3-bagu10-0-0-cust651.1-3.cable.virginmedia.com) (Remote host closed the connection)
  895. # [14:11] * Joins: workmad3 (~workmad3@cpc3-bagu10-0-0-cust651.1-3.cable.virginmedia.com)
  896. # [14:13] <Dashiva> Hixie's example said "and it still thinks it wants to close", though.
  897. # [14:13] <Dashiva> I guess that might not be a necessary step
  898. # [14:13] <Hixie> yeah i guess you could just do it that way
  899. # [14:14] <Hixie> actually no
  900. # [14:14] <Hixie> you need the two-way handshake
  901. # [14:14] <zcorpan> hmm looks like tests that i wrote 4 years ago have the same style as tests i write today
  902. # [14:14] <othermaciej> Hixie: I believe that would be a fine orderly close mechanism, but I don't understand the TCP issue super well
  903. # [14:14] <Hixie> otherwise if A says to "close" to B, and B sends data to A then closes, B wouldn't see what A said
  904. # [14:14] <Hixie> er
  905. # [14:14] <Hixie> A wouldn't see what B siad
  906. # [14:14] <zcorpan> except i probably try to automate tests more now
  907. # [14:15] <annevk> Hixie, good point
  908. # [14:15] <annevk> you win :)
  909. # [14:15] <othermaciej> Hixie: the reason I think it should be considered for the base protocol is that WebSocket is broken for any app-level protocol where you don't do this
  910. # [14:15] <Hixie> othermaciej: depends on the protocol
  911. # [14:15] <othermaciej> Hixie: not just "no acks" broken but "might gratuitously lose data even though everything seemed fine" broken
  912. # [14:16] <annevk> zcorpan, heh
  913. # [14:16] <Hixie> othermaciej: if the server is just sending a stream of updates "stock AAPL up $1" "stock MSFT up $5" etc, then you don't care about lost packets
  914. # [14:16] <Hixie> othermaciej: it very much depends on the subprotocol
  915. # [14:16] <othermaciej> Hixie: if the server initiated the close, then it seems wasteful for the server to order the client to discard the last few packets
  916. # [14:16] <othermaciej> Hixie: even if the client being a few messages out of date might not be a critical problem
  917. # [14:17] <zcorpan> 6 out of 8 have been fixed from http://zcorpan.1go.dk/test/opera-bugs/
  918. # [14:17] <Hixie> agreed
  919. # [14:17] <Hixie> in that case the client would close
  920. # [14:17] <Hixie> not the server
  921. # [14:17] <othermaciej> Hixie: it seems like that is what's happening with this TCP issue - not just that you don't know for sure what got delivered, but that you are actually telling the client to discard data that it already received
  922. # [14:17] <annevk> you could put it in the base protocol and allow the server to close regardless if it doesn't care
  923. # [14:17] <Hixie> but the client wouldn't want an orderly close, especially if e.g. the websocket object is already GCed
  924. # [14:18] * Quits: nessy (~Adium@124-171-43-189.dyn.iinet.net.au) (Quit: Leaving.)
  925. # [14:18] <Hixie> if we can come up with some thing simple enough that can be ignored if the server doesn't need it, it makes sense to add it to the base protocol
  926. # [14:19] <othermaciej> I actually don't know the bare minimum required for a proper orderly close handshake over TCP
  927. # [14:19] <annevk> it seems you could just use the highest byte as a special closing message
  928. # [14:19] <annevk> that needs to be returned
  929. # [14:20] <othermaciej> I wish someone on the thread had explained how you would solve the problem with a proper close handshake instead of a lingering close - like at least one example of something that works
  930. # [14:20] <annevk> so 0xFF
  931. # [14:20] <Hixie> i wonder if we need the number X from my example
  932. # [14:20] <annevk> as a standalone closing frame
  933. # [14:20] * Joins: Rik|work (~Rik|work@fw01d.skyrock.net)
  934. # [14:20] <Hixie> maybe we can just do 0xFF 0x00
  935. # [14:20] <Hixie> and if you receive an 0xFF frame, you know the other side wants to close
  936. # [14:20] <Dashiva> Hixie: If you want to support changing your mind about closing, you need it, don't you?
  937. # [14:20] <annevk> you don't even need 0x00 I think
  938. # [14:20] <Hixie> and you can send an 0xFF to say ok
  939. # [14:20] <Hixie> annevk: i don't want to add a third kind of frame
  940. # [14:21] <Hixie> Dashiva: yeah, but it's not clear we need that
  941. # [14:21] <annevk> boring :)
  942. # [14:26] <othermaciej> foolip: maybe I am dumb, but if RDFa is fundamentally a graph structure, that seems like a poor API for it
  943. # [14:27] <hsivonen> how are HTML notications in http://dev.chromium.org/developers/design-documents/desktop-notifications/api-specification supposed to work with D-Bus or Growl notifications?
  944. # [14:27] <hsivonen> the spec talks about the browser rendering them as a browsing context
  945. # [14:28] <hsivonen> but who really want that except in a Chrome OS -like environment where there's nothing but the browser?
  946. # [14:28] <hsivonen> *wants
  947. # [14:28] <Hixie> they're not, as i understand them
  948. # [14:28] * Hixie has similar concerns
  949. # [14:28] <foolip> othermaciej: I agree, it's not terribly useful
  950. # [14:28] <Hixie> hsivonen: also a concern for iphone or android environments where the OS has a built-in notification system that is pure-text or close to it
  951. # [14:29] <Hixie> ok i should go sleep
  952. # [14:29] <Hixie> nn
  953. # [14:29] * Quits: svl (~chatzilla@a194-109-2-65.dmn.xs4all.nl) (Remote host closed the connection)
  954. # [14:29] <othermaciej> in particular, you'd expect the children of an RDFa graph node / triple to have the same subject as the triple's *object*, not the same subject as its subject
  955. # [14:29] * hsivonen thinks it would be good to start out with a simple icon + plain text API that maps to system notification mechanisms
  956. # [14:29] <othermaciej> it also seems like you would really want to be able to query by subject, object or predicate, not just by type...
  957. # [14:29] <hsivonen> what mailing list am I supposed to whine on about the notication API?
  958. # [14:30] <hsivonen> aside: it's rather amazing that Growl still isn't part of Mac OS X itself
  959. # [14:30] <hsivonen> amazing from a practical POV that is
  960. # [14:30] <hsivonen> not amazing from a NIH attitude POV
  961. # [14:30] <othermaciej> hsivonen: you could use webkit-dev, to complain about what's implemented, since the code is in WebKit, but fwiw I think Chrome is the only browser shipping with it enabled
  962. # [14:30] <othermaciej> for proposing a standard version of this and proposing changes to that, I dunno
  963. # [14:30] <othermaciej> HTML is not really an obstacle for Growl
  964. # [14:31] <othermaciej> IIRC it uses WebKit to render notifications
  965. # [14:31] * Joins: svl (~chatzilla@a194-109-2-65.dmn.xs4all.nl)
  966. # [14:31] <hsivonen> othermaciej: does chrome send stuff to growl or d-bus on Mac/Linux?
  967. # [14:31] * Joins: MikeSmith (~MikeSmith@EM117-55-121-233.pool.e-mobile.ne.jp)
  968. # [14:31] <othermaciej> hsivonen: I don't know
  969. # [14:31] <hsivonen> ok
  970. # [14:32] <othermaciej> non-Chrome WEbKit vendors/devs were not fully sold on the suitability of this API or the value of shipping it without sufficient cross-vendor discussion
  971. # [14:32] <othermaciej> but I expect they implement it all internally and do not use any system or third-party notification services
  972. # [14:33] <hsivonen> I see
  973. # [14:33] * Quits: svl (~chatzilla@a194-109-2-65.dmn.xs4all.nl) (Client Quit)
  974. # [14:33] <hsivonen> does Windows have a system-wide notification service that doesn't involve registering a tray icon first?
  975. # [14:33] * Joins: svl (~chatzilla@a194-109-2-65.dmn.xs4all.nl)
  976. # [14:38] * Disconnected
  977. # [14:39] * Attempting to rejoin channel #whatwg
  978. # [14:39] * Rejoined channel #whatwg
  979. # [14:39] * Topic is 'WHATWG: http://www.whatwg.org/ -- logs: http://krijnhoetmer.nl/irc-logs/ -- stats: http://gavinsharp.com/irc/whatwg.html -- Please leave your sense of logic at the door, thanks!'
  980. # [14:39] * Set by annevk42 on Mon Oct 19 22:03:06
  981. # [14:39] <zcorpan> onvolumechange didn't work at least
  982. # [14:40] <zcorpan> but addEventListener worked
  983. # [14:42] <othermaciej> it's a bug I guess
  984. # [14:43] <othermaciej> per HTML5 it should clearly be on HTMLElement and HTMLDocument
  985. # [14:44] <zcorpan> yes
  986. # [14:44] <zcorpan> and window
  987. # [14:45] <othermaciej> I need to catch up on this fullscreen thread at some point
  988. # [14:45] <zcorpan> feature testing says it's on window but not document or element
  989. # [14:45] <zcorpan> in webkit
  990. # [14:46] <zcorpan> which is not so useful since volumechange doesn't bubble :)
  991. # [14:48] * Quits: MikeSmith (~MikeSmith@EM117-55-121-233.pool.e-mobile.ne.jp) (Ping timeout: 256 seconds)
  992. # [14:51] * Faye is now known as Phae
  993. # [14:57] * Joins: TabAtkins (~chatzilla@70-139-15-246.lightspeed.rsbgtx.sbcglobal.net)
  994. # [15:16] * Joins: miketaylr (~miketaylr@38.117.156.163)
  995. # [15:16] * Quits: miketaylr (~miketaylr@38.117.156.163) (Excess Flood)
  996. # [15:16] * Joins: miketaylr (~miketaylr@38.117.156.163)
  997. # [15:16] * Quits: miketaylr (~miketaylr@38.117.156.163) (Excess Flood)
  998. # [15:16] * Joins: miketaylr (~miketaylr@38.117.156.163)
  999. # [15:16] * Quits: miketaylr (~miketaylr@38.117.156.163) (Excess Flood)
  1000. # [15:18] * Joins: miketaylr (~miketaylr@38.117.156.163)
  1001. # [15:25] * Quits: erlehmann (~erlehmann@82.113.106.160) (Quit: Ex-Chat)
  1002. # [15:26] * Joins: BlurstOfTimes (~blurstoft@168.203.117.66)
  1003. # [15:29] * Joins: jgornick (~joe@199.199.210.66)
  1004. # [15:40] * Joins: portenkirchner (~portenkir@p5794A77B.dip.t-dialin.net)
  1005. # [15:40] * Joins: m_W (~mwj@c-69-141-106-205.hsd1.nj.comcast.net)
  1006. # [15:45] * Joins: vonkemp (~vonkemp@222-153-248-40.jetstream.xtra.co.nz)
  1007. # [15:45] * Parts: vonkemp (~vonkemp@222-153-248-40.jetstream.xtra.co.nz)
  1008. # [15:46] * Quits: portenkirchner (~portenkir@p5794A77B.dip.t-dialin.net) (Quit: portenkirchner)
  1009. # [15:46] * Joins: portenkirchner (~portenkir@p5794A77B.dip.t-dialin.net)
  1010. # [15:49] <annevk> so to get an.ne I need to a have a registered company in Nigeria named "an"
  1011. # [15:49] <annevk> that seems like too much trouble
  1012. # [15:50] * Quits: daedb (~daed@h11n1fls34o986.telia.com) (Read error: Connection reset by peer)
  1013. # [15:50] * Joins: daedb (~daed@h11n1fls34o986.telia.com)
  1014. # [15:50] <ray> man, uganda doesn't have any silly restrictions like that
  1015. # [15:52] * Joins: erlehmann (~erlehmann@82.113.121.104)
  1016. # [15:53] * Quits: portenkirchner (~portenkir@p5794A77B.dip.t-dialin.net) (Quit: portenkirchner)
  1017. # [15:53] <AryehGregor> annevk, surely you could just bribe the right official?
  1018. # [15:58] * Quits: Phae (~phaeness@gateb.thls.bbc.co.uk)
  1019. # [16:03] * Quits: erlehmann (~erlehmann@82.113.121.104) (Quit: Ex-Chat)
  1020. # [16:05] * Quits: paul_irish (~paul_iris@c-71-192-163-128.hsd1.nh.comcast.net) (Quit: Leaving...)
  1021. # [16:08] <zcorpan> "Markup conformance requirements that need to be tested and give them a stable identifier that will persist across drafts of the specification." - http://www.w3.org/TR/2010/NOTE-test-methodology-20100128/
  1022. # [16:10] * AryehGregor wonders how many thousands of distinct conformance requirements there are in HTML5.
  1023. # [16:11] <Philip`> That's easy, just use the text of the conformance requirement as the identifier
  1024. # [16:12] <AryehGregor> I guess if the text changes, you've changed the conformance requirement anyway . . .
  1025. # [16:12] * Quits: virtuelv (~virtuelv_@pat-tdc.opera.com) (Ping timeout: 240 seconds)
  1026. # [16:13] <Philip`> AryehGregor: I counted 223 requirement statements for <canvas> a while ago
  1027. # [16:13] <Philip`> so there's going to be quite a lot across the whole spec
  1028. # [16:13] <AryehGregor> Is that counting something like "When X occurs, user agents must execute the following algorithm:" as one requirement or lots?
  1029. # [16:14] <Philip`> Lots
  1030. # [16:15] <Philip`> (I suppose it's more about testable points than about conformance requirements)
  1031. # [16:16] <AryehGregor> There are what, like 8,000 tests for CSS2.1? And HTML5 is how much longer, twenty times as long?
  1032. # [16:16] <AryehGregor> :/
  1033. # [16:17] * AryehGregor is ballparking
  1034. # [16:17] <annevk> last estimate was 50000 tests needed
  1035. # [16:17] <annevk> maybe that was optimistic
  1036. # [16:18] <othermaciej> HTML5 has lots of features, many different facets to test for each, very detailed requirements for most of them, and some nontrivial interactions among different features
  1037. # [16:18] * Joins: hish (~chatzilla@p57B7E5CC.dip.t-dialin.net)
  1038. # [16:19] <othermaciej> so probably the level of test coverage needed is even higher than comparison of length to CSS would imply
  1039. # [16:19] <othermaciej> though to be fair, CSS is also pretty damn complicated
  1040. # [16:19] <annevk> CSS is prolly more complicated
  1041. # [16:19] <annevk> most of HTML5 is written in a pretty straightforward way
  1042. # [16:19] <annevk> CSS has very complex interactions
  1043. # [16:19] <AryehGregor> You couldn't test a lot of HTML5 requirements in a cross-browser way, could you? You'd need something more like Mozilla's mochitests, that can synthesize input and whatnot.
  1044. # [16:19] <othermaciej> CSS has some very complex interactions by design
  1045. # [16:20] <othermaciej> HTML5 has a fair number of complex interactions by accident of history
  1046. # [16:20] <othermaciej> there are many HTML requirements that would be hard to test if the browser itself is your only test tool
  1047. # [16:20] <othermaciej> that doesn't mean you can't do it in a cross-browser way
  1048. # [16:21] * Joins: Phae (~phaeness@gateb.mh.bbc.co.uk)
  1049. # [16:21] <AryehGregor> How would you do it, then? Except manually, of course.
  1050. # [16:21] * AryehGregor doesn't want to see anyone try running 100,000 tests manually :P
  1051. # [16:21] <othermaciej> one possible way is to run an external program to synthesize input events, and possibly capture output
  1052. # [16:22] <othermaciej> people have made such tools that work with any given browser, for example for testing Web sites or for general QA of any native application with a GUI
  1053. # [16:22] <zcorpan> i generated about 15000 tests for a css feature
  1054. # [16:22] <AryehGregor> "Generated"?
  1055. # [16:23] <othermaciej> of course for any conformance requirement that can be tested by scripting against the DOM, that's the best way to do it
  1056. # [16:23] <zcorpan> yeah, i wrote some python scripts
  1057. # [16:24] <zcorpan> although i wanted to generate more for interaction with svg
  1058. # [16:25] <AryehGregor> So how many substantively different things did these 15,000 tests actually test?
  1059. # [16:26] * Quits: breakmau5 (~breakz@erft-5d809f18.pool.mediaWays.net) (Ping timeout: 272 seconds)
  1060. # [16:27] <zcorpan> i tested different combinations of percentages, lengths and keywords, visibility:hidden/visible, and the different values for the feature, for a number of different elements
  1061. # [16:27] <zcorpan> including invalid cases
  1062. # [16:27] <zcorpan> oh and with different images
  1063. # [16:28] * Joins: hish_ (~chatzilla@p57B7FF24.dip.t-dialin.net)
  1064. # [16:31] * Quits: hish (~chatzilla@p57B7E5CC.dip.t-dialin.net) (Ping timeout: 245 seconds)
  1065. # [16:42] * miketaylr is now known as m_irish_ketaylr
  1066. # [16:42] * m_irish_ketaylr is now known as miketaylr
  1067. # [16:48] * Joins: breakmau5 (~breakz@erft-5d809f18.pool.mediaWays.net)
  1068. # [16:49] * Quits: Phae (~phaeness@gateb.mh.bbc.co.uk)
  1069. # [16:59] * Joins: Phae (~phaeness@gatea.mh.bbc.co.uk)
  1070. # [17:00] * Quits: maikmerten (~merten@ls5dhcp196.cs.uni-dortmund.de) (Remote host closed the connection)
  1071. # [17:04] * Joins: Heimidal (~heimidal@97-118-43-164.hlrn.qwest.net)
  1072. # [17:04] * Quits: Heimidal (~heimidal@97-118-43-164.hlrn.qwest.net) (Changing host)
  1073. # [17:04] * Joins: Heimidal (~heimidal@unaffiliated/heimidal)
  1074. # [17:07] * Quits: Maurice (~ano@a80-101-46-164.adsl.xs4all.nl) (Quit: Disconnected...)
  1075. # [17:07] * Joins: Huvet (~Emil@c-0acfe555.07-131-73746f39.cust.bredbandsbolaget.se)
  1076. # [17:09] <Huvet> gah, I'm going crazy with all the different html parsing libraries... I want three things: parse broken html -> remove all tags except a list I specify -> get all text blocks that remain
  1077. # [17:10] <Philip`> I guess this is why people give up and use regexps
  1078. # [17:10] <Huvet> the only way I see of doing this, is to parse with html5lib, serialize to html, parse with lxml.html.clean and clean up, then parse again with html5lib, and select out all the text from there with xpath
  1079. # [17:10] <Huvet> ... and that's a mess :)
  1080. # [17:10] <Huvet> yeah :)
  1081. # [17:11] <Philip`> Why can't you parse with html5lib with lxml treebuilder, then do whatever manipulations you need to the tree structure, then serialise as text?
  1082. # [17:12] <Huvet> because the tree I get from the lxml treebuilder is not the format lxml.html.clean, expects... I get 'lxml.etree._ElementTree' object has no attribute 'rewrite_links' when trying to clean that document
  1083. # [17:12] <Huvet> so it seems there are more methods on html trees somehow
  1084. # [17:13] <Philip`> Oh, right
  1085. # [17:13] <Philip`> Do you have to use lxml.html.clean, rather than implementing the functionality you need yourself using the normal lxml API?
  1086. # [17:13] <Huvet> no, I'll switch as long as it works :)
  1087. # [17:14] <Huvet> I'm screenscraping pages, and have found that a good way is to strip all tags except div, and then look for the longest text string that's left
  1088. # [17:14] * Joins: antw (~antw@87.127.123.127)
  1089. # [17:14] <Huvet> that's (most often) the article text
  1090. # [17:14] <annevk> should be pretty easy to go through a tree and dump elements you do not like and append their content to the parent?
  1091. # [17:15] <annevk> or some such
  1092. # [17:15] <annevk> maybe with some different branches depending on the element
  1093. # [17:15] <Philip`> It'd be easier with a SAX-like API since you could trivially filter out unwanted tags
  1094. # [17:15] <jgraham> The seperation between lxml.etree and lxml.html is a real pain
  1095. # [17:16] <Huvet> good ideas, all of them
  1096. # [17:16] <Huvet> jgraham: yeah, I was hoping for a lxml.html.frometree(doc)
  1097. # [17:16] <jgraham> Huvet: Have you tried looking at the implementation of the lxml.html thing and seeing if you san port it to vanilla lxml.etree?
  1098. # [17:16] * Quits: myakura (~myakura@p3213-ipbf4202marunouchi.tokyo.ocn.ne.jp) (Quit: Leaving...)
  1099. # [17:17] <Huvet> jgraham: I think that's a bit over my head, I'm not that used to lxml
  1100. # [17:17] <Huvet> http://codespeak.net/lxml/api/lxml.html.clean-pysrc.html
  1101. # [17:18] <Huvet> 700 lines
  1102. # [17:18] <jgraham> Huvet: You could rather inefficiently walk the tree and rebuild it in lxml.html Elements
  1103. # [17:19] <jgraham> Or you could patch html5lib asnd see what breaks :)
  1104. # [17:20] <Huvet> I guess the best way is what annevk said... except the "pretty easy" part ;)
  1105. # [17:21] <Huvet> get the lxml tree and walk it and drop nodes as I go along
  1106. # [17:26] * Quits: daedb (~daed@h11n1fls34o986.telia.com) (Remote host closed the connection)
  1107. # [17:26] * Joins: daedb (~daed@h11n1fls34o986.telia.com)
  1108. # [17:26] <jgraham> Huvet: You have to be a bit careful because of the .tail
  1109. # [17:27] * Quits: hsivonen (~hsivonen@kekkonen.cs.hut.fi) (Ping timeout: 256 seconds)
  1110. # [17:27] <jgraham> See lxml.html.drop_tree
  1111. # [17:28] * Quits: bobs (~oeskola@130.233.41.50) (Ping timeout: 260 seconds)
  1112. # [17:31] <Huvet> *reading*
  1113. # [17:36] * Joins: bobs (~oeskola@kekkonen.cs.hut.fi)
  1114. # [17:36] * Joins: hsivonen (~hsivonen@kekkonen.cs.hut.fi)
  1115. # [17:38] * Joins: virtuelv (~virtuelv_@162.179.251.212.customer.cdi.no)
  1116. # [17:42] * Joins: dglazkov (~dglazkov@2620:0:1000:1b01:21f:f3ff:fed0:dd49)
  1117. # [17:51] * Quits: Lachy (~Lachlan@pat-tdc.opera.com) (Quit: This computer has gone to sleep)
  1118. # [17:56] * Joins: sbublava (~stephan@77.119.235.105.wireless.dyn.drei.com)
  1119. # [18:00] * Joins: JonathanNeal (~JonathanN@rrcs-76-79-114-213.west.biz.rr.com)
  1120. # [18:01] <JonathanNeal> Heyo.
  1121. # [18:08] * Joins: franksalim (~frank@adsl-75-61-86-190.dsl.pltn13.sbcglobal.net)
  1122. # [18:08] * Joins: starjive (beos@81-233-16-19-no30.tbcn.telia.com)
  1123. # [18:11] * Quits: zcorpan (~zcorpan@pat.se.opera.com) (Quit: zcorpan)
  1124. # [18:13] * Joins: no_mind (~orion@122.161.216.44)
  1125. # [18:13] <no_mind> has html5 got something special for centering a div ?
  1126. # [18:14] <annevk> we're not in the business of styling ;)
  1127. # [18:14] <annevk> you want CSS
  1128. # [18:14] <annevk> something like margin:0 auto; plus an explicit width
  1129. # [18:14] <annevk> or some fiddling with table layout
  1130. # [18:14] <no_mind> ok, so which channel is suitable for css ?
  1131. # [18:15] * Joins: mackstann__ (~death@216-20-152-177-dsl.hevanet.com)
  1132. # [18:18] <annevk> #css on irc.w3.org, though that's mainly for the CSS WG
  1133. # [18:19] * Quits: pesla (~retep@procurios.xs4all.nl) (Quit: ( www.nnscript.com :: NoNameScript 4.21 :: www.esnation.com ))
  1134. # [18:19] * Joins: mpt (~mpt@canonical/mpt)
  1135. # [18:19] <AryehGregor> There's also #css here.
  1136. # [18:19] <AryehGregor> That's unofficial.
  1137. # [18:22] * Quits: svl (~chatzilla@a194-109-2-65.dmn.xs4all.nl) (Quit: And back he spurred like a madman, shrieking a curse to the sky!)
  1138. # [18:23] * Joins: cying (~cying@70.90.171.153)
  1139. # [18:28] * Quits: seventh (seventh@189.59.183.86.dynamic.adsl.gvt.net.br) (Ping timeout: 245 seconds)
  1140. # [18:30] * Quits: Michelangelo (~Michelang@193.205.162.69) (Remote host closed the connection)
  1141. # [18:31] * Joins: Maurice (copyman@5ED548D4.cable.ziggo.nl)
  1142. # [18:35] * Quits: cying (~cying@70.90.171.153) (Ping timeout: 252 seconds)
  1143. # [18:35] * Joins: cying (~cying@70.90.171.153)
  1144. # [18:35] * Joins: Lachy (~Lachlan@85.196.122.246)
  1145. # [18:36] * Quits: zalan (~zalan@host-131.nrln.net) (Ping timeout: 265 seconds)
  1146. # [18:40] * Quits: Phae (~phaeness@gatea.mh.bbc.co.uk)
  1147. # [18:43] * Quits: hish_ (~chatzilla@p57B7FF24.dip.t-dialin.net) (Ping timeout: 245 seconds)
  1148. # [18:46] * Quits: othermaciej (~mjs@c-69-181-42-237.hsd1.ca.comcast.net) (Quit: othermaciej)
  1149. # [18:48] * Joins: maikmerten (~maikmerte@port-92-201-166-106.dynamic.qsc.de)
  1150. # [19:02] * Quits: mhausenblas (~mhausenbl@wg1-nat.fwgal01.deri.ie) (Quit: mhausenblas)
  1151. # [19:02] * Joins: mpt_ (~mpt@canonical/mpt)
  1152. # [19:03] * Quits: mpt (~mpt@canonical/mpt) (Read error: No route to host)
  1153. # [19:04] * Quits: Heimidal (~heimidal@unaffiliated/heimidal) (Remote host closed the connection)
  1154. # [19:05] * Joins: Heimidal (~heimidal@97-118-43-164.hlrn.qwest.net)
  1155. # [19:05] * Quits: Heimidal (~heimidal@97-118-43-164.hlrn.qwest.net) (Changing host)
  1156. # [19:05] * Joins: Heimidal (~heimidal@unaffiliated/heimidal)
  1157. # [19:07] * Quits: cying (~cying@70.90.171.153) (Quit: cying)
  1158. # [19:08] * Joins: pmuellr (~pmuellr@nat/ibm/x-czdordnegbyqkiln)
  1159. # [19:08] * Joins: cying (~cying@70.90.171.153)
  1160. # [19:08] * Joins: zcorpan (~zcorpan@pat.se.opera.com)
  1161. # [19:10] * Joins: JonathanNeal_oww (~JonathanN@rrcs-76-79-114-213.west.biz.rr.com)
  1162. # [19:12] * Quits: mat_t (~mattomasz@91.189.88.12) (Quit: This computer has gone to sleep)
  1163. # [19:13] * Quits: JonathanNeal (~JonathanN@rrcs-76-79-114-213.west.biz.rr.com) (Ping timeout: 252 seconds)
  1164. # [19:15] * Joins: dave_levin (~dave_levi@74.125.59.73)
  1165. # [19:15] <zcorpan> hmm, chrome doesn't support wave in <audio>?
  1166. # [19:18] * Joins: cohitre (~cohitre@64-40-56-46-dsl.itltd.net)
  1167. # [19:18] * Parts: cohitre (~cohitre@64-40-56-46-dsl.itltd.net)
  1168. # [19:20] * Quits: peol (~andree@unaffiliated/peol) (Read error: Operation timed out)
  1169. # [19:28] * Quits: cying (~cying@70.90.171.153) (Quit: cying)
  1170. # [19:31] * Quits: JonathanNeal_oww (~JonathanN@rrcs-76-79-114-213.west.biz.rr.com) (Ping timeout: 252 seconds)
  1171. # [19:33] * Joins: JonathanNeal (~JonathanN@rrcs-76-79-114-213.west.biz.rr.com)
  1172. # [19:38] * Joins: hfc (~idolm@dyn-xdsl-83-150-113-126.nebulazone.fi)
  1173. # [19:38] * Joins: drunknbass_work (~aaron@71.107.253.243)
  1174. # [19:46] * Quits: mackstann__ (~death@216-20-152-177-dsl.hevanet.com) (Ping timeout: 252 seconds)
  1175. # [19:48] * Quits: JonathanNeal (~JonathanN@rrcs-76-79-114-213.west.biz.rr.com) (Ping timeout: 252 seconds)
  1176. # [19:52] * Joins: jwalden (~waldo@64.9.243.181)
  1177. # [19:53] * Joins: svl (~me@ip565744a7.direct-adsl.nl)
  1178. # [19:53] * Joins: jorlow (~jorlow@2620:0:1000:1b01:225:ff:feef:77eb)
  1179. # [19:55] * Joins: ap (~ap@2620:0:1b00:1191:226:4aff:fe14:aad6)
  1180. # [19:55] * Quits: zcorpan (~zcorpan@pat.se.opera.com) (Read error: Connection reset by peer)
  1181. # [20:02] * Joins: JonathanNeal (~JonathanN@rrcs-76-79-114-213.west.biz.rr.com)
  1182. # [20:04] * Joins: zcorpan (~zcorpan@pat.se.opera.com)
  1183. # [20:06] * Joins: gratz|home (~gratz@cpc3-brig15-2-0-cust237.3-3.cable.virginmedia.com)
  1184. # [20:08] * Quits: zcorpan (~zcorpan@pat.se.opera.com) (Client Quit)
  1185. # [20:10] * Quits: mpt_ (~mpt@canonical/mpt) (Ping timeout: 265 seconds)
  1186. # [20:11] * Joins: cying (~cying@70.90.171.153)
  1187. # [20:14] * Joins: cohitre (~cohitre@174-21-102-211.tukw.qwest.net)
  1188. # [20:14] * Parts: cohitre (~cohitre@174-21-102-211.tukw.qwest.net)
  1189. # [20:17] * Quits: riven (~riven@53518387.cable.casema.nl) (Read error: Connection reset by peer)
  1190. # [20:17] * Joins: riven (~riven@53518387.cable.casema.nl)
  1191. # [20:19] * Quits: sbublava (~stephan@77.119.235.105.wireless.dyn.drei.com) (Quit: sbublava)
  1192. # [20:23] * Quits: virtuelv (~virtuelv_@162.179.251.212.customer.cdi.no) (Ping timeout: 246 seconds)
  1193. # [20:24] * Quits: workmad3 (~workmad3@cpc3-bagu10-0-0-cust651.1-3.cable.virginmedia.com) (Remote host closed the connection)
  1194. # [20:30] * Quits: cying (~cying@70.90.171.153) (Remote host closed the connection)
  1195. # [20:30] * Joins: cying (~cying@70.90.171.153)
  1196. # [20:36] * Quits: cpearce (~cpearce@ip-118-90-91-135.xdsl.xnet.co.nz) (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.0.15/2009101909])
  1197. # [20:38] * Quits: Utkarsh (~admin@117.201.88.150) (Ping timeout: 246 seconds)
  1198. # [20:42] * Joins: mpt_ (~mpt@canonical/mpt)
  1199. # [20:43] * Joins: virtuelv (~virtuelv_@162.179.251.212.customer.cdi.no)
  1200. # [20:44] * Joins: Utkarsh (~admin@117.201.81.14)
  1201. # [20:45] <JonathanNeal> Anyone know how often the http://html5gallery.com/ guys update
  1202. # [20:49] * Quits: Utkarsh (~admin@117.201.81.14) (Ping timeout: 260 seconds)
  1203. # [20:52] * Quits: antw (~antw@87.127.123.127) (Remote host closed the connection)
  1204. # [20:55] * Joins: Utkarsh (~admin@117.201.80.248)
  1205. # [20:57] * Joins: antw (~antw@87.127.123.127)
  1206. # [20:59] * Joins: peol (~andree@unaffiliated/peol)
  1207. # [21:01] * Joins: erlehmann (~erlehmann@82.113.106.129)
  1208. # [21:02] * Joins: dimich (~dimich@2620:0:1008:1101:225:ff:fef0:654c)
  1209. # [21:06] * Joins: ment (thement@ibawizard.net)
  1210. # [21:07] * Quits: ment (thement@ibawizard.net) (Client Quit)
  1211. # [21:09] * Quits: Utkarsh (~admin@117.201.80.248) (Ping timeout: 245 seconds)
  1212. # [21:09] * Joins: jdandrea (~jdandrea@pool-98-109-116-42.nwrknj.fios.verizon.net)
  1213. # [21:14] * Quits: plainhao (~plainhao@mail.xbiotica.com) (Quit: plainhao)
  1214. # [21:16] * Quits: maikmerten (~maikmerte@port-92-201-166-106.dynamic.qsc.de) (Remote host closed the connection)
  1215. # [21:17] * Joins: Utkarsh (~admin@117.201.81.89)
  1216. # [21:17] * Joins: aroben (~aroben@unaffiliated/aroben)
  1217. # [21:19] * Joins: cpearce (~cpearce@203-97-204-82.dsl.clear.net.nz)
  1218. # [21:24] <annevk> reading http://unicode.org/draft/reports/tr46/tr46.html I really wonder how IDNA2008 got through
  1219. # [21:24] <annevk> where is the upside?
  1220. # [21:24] <annevk> it sounds insane
  1221. # [21:24] <annevk> let me repeat that
  1222. # [21:24] <annevk> insane
  1223. # [21:25] * Joins: othermaciej (~mjs@17.246.17.57)
  1224. # [21:26] * Quits: Utkarsh (~admin@117.201.81.89) (Ping timeout: 260 seconds)
  1225. # [21:33] * Quits: aroben (~aroben@unaffiliated/aroben) (Quit: Leaving)
  1226. # [21:34] * Joins: Utkarsh (~admin@117.201.80.96)
  1227. # [21:36] * Joins: aroben (~aroben@unaffiliated/aroben)
  1228. # [21:38] * Joins: Rik` (~Rik`@pha75-2-81-57-187-57.fbx.proxad.net)
  1229. # [21:48] * jgraham reads section 1.2 decides that "insane" is probably being kind
  1230. # [21:51] * Quits: gratz|home (~gratz@cpc3-brig15-2-0-cust237.3-3.cable.virginmedia.com) (Quit: Leaving)
  1231. # [21:55] <Dashiva> Surely all valid comments were taken into consideration
  1232. # [21:56] <Dashiva> It's just that imperfect beings such as us can't comprehend the trascendental perfection
  1233. # [21:59] * Quits: pmuellr (~pmuellr@nat/ibm/x-czdordnegbyqkiln) (Quit: pmuellr)
  1234. # [22:01] * Quits: ivan` (~ivan@unaffiliated/ivan/x-000001) (Quit: Coyote finally caught me)
  1235. # [22:01] * Joins: workmad3 (~workmad3@cpc3-bagu10-0-0-cust651.1-3.cable.virginmedia.com)
  1236. # [22:02] * Joins: cying_ (~cying@70.90.171.153)
  1237. # [22:02] * Joins: ivan` (~ivan@unaffiliated/ivan/x-000001)
  1238. # [22:03] * Quits: ivan` (~ivan@unaffiliated/ivan/x-000001) (Client Quit)
  1239. # [22:03] * Joins: dglazkov_ (~dglazkov@nat/google/x-pwnooprahtotngjh)
  1240. # [22:04] * Quits: ROBOd (~robod@89.122.216.38) (Ping timeout: 240 seconds)
  1241. # [22:05] * Joins: ivan` (~ivan@adsl-71-142-225-118.dsl.scrm01.pacbell.net)
  1242. # [22:05] * Quits: ivan` (~ivan@adsl-71-142-225-118.dsl.scrm01.pacbell.net) (Changing host)
  1243. # [22:05] * Joins: ivan` (~ivan@unaffiliated/ivan/x-000001)
  1244. # [22:05] * Quits: dglazkov (~dglazkov@2620:0:1000:1b01:21f:f3ff:fed0:dd49) (Read error: Operation timed out)
  1245. # [22:05] * dglazkov_ is now known as dglazkov
  1246. # [22:06] * Quits: cying (~cying@70.90.171.153) (Ping timeout: 245 seconds)
  1247. # [22:06] * cying_ is now known as cying
  1248. # [22:08] * Quits: no_mind (~orion@122.161.216.44) (Remote host closed the connection)
  1249. # [22:15] * Quits: Utkarsh (~admin@117.201.80.96) (Ping timeout: 252 seconds)
  1250. # [22:19] * Joins: nessy (~Adium@124-171-43-189.dyn.iinet.net.au)
  1251. # [22:21] * Quits: tyoshino (~tyoshino@220.109.219.244) (Read error: Connection reset by peer)
  1252. # [22:22] * Joins: tyoshino (~tyoshino@220.109.219.244)
  1253. # [22:22] * Joins: tkent_ (~tkent@220.109.219.244)
  1254. # [22:24] * Quits: tkent (~tkent@220.109.219.244) (Ping timeout: 265 seconds)
  1255. # [22:25] <Huvet> thanks for the help figuring this out Philip`, annevk, and jgraham: http://dpaste.com/153474/
  1256. # [22:25] <Huvet> input: an URL to an article, output: the article text
  1257. # [22:31] * Quits: dglazkov (~dglazkov@nat/google/x-pwnooprahtotngjh) (Remote host closed the connection)
  1258. # [22:31] * Joins: beilabs__ (~beilabs@ppp121-44-34-85.lns20.syd6.internode.on.net)
  1259. # [22:31] * Joins: dglazkov (~dglazkov@2620:0:1000:1b01:21f:f3ff:fed0:dd49)
  1260. # [22:33] * Joins: seventh (seventh@189.59.132.44)
  1261. # [22:38] <jgraham> Huvet: You can write doc = html5lib.parse(html, treebuilder="lxml")
  1262. # [22:38] <jgraham> Rather than explicitly creating a parser that is never reused
  1263. # [22:39] <Huvet> ah, great, fixing right away
  1264. # [22:39] * Quits: jwalden (~waldo@64.9.243.181) (Quit: ChatZilla 0.9.85-rdmsoft [XULRunner 1.9.2/20100122095031])
  1265. # [22:40] <jgraham> That is probably not documented anywhere
  1266. # [22:41] <gsnedders> We have documentation?
  1267. # [22:41] * jgraham would tend to write the filter as a list comprehension or a generator expression
  1268. # [22:41] <jgraham> like texts = (x.strip() for x in doc.xpath("//text") if x)
  1269. # [22:42] <jgraham> (but it doesn't matter)
  1270. # [22:44] <Huvet> yeah, I heard that from another python guru too... but I kinda like the idea that I'm "filtering away the empty texts" and it says "filter" there
  1271. # [22:45] <Huvet> and yeah, you desperately need documentation
  1272. # [22:45] <Huvet> I would set that as my main priority if I where you
  1273. # [22:45] * Joins: dbaron (~dbaron@nat/mozilla/x-vkijuzktigymhwcq)
  1274. # [22:49] * Quits: mpt_ (~mpt@canonical/mpt) (Ping timeout: 252 seconds)
  1275. # [22:49] * Joins: jwalden (~waldo@nat/mozilla/x-aobyujlrmvdgccnt)
  1276. # [22:52] * Philip` imagines the main priorities should be things like writing documentation and improving the sanitizer, and spec compliance should be somewhere near the bottom of the list
  1277. # [22:52] <jgraham> gsnedders: Well we do, there are a few docstring and the old, lost documentation
  1278. # [22:52] <jgraham> But it is abysmal, I grant you
  1279. # [22:53] <gsnedders> jgraham: I know, I know...
  1280. # [22:53] <gsnedders> Philip`: But what's the fun of that?
  1281. # [22:55] * smaug___ still doesn't understand why the draft changed to have async back()/forward()
  1282. # [22:56] <annevk> Philip`, the whole point is spec compliance
  1283. # [22:57] <Philip`> Users don't care about spec compliance
  1284. # [22:57] <Philip`> Maybe users aren't the point, but they'd probably disagree
  1285. # [22:58] <jgraham> http://code.google.com/p/html5lib/wiki/UserDocumentation
  1286. # [22:58] <jgraham> Now it just needs to be right and good
  1287. # [23:01] <Huvet> great!
  1288. # [23:02] <Huvet> things that many documentations fail to do is provide examples... you could just include things that people have done with html5lib right in the docs
  1289. # [23:02] <Huvet> that would help most people get started
  1290. # [23:02] <Huvet> and I mean from url to string
  1291. # [23:03] <Huvet> not only the parser-specific thing in between
  1292. # [23:03] * Quits: cying (~cying@70.90.171.153) (Quit: cying)
  1293. # [23:04] * Quits: surkov (~surkov@client-72-80.sibtele.com) (Quit: surkov)
  1294. # [23:04] * Quits: ap (~ap@2620:0:1b00:1191:226:4aff:fe14:aad6) (Quit: ap)
  1295. # [23:08] * Quits: svl (~me@ip565744a7.direct-adsl.nl) (Quit: And back he spurred like a madman, shrieking a curse to the sky.)
  1296. # [23:08] <Huvet> you should move to the whatwg wiki with all docs imo
  1297. # [23:09] * Quits: othermaciej (~mjs@17.246.17.57) (Quit: othermaciej)
  1298. # [23:09] * Quits: Maurice (copyman@5ED548D4.cable.ziggo.nl)
  1299. # [23:10] * Quits: miketaylr (~miketaylr@38.117.156.163) (Remote host closed the connection)
  1300. # [23:20] * Joins: ap_ (~ap@17.244.95.185)
  1301. # [23:23] * Quits: ap_ (~ap@17.244.95.185) (Client Quit)
  1302. # [23:27] * Joins: ap (~ap@17.244.95.185)
  1303. # [23:28] * Joins: mpt_ (~mpt@canonical/mpt)
  1304. # [23:30] * Quits: ap (~ap@17.244.95.185) (Client Quit)
  1305. # [23:32] * Joins: nattokirai (~nattokira@y226086.dynamic.ppp.asahi-net.or.jp)
  1306. # [23:32] * Joins: ap (~ap@17.244.95.185)
  1307. # [23:36] * Quits: BlurstOfTimes (~blurstoft@168.203.117.66) (Quit: Leaving...)
  1308. # [23:46] * Joins: cying (~cying@70.90.171.153)
  1309. # [23:52] <Lachy> foolip, yt?
  1310. # [23:53] <Lachy> foolip, there's a bug in your live microdata tool with support for additional-name
  1311. # [23:54] * Quits: drunknbass_work (~aaron@71.107.253.243) (Quit: drunknbass_work)
  1312. # [23:54] <Lachy> when there are multiple additional-name properties used, they should be comma separated when the vcard is generated, just like you do for street-address
  1313. # [23:56] <annevk> Hixie, they didn't like mappings
  1314. # [23:57] <annevk> or maybe you mean something different from what I said earlier in that thread...
  1315. # Session Close: Tue Feb 02 00:00:00 2010

The end :)