/irc-logs / freenode / #whatwg / 2012-02-23 / end

Options:

  1. # Session Start: Thu Feb 23 00:00:01 2012
  2. # Session Ident: #whatwg
  3. # [00:00] * Quits: tomasf (~tom@c-b7dbe555.024-204-6c6b7012.cust.bredbandsbolaget.se) (Quit: tomasf)
  4. # [00:01] <annevk> Hixie: oh
  5. # [00:01] <annevk> file too big?
  6. # [00:01] <Hixie> it's happened before
  7. # [00:01] <Hixie> doesn't always happen
  8. # [00:01] * Quits: pyrsmk (~pyrsmk@mau49-1-82-245-46-173.fbx.proxad.net) (Remote host closed the connection)
  9. # [00:02] <Hixie> hmm
  10. # [00:03] <annevk> I run zip and then wget
  11. # [00:03] <annevk> if you some advice for other commands I can run inbetween
  12. # [00:03] <Hixie> i'm guessing the problem is before zip
  13. # [00:03] <Hixie> probably anolis being killed by the kernel or something
  14. # [00:03] <annevk> before zip there's the spec-splitter
  15. # [00:03] <annevk> which I currently run twice
  16. # [00:03] <Hixie> or spec splitter yeah
  17. # [00:04] <Hixie> maybe you could make the spec splitter output a checkpoint file at the end, and then verify that it's there
  18. # [00:04] <annevk> but maybe I can drop the first copy
  19. # [00:04] <Hixie> why twice?
  20. # [00:04] <Hixie> so it looks like the a11y people think we should somehow expose text drawn into canvas so that it can be selected and cursored-through
  21. # [00:05] <Hixie> i have absolutely no idea how we could do that
  22. # [00:05] <Hixie> (short of using svg)
  23. # [00:05] <annevk> by reimplementing everything!
  24. # [00:06] <Hixie> annevk: my guess is that however many copies you have, the one that is used for whatwg.org is sometimes getting killed early by the kernel
  25. # [00:06] <Hixie> annevk: i would recommend the checkpoint file idea so you could at least detect that case easily
  26. # [00:07] * Quits: odinho (~odin@136-20-11.connect.netcom.no) (Ping timeout: 260 seconds)
  27. # [00:07] <Hixie> something else that might be going on is that i might be calling you again while you're running
  28. # [00:07] <Hixie> maybe detect that somehow and abort if tere's already a running instance?
  29. # [00:08] * Joins: odinho (~odin@146.247.201.186)
  30. # [00:08] <annevk> I don't know nearly enough shell script to take care of that
  31. # [00:08] <annevk> btw
  32. # [00:08] <annevk> the fragment-links.js file is generated by the spec-splitter script
  33. # [00:09] * Quits: jamesr (jamesr@nat/google/x-qvpcrwbelppfurqh) (Quit: jamesr)
  34. # [00:09] <annevk> so I should probably start including it again...
  35. # [00:09] <Hixie> it's link-fixup.js that you're not including
  36. # [00:09] <Hixie> it uses fragment-links.js
  37. # [00:09] <Hixie> which i thought you _were_ including
  38. # [00:10] <Hixie> (does it output that file last? if it does, i can use that as the checkpoint file and you don't need to do anything)
  39. # [00:11] <annevk> I am including it
  40. # [00:11] <annevk> it outputs that file last
  41. # [00:11] <Hixie> k
  42. # [00:12] <annevk> I made spec-splitter generate a single copy now
  43. # [00:12] <annevk> not spec-splitter, the shell script
  44. # [00:12] <annevk> commented the other out
  45. # [00:12] <Hixie> k
  46. # [00:12] <annevk> we'll see how it goes
  47. # [00:12] <Hixie> i made my side check for that file and not replace the online copy if it's absent
  48. # [00:16] * Quits: smaug____ (~chatzilla@193-64-22-206-nat.elisa-mobile.fi) (Ping timeout: 245 seconds)
  49. # [00:17] <pablof> i thought imagemaps might in fashion again for the canvas thing, no? :P
  50. # [00:17] <pablof> *might be
  51. # [00:19] <annevk> oh god
  52. # [00:20] <annevk> pablof: xhr will just give an error event
  53. # [00:20] <annevk> pablof: including for cross-origin requests
  54. # [00:21] * Quits: odinho (~odin@146.247.201.186) (Read error: Operation timed out)
  55. # [00:30] * Joins: jamesr (jamesr@nat/google/x-snsqmnqroegeyslg)
  56. # [00:31] <Hixie> so basically one of the a11y requests for canvas boils down to "make find in page work for text drawn to canvas"
  57. # [00:35] <pablof> annevk: back to the iframe.onerror thing, "it's iframe and it's owner Document", i'm still confused...
  58. # [00:37] <annevk> confused about what?
  59. # [00:37] <annevk> might be better to ask Hixie about it
  60. # [00:37] <annevk> i'm planning to sleep
  61. # [00:38] * Quits: othermaciej (~mjs@17.245.90.158) (Quit: othermaciej)
  62. # [00:40] <pablof> about what origins are supposed to be the same
  63. # [00:40] * Joins: rniwa (rniwa@nat/google/x-olklirpeevnijmqf)
  64. # [00:40] <Hixie> pablof: what's the question?
  65. # [00:41] <pablof> Hixie: [[ When content whose URL has the same origin as the iframe element's Document fails to load (e.g. […]), then the user agent must queue a task to fire a simple event named error at the element instead.]]
  66. # [00:42] <Hixie> yes?
  67. # [00:42] <annevk> pablof: it's the origin of the URL of the iframe and the origin of its owner Document afaict
  68. # [00:43] <Hixie> i really can't see any sane way that we could make "find in page" work for text drawn to canvas...
  69. # [00:43] <Hixie> hmmmmmm
  70. # [00:44] <Hixie> one of the design concepts for canvas is the idea that it has no backing DOM, and that if you need a backing DOM you should be using SVG
  71. # [00:44] <bga> http://www.paulgraham.com/hundred.html
  72. # [00:46] * Joins: smaug____ (~chatzilla@GZYYYDCCLXXI.gprs.sl-laajakaista.fi)
  73. # [00:48] * Joins: sicking (~chatzilla@154-93.80-90.static-ip.oleane.fr)
  74. # [00:54] * Joins: chayin_ (quassel@nat/nokia/x-umvlwcedpawoueme)
  75. # [00:54] * Joins: kborchers_ (~kborchers@unaffiliated/kborchers)
  76. # [00:54] * Joins: mven_ (~mven__@169.241.49.57)
  77. # [00:55] * Joins: Philip`_ (~philip@compass.zaynar.co.uk)
  78. # [00:56] * Joins: wookiehangover_ (~wookiehan@c-67-161-138-118.hsd1.co.comcast.net)
  79. # [00:57] <Hixie> we could have the fillText()/strokeText() methods somehow keep track of which pixels they drew to, and remember the text at those pixels, until such time as the canvas is blown away by a clearRect()...
  80. # [00:57] * Joins: bentruyman_ (~bentruyma@li159-104.members.linode.com)
  81. # [00:58] <Hixie> but that seems like it would be shockingly expensive and wouldn't even work if you were drawImage()ing stuff with text
  82. # [00:58] <Hixie> e.g. canvas to canvas
  83. # [00:58] <Hixie> unless you somehow propagated the information along...
  84. # [00:59] * Joins: AryehGregor_ (~Simetrica@cpe-72-229-29-65.nyc.res.rr.com)
  85. # [00:59] * Quits: AryehGregor_ (~Simetrica@cpe-72-229-29-65.nyc.res.rr.com) (Changing host)
  86. # [00:59] * Joins: AryehGregor_ (~Simetrica@mediawiki/simetrical)
  87. # [01:00] * Quits: kborchers (~kborchers@unaffiliated/kborchers) (Ping timeout: 252 seconds)
  88. # [01:00] * Quits: mven (~mven__@169.241.49.57) (Read error: Connection reset by peer)
  89. # [01:01] * Quits: wookiehangover (~wookiehan@c-67-161-138-118.hsd1.co.comcast.net) (Ping timeout: 252 seconds)
  90. # [01:01] * Quits: chayin (quassel@nat/nokia/x-jajenukmlrjxchyf) (Ping timeout: 252 seconds)
  91. # [01:01] * Quits: Philip` (~philip@compass.zaynar.co.uk) (Ping timeout: 252 seconds)
  92. # [01:01] * Quits: abarth (u5294@gateway/web/irccloud.com/x-bzzgwthqieaqkhvo) (Ping timeout: 252 seconds)
  93. # [01:01] * Quits: bentruyman (~bentruyma@li159-104.members.linode.com) (Ping timeout: 252 seconds)
  94. # [01:01] * Quits: webben (~benjamin@173-203-84-17.static.cloud-ips.com) (Ping timeout: 252 seconds)
  95. # [01:01] * Quits: AryehGregor (~Simetrica@mediawiki/simetrical) (Ping timeout: 252 seconds)
  96. # [01:01] * Quits: tonsofpcs (~tonsofpcs@cpe-72-230-192-8.stny.res.rr.com) (Ping timeout: 252 seconds)
  97. # [01:01] * bentruyman_ is now known as bentruyman
  98. # [01:01] * Joins: tonsofpc1 (~tonsofpcs@cpe-72-230-192-8.stny.res.rr.com)
  99. # [01:01] * Philip`_ is now known as Philip`
  100. # [01:01] <Philip`> http://simonsarris.com/blog/322-canvas-drawtext-considered-harmful - "Instead of calling drawText() to redraw my text objects each frame, I would instead create a new canvas (one never added to the DOM) for every single text object, and call drawText() on each object only once, drawing the text to its personal canvas. Then, every time I wanted to (re)draw that text object, I would call drawImage() on my real canvas, passing in the object’s ...
  101. # [01:01] <Philip`> ... personal canvas, instead of using drawText()."
  102. # [01:01] <Philip`> Sounds like copying text between canvases won't be especially rare, so a solution that doesn't work in that case is not a very good solution
  103. # [01:02] <Philip`> (A solution that does work in that case is likely to be far worse for many other reasons, of course)
  104. # [01:04] * Quits: RobbertAtWork (~Robbert@a83-160-99-114.adsl.xs4all.nl) (Quit: RobbertAtWork)
  105. # [01:04] * Quits: necolas (~necolas@5e0c715f.bb.sky.com) (Remote host closed the connection)
  106. # [01:04] * AryehGregor_ is now known as AryehGregor
  107. # [01:04] * Quits: Druid_ (~Druid@p5B05D408.dip.t-dialin.net) (Ping timeout: 265 seconds)
  108. # [01:07] * tonsofpc1 is now known as tonsofpcs
  109. # [01:07] * Joins: Druid_ (~Druid@p5B05D408.dip.t-dialin.net)
  110. # [01:07] <Philip`> I'd have thought a better way to approach a11y is to consider that the canvas is a presentation of some internal application-specific data structure (i.e. whatever data the JS uses to decide what to render), and so there should be a decent way to expose that application-specific data to external a11y tools without the significant complexity of converting it all into a DOM
  111. # [01:08] <Philip`> (One of the main advantages of canvas over SVG is that it's much easier to write code to render data since you don't have to convert it all into a DOM)
  112. # [01:10] * Quits: Druid_ (~Druid@p5B05D408.dip.t-dialin.net) (Client Quit)
  113. # [01:10] <Hixie> yeah
  114. # [01:10] <Hixie> the problem is that the AT wants a tree
  115. # [01:11] * wookiehangover_ is now known as wookiehangover
  116. # [01:11] <Hixie> which suggests using the DOM
  117. # [01:13] <Philip`> Could it equally suggest something like a JSON object? (with some specially-designed vocabulary so it exposes the data needed for AT with minimal overhead)
  118. # [01:14] * Philip` doesn't automatically equate "tree" with "DOM"
  119. # [01:14] * Joins: abarth (~abarth@173-164-128-209-SFBA.hfc.comcastbusiness.net)
  120. # [01:15] <gsnedders> I do. Whenever I want a tree data structure, I map my data to the DOM.
  121. # [01:16] <Hixie> Philip`: specifically, the AT wants a tree with AT annotations and so on, which is why it suggests the DOM (which already has all those built in, though not positions for the canvas)
  122. # [01:16] <Hixie> Philip`: certainly it's no the only solution, or maybe even the best
  123. # [01:17] <Hixie> Philip`: the idea of describing it as a JS object and then sending the object to the AT each time the canvas changes is interesting...
  124. # [01:17] <Hixie> hmm... what would it looks like. you'd have a bunch of nested arrays, each of which was a level of the hierarchy
  125. # [01:18] <Hixie> each would have a path associated with it, presumably, and a role
  126. # [01:18] <Hixie> and either a list of descendants, or a string, and you'd have to somehow give the precise position of each glyph in that string
  127. # [01:18] <annevk> yeah and only <canvas> authored by superhumans will use it
  128. # [01:19] <Hixie> we could provide APIs to automatically generate much of the information so it wouldn't be hard to build...
  129. # [01:20] <Philip`> Nobody in reality is going to maintain a DOM equivalent of their canvas-based code as a fallback for non-canvas-supporting graphical users, so they're only ever going to bother with the extra work when they're being forced to add a11y support, so if a non-zero number of people are forced to support a11y then it seems beneficial to provide an efficient a11y-specific API for them
  130. # [01:22] * Quits: wookiehangover (~wookiehan@c-67-161-138-118.hsd1.co.comcast.net) (Read error: Connection reset by peer)
  131. # [01:23] * Quits: drublic (~drublic@frbg-5d84e71b.pool.mediaWays.net) (Remote host closed the connection)
  132. # [01:23] <Hixie> has anyone ever written an accessible version of asteroids?
  133. # [01:24] <Hixie> http://www.kevs3d.co.uk/dev/asteroids/ is one of the samples that was listed on the wiki page as an inaccessible canvas
  134. # [01:24] <Hixie> and i'm curious to see what an accessible version would be like
  135. # [01:25] <nimbu> isnt canvas essentially just like video but animated pixels?
  136. # [01:25] <nimbu> or pixel hacking
  137. # [01:26] <nimbu> i dont understand why/how accessibility can be added
  138. # [01:26] * Joins: wookiehangover (~wookiehan@c-67-161-138-118.hsd1.co.comcast.net)
  139. # [01:26] <nimbu> i looked at http://game-accessibility.com/
  140. # [01:26] <nimbu> but didnt find anything useful
  141. # [01:26] <nimbu> given a lot of canvas seems to be used for retro games
  142. # [01:27] * Joins: Yuhong (~chatzilla@76.178.157.127)
  143. # [01:28] <Yuhong> FYI on the IE DOM: http://news.ycombinator.com/item?id=3233935
  144. # [01:29] * Quits: sicking (~chatzilla@154-93.80-90.static-ip.oleane.fr) (*.net *.split)
  145. # [01:29] * Quits: rniwa (rniwa@nat/google/x-olklirpeevnijmqf) (*.net *.split)
  146. # [01:29] * Quits: jamesr (jamesr@nat/google/x-snsqmnqroegeyslg) (*.net *.split)
  147. # [01:29] * Quits: nielsle (~nielsle@3239059-cl69.boa.fiberby.dk) (*.net *.split)
  148. # [01:29] * Quits: yutak (~yutak@2401:fa00:4:1004:baac:6fff:fe99:adfb) (*.net *.split)
  149. # [01:29] * Quits: jacobolus (~jacobolus@50-0-133-210.dsl.static.sonic.net) (*.net *.split)
  150. # [01:29] * Quits: macpherson (macpherson@nat/google/x-bxkyypwlxrcceaor) (*.net *.split)
  151. # [01:29] * Quits: incidence (jussi@unaffiliated/incidence) (*.net *.split)
  152. # [01:29] * Quits: hoodow (~hoodow@pdpc/supporter/active/hoodow) (*.net *.split)
  153. # [01:29] * Quits: pocopina (u5310@gateway/web/irccloud.com/x-nglpsiqqedltxzxw) (*.net *.split)
  154. # [01:29] * Quits: tomaw (tom@freenode/staff/tomaw) (*.net *.split)
  155. # [01:29] * Quits: mbatle (mbatle@pasanda.collabora.co.uk) (*.net *.split)
  156. # [01:29] * Quits: wirepair (fbi@random.supermario.org) (*.net *.split)
  157. # [01:29] * Quits: gsnedders (~gsnedders@mail.gsnedders.com) (*.net *.split)
  158. # [01:29] * Quits: kbrosnan (kbrosnan@firefox/community/qa/kbrosnan) (*.net *.split)
  159. # [01:29] * Joins: drublic (~drublic@frbg-5d84e71b.pool.mediaWays.net)
  160. # [01:30] * Quits: scor (~scor@drupal.org/user/52142/view) (Quit: scor)
  161. # [01:32] * Joins: webben (~benjamin@173-203-84-17.static.cloud-ips.com)
  162. # [01:33] <TabAtkins_> nimbu: Canvas can theoretically be used for anything, so some of them are possible/appropriate to make accessible.
  163. # [01:33] <TabAtkins_> (I think that most, or maybe all, of these are bad uses of canvas.)
  164. # [01:33] <nimbu> yeah precisely.
  165. # [01:33] <nimbu> why would you optimize for bad usecases? :/
  166. # [01:34] <Hixie> bbl
  167. # [01:34] <TabAtkins_> nimbu: I don't think we should. That's why I've stopped paying attention to public-html.
  168. # [01:34] <TabAtkins_> Since it's almost entirely confused a11y arguments.
  169. # [01:34] <Philip`> nimbu: Because accessibility is a core principle of the web, and canvas is part of the web, so canvas must support accessibility
  170. # [01:35] * Joins: sicking (~chatzilla@154-93.80-90.static-ip.oleane.fr)
  171. # [01:35] * Joins: rniwa (rniwa@nat/google/x-olklirpeevnijmqf)
  172. # [01:35] * Joins: jamesr (jamesr@nat/google/x-snsqmnqroegeyslg)
  173. # [01:35] * Joins: nielsle (~nielsle@3239059-cl69.boa.fiberby.dk)
  174. # [01:35] * Joins: yutak (~yutak@2401:fa00:4:1004:baac:6fff:fe99:adfb)
  175. # [01:35] * Joins: jacobolus (~jacobolus@50-0-133-210.dsl.static.sonic.net)
  176. # [01:35] * Joins: macpherson (macpherson@nat/google/x-bxkyypwlxrcceaor)
  177. # [01:35] * Joins: incidence (jussi@unaffiliated/incidence)
  178. # [01:35] * Joins: hoodow (~hoodow@pdpc/supporter/active/hoodow)
  179. # [01:35] * Joins: pocopina (u5310@gateway/web/irccloud.com/x-nglpsiqqedltxzxw)
  180. # [01:35] * Joins: tomaw (tom@freenode/staff/tomaw)
  181. # [01:35] * Joins: mbatle (mbatle@pasanda.collabora.co.uk)
  182. # [01:35] * Joins: wirepair (fbi@random.supermario.org)
  183. # [01:35] * Joins: gsnedders (~gsnedders@mail.gsnedders.com)
  184. # [01:35] * Joins: kbrosnan (kbrosnan@firefox/community/qa/kbrosnan)
  185. # [01:35] <nimbu> Philip`: how are images and videos supporting accessibility?
  186. # [01:35] <nimbu> i would think canvas belongs there
  187. # [01:35] <Philip`> nimbu: With longdesc
  188. # [01:35] <Philip`> (and alt)
  189. # [01:35] <nimbu> yeah there is nothing about making animated gifs accessible
  190. # [01:35] <Philip`> and subtitles etc for videos
  191. # [01:35] <Philip`> You put a description of the animated GIF in its longdesc
  192. # [01:36] <Philip`> (though of course HTML5 doesn't support longdesc (unless the HTML WG changed that yet?))
  193. # [01:36] <Yuhong> By jbeda, which now works for Google too.
  194. # [01:37] <nimbu> in my view i dont see how anything more is required specifically for canvas.
  195. # [01:38] <AryehGregor> Hixie, you should never have included author conformance requirements in the spec. Would have saved you practically all this grief.
  196. # [01:38] <AryehGregor> UA processing only, that's the way to go.
  197. # [01:38] <Philip`> Wouldn't that just be shifting the grief to someone else?
  198. # [01:39] <Philip`> and if those someones handle it more poorly, then it makes the web worse for authors
  199. # [01:39] <nimbu> it is like saying we should optimize for web devs who use tables for layouts
  200. # [01:39] <AryehGregor> Only if someone bothers to write authoring conformance requirements for markup. Why does that have to be anything official anyway? Let people write their own private lint programs that match their own preferences.
  201. # [01:40] <AryehGregor> nimbu, how many hours of implementer time do you think have been spent optimizing for that case? :)
  202. # [01:40] <AryehGregor> I bet lots.
  203. # [01:40] <nimbu> :/
  204. # [01:40] * Quits: drublic (~drublic@frbg-5d84e71b.pool.mediaWays.net) (Remote host closed the connection)
  205. # [01:40] * Quits: sicking (~chatzilla@154-93.80-90.static-ip.oleane.fr) (Ping timeout: 272 seconds)
  206. # [01:44] <Philip`> If authoring conformance didn't exist, it would be necessary to invent it
  207. # [01:44] <Philip`> People don't like working without rules from authorities
  208. # [01:45] <TabAtkins_> There really is a distinction between what we are forced to support for compat and what we want to encourage people to write.
  209. # [01:48] <zewt> authoring conformance should be determined by the rules for implementations
  210. # [01:48] <zewt> the idea that something must be supported by implementations with a specific behavior, yet is non-conforming, has always felt a bit nonsensical to me
  211. # [01:48] * Joins: sicking (~chatzilla@154-93.80-90.static-ip.oleane.fr)
  212. # [01:50] <TabAtkins_> I don't understand that position. :/
  213. # [01:54] <zewt> i don't understand the position that something is fully defined, required to be supported, and not to be used
  214. # [01:54] <TabAtkins_> Mistakes were made, shrug your shoulders and move on?
  215. # [01:54] <TabAtkins_> Also: "required to be supported" is potentially time-variable.
  216. # [01:55] <TabAtkins_> If you want to attempt to drive it back to "not", you have to get people to stop using it in new things.
  217. # [01:55] <zewt> conformance isn't just "we didn't mean to allow this", though
  218. # [01:56] <TabAtkins_> I don't understand.
  219. # [01:58] * Joins: yuuki (~kobayashi@58x158x182x50.ap58.ftth.ucom.ne.jp)
  220. # [01:58] <zewt> ugh. hard for me to do a google search right now, because the idiotic animated front page is lagging text entry on my laptop by several seconds
  221. # [01:59] <zewt> whoever is doing that crap needs to be shot out of a cannon
  222. # [02:00] * Quits: Yuhong (~chatzilla@76.178.157.127) (Quit: ChatZilla 0.9.88 [Firefox 10.0.1/20120208060813])
  223. # [02:02] * Joins: jaredwsmith (~jaredwsmi@c-69-255-40-225.hsd1.va.comcast.net)
  224. # [02:04] * heycam is now known as heycam|away
  225. # [02:04] * Joins: scor (~scor@drupal.org/user/52142/view)
  226. # [02:09] * Quits: sicking (~chatzilla@154-93.80-90.static-ip.oleane.fr) (Ping timeout: 240 seconds)
  227. # [02:09] <zewt> TabAtkins_: there's certainly no expectation that browsers will ever change to reject pages with no <title>, for example
  228. # [02:10] <TabAtkins_> Sure. And yet, there's good reason to include a <title>.
  229. # [02:11] <TabAtkins_> In general, the author requirements arent' meaningless - there are good reasons to prefer one solution, even if other solutions are required to be supported.
  230. # [02:11] <TabAtkins_> Pushing people toward those better solutions is a positive.
  231. # [02:14] * Joins: tomasf (~tom@2002:55e5:dbb7:0:5907:5038:8fee:4089)
  232. # [02:17] <zewt> i'm not against making good practice recommendations, it's just the normative "must" that feels a bit too strong
  233. # [02:17] * Quits: jacobolus (~jacobolus@50-0-133-210.dsl.static.sonic.net) (Remote host closed the connection)
  234. # [02:17] <TabAtkins_> In practice it's a recommendation, since it only actually shows up when you run it through a validator.
  235. # [02:18] <zewt> so, "should" :)
  236. # [02:18] <TabAtkins_> Meh, no reason to split hairs on it. Might as well pretend it's a requirement so you don't have people lawyering over it.
  237. # [02:21] <gsnedders> TabAtkins_: See public-html, it's typically been full of lawyering ove rit
  238. # [02:21] <gsnedders> *over it
  239. # [02:21] * Quits: ehsan (~ehsan@66.207.208.98) (Remote host closed the connection)
  240. # [02:22] <TabAtkins_> gsnedders: I mean authors. ^_^
  241. # [02:25] * Quits: smaug____ (~chatzilla@GZYYYDCCLXXI.gprs.sl-laajakaista.fi) (Ping timeout: 260 seconds)
  242. # [02:27] * Quits: dbaron (~dbaron@nat/mozilla/x-mhjpjmxihxfvotih) (Quit: 8403864 bytes have been tenured, next gc will be global.)
  243. # [02:27] * Joins: ehsan (~ehsan@66.207.208.98)
  244. # [02:27] * Quits: ehsan (~ehsan@66.207.208.98) (Remote host closed the connection)
  245. # [02:27] * Joins: sicking (~chatzilla@154-93.80-90.static-ip.oleane.fr)
  246. # [02:37] * heycam|away is now known as heycam
  247. # [02:38] * Joins: Druid_ (~Druid@p5B05D408.dip.t-dialin.net)
  248. # [02:38] * Quits: ap (~ap@2620:149:4:1b01:f416:46bf:bae4:649f) (Quit: ap)
  249. # [02:41] * Joins: smaug____ (~chatzilla@GYYYMYDCLIII.gprs.sl-laajakaista.fi)
  250. # [02:43] <Hixie> AryehGregor: the grief doesn't come from having authoring conformance criteria, it comes from having a system that prefers people with time than people with good opinions.
  251. # [02:44] <Hixie> AryehGregor: (notice how the whatwg system doesn't waste my time in the same way even though the same issues are discussed)
  252. # [02:44] <Taggnostr> livedom.validator.nu just froze my firefox
  253. # [02:45] <Taggnostr> is the author of livedom in this channel?
  254. # [02:49] * Quits: jwalden (~waldo@2620:101:8003:200:224:d7ff:fef0:8d90) (Quit: my work here is finished)
  255. # [02:51] * Joins: nattokirai (~nattokira@rtr.mozilla.or.jp)
  256. # [02:51] * Joins: miketaylr (~miketaylr@cpe-68-203-0-108.austin.res.rr.com)
  257. # [02:52] <TabAtkins_> I presume it's a clone of Hixie's live dom viewer, so yes.
  258. # [02:52] <TabAtkins_> Taggnostr: ^^^
  259. # [02:53] <Taggnostr> it freezes if I enter a single & after the doctype (the doctype is probably unrelated though)
  260. # [02:54] <TabAtkins_> Whoops, indeed it does freeze.
  261. # [02:54] <TabAtkins_> Freezes Chrome too.
  262. # [02:54] <TabAtkins_> hsivonen: Is this something you ahve control over?
  263. # [02:55] * Quits: rniwa (rniwa@nat/google/x-olklirpeevnijmqf) (Quit: rniwa)
  264. # [02:55] <smaug____> hsivonen will be asleep still few hours
  265. # [03:06] * Quits: smaug____ (~chatzilla@GYYYMYDCLIII.gprs.sl-laajakaista.fi) (Ping timeout: 252 seconds)
  266. # [03:06] * Joins: ehsan (~ehsan@209.29.21.241)
  267. # [03:06] * Quits: temp01 (~temp01@unaffiliated/temp01) (Ping timeout: 276 seconds)
  268. # [03:07] * Quits: sicking (~chatzilla@154-93.80-90.static-ip.oleane.fr) (Ping timeout: 276 seconds)
  269. # [03:08] * Joins: temp01 (~temp01@unaffiliated/temp01)
  270. # [03:08] <Taggnostr> uhm, maybe I found a bug in the HTML5 standard too
  271. # [03:09] * Joins: jochen___ (jochen@nat/google/x-enykusdjwqlasdna)
  272. # [03:13] * Quits: jochen__ (jochen@nat/google/x-mvbxeytqpptuojog) (Ping timeout: 240 seconds)
  273. # [03:13] * jochen___ is now known as jochen__
  274. # [03:13] * kborchers_ is now known as kborchers
  275. # [03:27] * Quits: tantek (~tantek@nat/mozilla/x-dmvzizhkubzwselk) (Quit: tantek)
  276. # [03:44] * Quits: aklein (u4454@gateway/web/irccloud.com/x-wcvqqukqjpslnbgy)
  277. # [03:52] * Quits: ehsan (~ehsan@209.29.21.241) (Read error: Connection reset by peer)
  278. # [03:53] * Joins: ehsan (~ehsan@209.29.21.241)
  279. # [04:00] * Joins: plutoniix (~plutoniix@ppp-124-120-112-154.revip2.asianet.co.th)
  280. # [04:01] * Quits: schnoomac (~schnoomac@melbourne.99cluster.com) (Ping timeout: 260 seconds)
  281. # [04:02] * Joins: jacobolus (~jacobolus@70-36-215-74.dsl.dynamic.sonic.net)
  282. # [04:07] * Quits: pablof (~pablof@144.189.101.1) (Quit: ^z)
  283. # [04:11] * Quits: jaredwsmith (~jaredwsmi@c-69-255-40-225.hsd1.va.comcast.net)
  284. # [04:19] * Joins: myakura (~myakura@FL1-110-233-178-43.tky.mesh.ad.jp)
  285. # [04:32] <kennyluck> I actually think all other specifications should start to have authoring conformance. For example, If browser vendors don't want authors to use localStorage and it is not likely to be maintained well, it should be made non-conforming.
  286. # [04:33] * Quits: scor (~scor@drupal.org/user/52142/view) (Quit: scor)
  287. # [04:52] * Joins: scor (~scor@drupal.org/user/52142/view)
  288. # [04:58] * Quits: scor (~scor@drupal.org/user/52142/view) (Quit: scor)
  289. # [05:00] * Quits: jacobolus (~jacobolus@70-36-215-74.dsl.dynamic.sonic.net) (Remote host closed the connection)
  290. # [05:07] * Joins: schnoomac (~schnoomac@119.63.221.131)
  291. # [05:13] * Joins: jacobolus (~jacobolus@70-36-215-74.dsl.dynamic.sonic.net)
  292. # [05:26] * Quits: ezoe (~ezoe@203-140-88-98f1.kyt1.eonet.ne.jp) (Read error: Connection reset by peer)
  293. # [05:31] * Quits: jochen__ (jochen@nat/google/x-enykusdjwqlasdna) (Remote host closed the connection)
  294. # [05:31] * Joins: jochen__ (jochen@nat/google/x-rdbkdwfzoeirxirj)
  295. # [05:36] * Joins: yoshiaki (~yoshiaki@netDHCP-174.keio.w3.org)
  296. # [05:42] * Quits: jamesr (jamesr@nat/google/x-snsqmnqroegeyslg) (Quit: jamesr)
  297. # [05:48] * Quits: jacobolus (~jacobolus@70-36-215-74.dsl.dynamic.sonic.net) (Remote host closed the connection)
  298. # [05:57] * Joins: ezoe (~ezoe@203-140-91-138f1.kyt1.eonet.ne.jp)
  299. # [06:07] * Quits: Stikki (~lordstich@dsl-pribrasgw1-ff17c300-80.dhcp.inet.fi) (Ping timeout: 265 seconds)
  300. # [06:08] * Joins: karlcow (~karl@nerval.la-grange.net)
  301. # [06:12] * Quits: myakura (~myakura@FL1-110-233-178-43.tky.mesh.ad.jp) (Remote host closed the connection)
  302. # [06:12] * Quits: yoshiaki (~yoshiaki@netDHCP-174.keio.w3.org) (Remote host closed the connection)
  303. # [06:16] <llrcombs> kennyluck: it appears that browser vendors are using localStorage, though
  304. # [06:27] * heycam is now known as heycam|away
  305. # [06:42] * Quits: abarth (~abarth@173-164-128-209-SFBA.hfc.comcastbusiness.net) (Quit: abarth)
  306. # [06:42] * Joins: abarth (u5294@gateway/web/irccloud.com/x-xkndlhzabaoxmzhh)
  307. # [06:55] * Joins: myakura (~myakura@FL1-110-233-178-43.tky.mesh.ad.jp)
  308. # [06:58] * Joins: Evanescence (~Evanescen@60.183.208.198)
  309. # [07:06] * Quits: miketaylr (~miketaylr@cpe-68-203-0-108.austin.res.rr.com) (Quit: Leaving...)
  310. # [07:10] * Joins: silentimp_ (~silentimp@129-123-132-95.pool.ukrtel.net)
  311. # [07:11] * Quits: myakura (~myakura@FL1-110-233-178-43.tky.mesh.ad.jp) (Remote host closed the connection)
  312. # [07:12] * Quits: silentimp (~silentimp@24-238-133-95.pool.ukrtel.net) (Ping timeout: 276 seconds)
  313. # [07:12] * silentimp_ is now known as silentimp
  314. # [07:12] * Joins: niloy (~niloy@122.179.129.91)
  315. # [07:30] * Quits: schnoomac (~schnoomac@119.63.221.131) (Quit: schnoomac)
  316. # [07:37] * Joins: LBP (~Mirc@pD9EB229C.dip0.t-ipconnect.de)
  317. # [07:41] * Joins: hij1nx (~hij1nx@cpe-98-14-168-178.nyc.res.rr.com)
  318. # [07:45] * Joins: Ducki (~Ducki@pD9E39FD5.dip0.t-ipconnect.de)
  319. # [07:49] * Joins: jacobolus (~jacobolus@50-0-133-210.dsl.static.sonic.net)
  320. # [07:50] * Quits: silentimp (~silentimp@129-123-132-95.pool.ukrtel.net) (Read error: Connection reset by peer)
  321. # [07:50] * Joins: silentimp (~silentimp@129-123-132-95.pool.ukrtel.net)
  322. # [08:07] * Joins: maikmerten (~merten@ls5dhcp200.cs.uni-dortmund.de)
  323. # [08:16] * Joins: skylamer` (cgskylamer@78.90.213.55)
  324. # [08:27] * Joins: zcorpan (~zcorpan@c-699de355.410-6-64736c14.cust.bredbandsbolaget.se)
  325. # [08:28] * zcorpan gives Hixie a cookie :-)
  326. # [08:30] <MikeSmith> so I've been reminded that Jetty has built-in WebSocket support
  327. # [08:31] <MikeSmith> so I reckon I can install Jetty on w3c-test.org, for those who care to write the server parts in Java
  328. # [08:35] * Joins: michaelrtm (~michaelrt@202.296.dsl.mel.iprimus.net.au)
  329. # [08:35] * Quits: madcow (~michaelrt@202.296.dsl.mel.iprimus.net.au) (Read error: Connection reset by peer)
  330. # [08:37] * Quits: Evanescence (~Evanescen@60.183.208.198) (Quit: my website: http://stardiviner.dyndns-blog.com/)
  331. # [08:39] <zcorpan> MikeSmith: filed
  332. # [08:40] <MikeSmith> thanks
  333. # [08:40] * Joins: tantek (~tantek@70-36-139-112.dsl.dynamic.sonic.net)
  334. # [08:40] * Joins: pablof (~pablof@c-98-207-157-89.hsd1.ca.comcast.net)
  335. # [08:41] * Joins: Thezilch (~fuz007@cpe-75-85-89-34.socal.res.rr.com)
  336. # [08:42] * Quits: ezoe (~ezoe@203-140-91-138f1.kyt1.eonet.ne.jp) (Ping timeout: 276 seconds)
  337. # [08:45] * Quits: Bass10 (Bass10@c-76-113-194-7.hsd1.mn.comcast.net) (Ping timeout: 244 seconds)
  338. # [08:51] * Joins: jochen___ (jochen@nat/google/x-tfjcpnhrkmkhpcad)
  339. # [08:52] * Joins: RobbertAtWork (~Robbert@a83-160-99-114.adsl.xs4all.nl)
  340. # [08:52] * Joins: mishunov (~spliter@77.88.72.162)
  341. # [08:53] * Quits: jochen__ (jochen@nat/google/x-rdbkdwfzoeirxirj) (Ping timeout: 240 seconds)
  342. # [08:53] * jochen___ is now known as jochen__
  343. # [08:57] * Joins: Evanescence (~Evanescen@60.183.194.131)
  344. # [08:59] <hsivonen> See the last paragraph of http://www.ietf.org/mail-archive/web/apps-discuss/current/msg04355.html
  345. # [09:00] * Quits: plutoniix (~plutoniix@ppp-124-120-112-154.revip2.asianet.co.th) (Ping timeout: 244 seconds)
  346. # [09:01] * Joins: necolas (~necolas@5e0c715f.bb.sky.com)
  347. # [09:01] <hsivonen> TabAtkins_: that livedom.validator.nu freeze is interesting. thanks
  348. # [09:01] <annevk> hsivonen: that email, wow
  349. # [09:02] <MikeSmith> hahaha
  350. # [09:02] <MikeSmith> who is this joker?
  351. # [09:03] <MikeSmith> hsivonen: he clearly has *real* implementors in mind
  352. # [09:03] <MikeSmith> not browser makers
  353. # [09:03] <hsivonen> MikeSmith: he is the Designated Expert
  354. # [09:03] <MikeSmith> oh geez
  355. # [09:04] <Hixie> did you explain to him you were describing reality?
  356. # [09:04] <MikeSmith> I guess I should shut up
  357. # [09:05] <MikeSmith> It's *a* reality
  358. # [09:05] <MikeSmith> there are many other possible realities
  359. # [09:05] <hsivonen> Hixie: no. I expected Alexey and Julian would know that I'm interested in reality
  360. # [09:05] <Hixie> um
  361. # [09:05] <Hixie> well that was silly
  362. # [09:05] <Hixie> :-P
  363. # [09:06] <hsivonen> in fairness, what I suggested was a synthesis of Gecko, IE and WebKit behavior
  364. # [09:06] <hsivonen> so what I expect to become reality in Gecko--not quite the current reality
  365. # [09:07] * Joins: PalleZingmark (~Adium@217.13.228.226)
  366. # [09:07] * Quits: michaelrtm (~michaelrt@202.296.dsl.mel.iprimus.net.au) (Read error: Connection reset by peer)
  367. # [09:07] <hsivonen> as in, becomes reality once I get around to implementing the BOM precedence change annevk suggested
  368. # [09:07] * Joins: madcow (~michaelrt@202.296.dsl.mel.iprimus.net.au)
  369. # [09:10] <MikeSmith> btw, fitting that the IETF mail-archive server turns "This seems naïve" into "This seems naÃve."
  370. # [09:11] <annevk> no Unicode man
  371. # [09:11] <annevk> us-ascii!!!!
  372. # [09:11] <zcorpan> also funny that he thinks utf-8-only for new formats is ridicolous
  373. # [09:13] * Joins: plutoniix (~plutoniix@ppp-124-122-110-11.revip2.asianet.co.th)
  374. # [09:13] <zcorpan> s/o/u/
  375. # [09:13] <annevk> I think that comment might have only been about the bits before the text on new types
  376. # [09:14] <annevk> happy to see he thinks text/css, text/html, etc. ridiculous though
  377. # [09:15] <zcorpan> well i can agree text/html is ridiculous
  378. # [09:17] * Quits: kenne (kenneth@nat/nokia/x-bskixnzmtzdfrasx) (Read error: Connection reset by peer)
  379. # [09:17] <Hixie> who wouldn't
  380. # [09:20] * Quits: jacobolus (~jacobolus@50-0-133-210.dsl.static.sonic.net) (Ping timeout: 260 seconds)
  381. # [09:21] * Joins: kenne (kenneth@nat/nokia/x-rlvszvpjmjjchgof)
  382. # [09:22] * Quits: chriseppstein (~chrisepps@99-6-85-4.lightspeed.sntcca.sbcglobal.net) (Quit: chriseppstein)
  383. # [09:23] <hsivonen> MikeSmith: that "naÃve" thing is awesome.
  384. # [09:24] <MikeSmith> yeah man
  385. # [09:24] <MikeSmith> in a number of ways
  386. # [09:24] <annevk> we're still discussing StreamBuilder?
  387. # [09:24] <annevk> ugh
  388. # [09:24] <annevk> I wonder if I'll ever get a reply to my feedback then...
  389. # [09:26] * Joins: graememcc (~chatzilla@host86-150-157-88.range86-150.btcentralplus.com)
  390. # [09:26] * Quits: necolas (~necolas@5e0c715f.bb.sky.com) (Remote host closed the connection)
  391. # [09:32] * Quits: skylamer` (cgskylamer@78.90.213.55) (Read error: Connection reset by peer)
  392. # [09:35] * Joins: skylamer` (cgskylamer@78.90.213.55)
  393. # [09:37] * Joins: gwicke (~gabriel@212.255.45.180)
  394. # [09:41] * Quits: Thezilch (~fuz007@cpe-75-85-89-34.socal.res.rr.com) (Ping timeout: 272 seconds)
  395. # [09:59] * Joins: tomasf_ (~tomasf@77.72.97.5.c.fiberdirekt.net)
  396. # [10:00] * Quits: nattokirai (~nattokira@rtr.mozilla.or.jp) (Quit: nattokirai)
  397. # [10:06] * Quits: pablof (~pablof@c-98-207-157-89.hsd1.ca.comcast.net) (Quit: ^z)
  398. # [10:22] * Quits: jdong_ (~jdong@222.126.155.250) (Remote host closed the connection)
  399. # [10:24] * Quits: hij1nx (~hij1nx@cpe-98-14-168-178.nyc.res.rr.com) (Quit: hij1nx)
  400. # [10:25] * Joins: drublic (~drublic@frbg-5d84f71b.pool.mediaWays.net)
  401. # [10:26] <annevk> iso-2022-cn is quite the mess
  402. # [10:36] * Quits: RobbertAtWork (~Robbert@a83-160-99-114.adsl.xs4all.nl) (Quit: RobbertAtWork)
  403. # [10:37] <bga> http://groups.google.com/group/jsmentors/browse_thread/thread/910bc55b2cc9be54
  404. # [10:37] <bga> i wonder too if there is valid way
  405. # [10:38] <bga> everyone hate same origin policy
  406. # [10:41] * Joins: svl (~me@89.128.148.64)
  407. # [10:42] * Joins: jdong_ (~jdong@222.126.155.250)
  408. # [10:43] * Joins: RobbertAtWork (~Robbert@a83-160-99-114.adsl.xs4all.nl)
  409. # [10:44] * Joins: necolas (~necolas@109.231.202.66)
  410. # [10:47] * Joins: roc (~chatzilla@81.130.197.83)
  411. # [10:57] * Quits: Lachy (~Lachy@cm-84.215.13.244.getinternet.no) (Quit: Computer has gone to sleep.)
  412. # [10:58] * Joins: drublic_ (~drublic@frbg-5f732aea.pool.mediaWays.net)
  413. # [11:00] * Quits: drublic (~drublic@frbg-5d84f71b.pool.mediaWays.net) (Ping timeout: 276 seconds)
  414. # [11:10] * Joins: sicking (~chatzilla@154-93.80-90.static-ip.oleane.fr)
  415. # [11:10] * zcorpan tries switching default search engine to ddg
  416. # [11:14] * Quits: drublic_ (~drublic@frbg-5f732aea.pool.mediaWays.net) (Read error: Connection reset by peer)
  417. # [11:14] * Joins: drublic (~drublic@frbg-5f732aea.pool.mediaWays.net)
  418. # [11:15] * Quits: [[zz]] (~q@101.108.111.35) (Ping timeout: 255 seconds)
  419. # [11:19] * Quits: richt (richt@nat/opera/x-maytywehnhfyoinr) (Ping timeout: 245 seconds)
  420. # [11:19] * Joins: richt (~richt@guest.opera.com)
  421. # [11:21] * Joins: pyrsmk (~pyrsmk@mau49-1-82-245-46-173.fbx.proxad.net)
  422. # [11:25] * Quits: danbri (~danbri@cable-146-255-156-245.dynamic.telemach.ba) (Ping timeout: 244 seconds)
  423. # [11:25] * Joins: nonge_ (~nonge@p5082974F.dip.t-dialin.net)
  424. # [11:26] * Joins: danbri (~danbri@cable-146-255-156-245.dynamic.telemach.ba)
  425. # [11:27] <annevk> oh hey steve faulkner, having fun making shit up? cf https://twitter.com/#!/stevefaulkner/status/172624731651059713
  426. # [11:27] * Quits: scott_gonzalez (~gonzasi0@205.186.165.147) (Ping timeout: 252 seconds)
  427. # [11:28] * Quits: divya (~nimbu@ve.hsh6wjwx.vesrv.com) (Quit: ZNC - http://znc.sourceforge.net)
  428. # [11:28] <hsivonen> how annoying. now my apps-discuss posts don't show up in the archive but I didn't get confirmation email, either
  429. # [11:28] * Joins: [[zz]] (~q@125.25.227.158.adsl.dynamic.totbb.net)
  430. # [11:28] <annevk> prolly just takes a while
  431. # [11:29] <annevk> IETF lists are a lot slower than W3C lists from what I remember
  432. # [11:29] * Joins: scott_gonzalez (~gonzasi0@205.186.165.147)
  433. # [11:29] <annevk> takes a while to degrade all that Unicode going around these days
  434. # [11:29] <hsivonen> yeah. in the archive now
  435. # [11:29] * Quits: nonge (~nonge@p5082B03E.dip.t-dialin.net) (Ping timeout: 265 seconds)
  436. # [11:30] <jgraham> annevk: Happily he links to his source, so anyone who bothers to check will realise that he utterly missed the point
  437. # [11:30] <annevk> guess so
  438. # [11:31] * Joins: divya__ (~divya__@ve.hsh6wjwx.vesrv.com)
  439. # [11:33] * Joins: kenneth_ (kenneth@nat/nokia/x-vmmbjlmuoscjmjjy)
  440. # [11:33] <hsivonen> I like it how steve uses "self-selected" disparagingly of #whatwg regulars. as if the WAI isn't self-selected.
  441. # [11:34] * Quits: kenne (kenneth@nat/nokia/x-rlvszvpjmjjchgof) (Read error: Connection reset by peer)
  442. # [11:34] * kenneth_ is now known as kenne
  443. # [11:35] <annevk> hsivonen: are you going to defined the 16-bit code units?
  444. # [11:36] <annevk> hsivonen: apparently there are some actual problems with ECMAScript: http://code.google.com/p/v8/issues/detail?id=761
  445. # [11:36] * Joins: kenneth_ (kenneth@nat/nokia/x-pgljdfjreuafbmch)
  446. # [11:36] <zcorpan> didn't know steve is the new lastweekinhtml5
  447. # [11:36] <zcorpan> hi steve!
  448. # [11:37] * Quits: kenne (kenneth@nat/nokia/x-vmmbjlmuoscjmjjy) (Read error: Connection reset by peer)
  449. # [11:37] * Joins: Lachy (Lachy@nat/opera/x-znbocqmfsyklaetm)
  450. # [11:39] <hsivonen> annevk: s/defined/defend/ ?
  451. # [11:39] <annevk> yeah oops
  452. # [11:39] <hsivonen> annevk: I guess I should in due course, but please go ahead and do so before I get to it
  453. # [11:39] <annevk> sunny in Oslo
  454. # [11:39] <annevk> yay
  455. # [11:40] <annevk> I'm not sure I know enough about grapheme clusters
  456. # [11:41] * Quits: roc (~chatzilla@81.130.197.83) (Ping timeout: 240 seconds)
  457. # [11:41] <annevk> I guess I can read http://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries
  458. # [11:41] <hsivonen> zcorpan: Mr. Last Week never commented on any accessibility topic
  459. # [11:41] * Quits: RobbertAtWork (~Robbert@a83-160-99-114.adsl.xs4all.nl) (Quit: RobbertAtWork)
  460. # [11:41] <annevk> I didn't even know stuff like g̈ existed
  461. # [11:41] <annevk> pretty wild
  462. # [11:42] <annevk> a ̈ test
  463. # [11:42] <jgraham> hsivonen: Surely your're not saying the MLW hated a11y?!
  464. # [11:43] * Joins: RobbertAtWork (~Robbert@a83-160-99-114.adsl.xs4all.nl)
  465. # [11:43] <jgraham> s/your/you/
  466. # [11:43] <annevk> better start packing
  467. # [11:47] <zcorpan> hsivonen: what a missed opportunity!
  468. # [11:50] * Quits: danbri (~danbri@cable-146-255-156-245.dynamic.telemach.ba) (Ping timeout: 244 seconds)
  469. # [12:03] * gwicke is now known as gwicke_away
  470. # [12:04] * Quits: richt (~richt@guest.opera.com) (Remote host closed the connection)
  471. # [12:08] * Quits: mishunov (~spliter@77.88.72.162) (Quit: mishunov)
  472. # [12:13] * Quits: annevk (~annevk@a82-161-179-17.adsl.xs4all.nl) (Quit: annevk)
  473. # [12:15] * Joins: richt (richt@nat/opera/x-wppouhjxpuzxkmsh)
  474. # [12:17] * Quits: svl (~me@89.128.148.64) (Quit: And back he spurred like a madman, shrieking a curse to the sky.)
  475. # [12:22] * Quits: RobbertAtWork (~Robbert@a83-160-99-114.adsl.xs4all.nl) (Quit: RobbertAtWork)
  476. # [12:32] * Quits: jhawkins (jhawkins@nat/google/x-ckmvudeaftunyemm) (Read error: Operation timed out)
  477. # [12:36] * Joins: jhawkins (jhawkins@nat/google/x-naldaysgpexogayv)
  478. # [12:40] * Joins: mishunov (~spliter@77.88.72.162)
  479. # [12:42] * Quits: sicking (~chatzilla@154-93.80-90.static-ip.oleane.fr) (Ping timeout: 272 seconds)
  480. # [12:45] * Quits: skylamer` (cgskylamer@78.90.213.55) (Read error: Connection reset by peer)
  481. # [12:48] * Joins: sicking (~chatzilla@154-93.80-90.static-ip.oleane.fr)
  482. # [12:58] <kennyluck> What happened to lastweekinhtml5 by the way? The blog, I mean.
  483. # [13:08] <niloy> anyone knows about html tag highlighting plugin for gedit?
  484. # [13:11] * Joins: spliter_ (~spliter@77.88.72.162)
  485. # [13:11] * Quits: mishunov (~spliter@77.88.72.162) (Read error: Connection reset by peer)
  486. # [13:11] * Joins: ruby_on_tails (~awakened@115.187.37.55)
  487. # [13:11] <ruby_on_tails> is there a way to make the speech regognition feature continuous ?
  488. # [13:11] <ruby_on_tails> i dont want it to work only when the user stops speaking
  489. # [13:13] <beverloo> Not right now. A new Speech JavaScript API is being developed (somewhere -- probably a new CG) to aid in that
  490. # [13:13] <ruby_on_tails> CG means ?
  491. # [13:13] <beverloo> community group
  492. # [13:13] <beverloo> it's a new concept within the w3c
  493. # [13:14] <ruby_on_tails> any way i could read more about it ?
  494. # [13:15] <beverloo> This is an early draft: http://lists.w3.org/Archives/Public/public-webapps/2011OctDec/att-1696/speechapi.html
  495. # [13:16] * Joins: jdong_bot_ (~jdong_bot@117.79.233.207)
  496. # [13:17] <ruby_on_tails> beverloo: hmm thanks
  497. # [13:26] * Joins: myakura (~myakura@FL1-110-233-178-43.tky.mesh.ad.jp)
  498. # [13:29] * gwicke_away is now known as gwicke
  499. # [13:32] * Parts: ruby_on_tails (~awakened@115.187.37.55)
  500. # [13:33] * Joins: annevk5 (u2483@gateway/web/irccloud.com/x-cohrfmgljecqsyua)
  501. # [13:34] <annevk5> so I wonder if the limit for freenode is reached at Schiphol
  502. # [13:34] <annevk5> cannot connect
  503. # [13:34] <annevk5> but can connect to other IRC servers
  504. # [13:34] <annevk5> maybe because W3C and Opera are not on the default ports?
  505. # [13:36] <annevk5> any opinions on instead of having "Participate:" have a dedicated "Feedback" section that is also part of the table of contents?
  506. # [13:36] <annevk5> so that it becomes more visible in drafts how you can give feedback
  507. # [13:37] <annevk5> apparently it's not really read currently
  508. # [13:37] <annevk5> or not all the time anyway
  509. # [13:47] <kennyluck> I like "Participate:" better
  510. # [13:47] <kennyluck> but well, you have a point.
  511. # [13:47] * Quits: spliter_ (~spliter@77.88.72.162) (Remote host closed the connection)
  512. # [13:47] * Joins: mishunov (~spliter@77.88.72.162)
  513. # [13:49] <zcorpan> have both!
  514. # [13:53] * Joins: erichynds (~ehynds@venkman.brightcove.com)
  515. # [13:54] * Joins: nw` (eero@heaven.unlink.org)
  516. # [13:59] <annevk5> kennyluck: me too
  517. # [13:59] <annevk5> and if it's only Marcos' that messes up, it might be okay
  518. # [13:59] <annevk5> maybe rename "Participate:" to "Send feedback:" ?
  519. # [14:00] <annevk5> I updated specification-data with the mutation observer stuff
  520. # [14:00] <annevk5> also expanded the events introduction
  521. # [14:00] <annevk5> and emailed www-dom about it
  522. # [14:00] <annevk5> http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#events
  523. # [14:00] <annevk5> will be back in four hours from some hotel in Oslo :)
  524. # [14:03] <zcorpan> annevk5: change "www-dom@w3.org (archives)" to "Send feedback to www-dom@w3.org (archives)"
  525. # [14:03] * Joins: gwicke_ (~gabriel@212.255.32.250)
  526. # [14:06] * Joins: smaug____ (~chatzilla@GGYYCCXCVIII.gprs.sl-laajakaista.fi)
  527. # [14:06] * Joins: lar_zzz (~lar_zzz@p4FE25D0B.dip.t-dialin.net)
  528. # [14:06] * Parts: lar_zzz (~lar_zzz@p4FE25D0B.dip.t-dialin.net)
  529. # [14:07] * Quits: gwicke (~gabriel@212.255.45.180) (Ping timeout: 276 seconds)
  530. # [14:07] * Quits: plutoniix (~plutoniix@ppp-124-122-110-11.revip2.asianet.co.th) (Quit: Leaving)
  531. # [14:08] <annevk5> zcorpan: that could work
  532. # [14:08] <annevk5> zcorpan: and then "or file a bug" or some such
  533. # [14:10] <zcorpan> yep
  534. # [14:19] * Quits: nw` (eero@heaven.unlink.org) (Ping timeout: 245 seconds)
  535. # [14:19] * Quits: yuuki (~kobayashi@58x158x182x50.ap58.ftth.ucom.ne.jp) (Quit: Leaving...)
  536. # [14:23] * Quits: ehsan (~ehsan@209.29.21.241) (Read error: Connection reset by peer)
  537. # [14:23] * Joins: ehsan (~ehsan@209.29.21.241)
  538. # [14:26] * Joins: ehsan_ (~ehsan@209.29.21.241)
  539. # [14:26] * Quits: ehsan (~ehsan@209.29.21.241) (Read error: Connection reset by peer)
  540. # [14:39] * Quits: necolas (~necolas@109.231.202.66) (Remote host closed the connection)
  541. # [14:43] * Quits: niloy (~niloy@122.179.129.91) (Read error: Connection reset by peer)
  542. # [14:46] <zcorpan> annevk5: "And finally, and only if event's bubbles attribute value is true" - bubbles should be <code>d
  543. # [14:50] * Joins: eric_carlson_ (~eric@2620:149:4:1b01:d5ab:37b:50d3:a11d)
  544. # [14:50] * Joins: jernoble_ (~jernoble@2620:149:4:1b01:612e:b994:df91:8a98)
  545. # [14:51] * Quits: jernoble (~jernoble@2620:149:4:1b01:612e:b994:df91:8a98) (Read error: Operation timed out)
  546. # [14:51] * jernoble_ is now known as jernoble
  547. # [14:52] * Quits: ehsan_ (~ehsan@209.29.21.241) (Remote host closed the connection)
  548. # [14:53] * Quits: eric_carlson (~eric@2620:149:4:1b01:d5ab:37b:50d3:a11d) (Ping timeout: 245 seconds)
  549. # [14:53] * eric_carlson_ is now known as eric_carlson
  550. # [14:54] * Joins: ezoe (~ezoe@112-68-245-181f1.kyt1.eonet.ne.jp)
  551. # [14:54] * Quits: smaug____ (~chatzilla@GGYYCCXCVIII.gprs.sl-laajakaista.fi) (Remote host closed the connection)
  552. # [15:00] * Joins: smaug____ (~chatzilla@GGYYCCXCVIII.gprs.sl-laajakaista.fi)
  553. # [15:03] * Quits: Lachy (Lachy@nat/opera/x-znbocqmfsyklaetm) (Quit: Computer has gone to sleep.)
  554. # [15:07] * Quits: madcow (~michaelrt@202.296.dsl.mel.iprimus.net.au)
  555. # [15:09] * Quits: jdong_bot_ (~jdong_bot@117.79.233.207) (Remote host closed the connection)
  556. # [15:11] * Joins: Bass10 (Bass10@c-76-113-194-7.hsd1.mn.comcast.net)
  557. # [15:16] * Joins: scor (~scor@drupal.org/user/52142/view)
  558. # [15:20] * Quits: tomasf_ (~tomasf@77.72.97.5.c.fiberdirekt.net) (Quit: tomasf_)
  559. # [15:27] * Quits: Velmont (odinho@knuth.ping.uio.no) (Read error: Connection reset by peer)
  560. # [15:28] * Joins: plutoniix (~plutoniix@125.25.227.158.adsl.dynamic.totbb.net)
  561. # [15:29] * Joins: JohnAlbin (~JohnAlbin@114-42-63-211.dynamic.hinet.net)
  562. # [15:32] * Joins: izhak (~izhak@188.168.203.35)
  563. # [15:34] * Joins: MacTed (~Thud@63.119.36.36)
  564. # [15:42] * gwicke_ is now known as gwicke_away
  565. # [15:42] <zewt> (isn't "and only if" always implied?)
  566. # [15:46] * Quits: zcorpan (~zcorpan@c-699de355.410-6-64736c14.cust.bredbandsbolaget.se) (Quit: zcorpan)
  567. # [15:53] * gwicke_away is now known as gwicke_
  568. # [15:57] * Quits: mishunov (~spliter@77.88.72.162) (Quit: mishunov)
  569. # [16:02] * Joins: Tumulte (~Tumulte@corp-gw.accelance.net)
  570. # [16:02] * Joins: tomasf_ (~tomasf@static-88.131.62.36.addr.tdcsong.se)
  571. # [16:06] * Joins: chriseppstein (~chrisepps@99-6-85-4.lightspeed.sntcca.sbcglobal.net)
  572. # [16:08] * Joins: danbri (~danbri@cable-146-255-153-130.dynamic.telemach.ba)
  573. # [16:08] * Joins: davidb (~davidb@66.207.208.98)
  574. # [16:12] * Quits: Ducki (~Ducki@pD9E39FD5.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
  575. # [16:22] * Quits: danbri (~danbri@cable-146-255-153-130.dynamic.telemach.ba) (Ping timeout: 244 seconds)
  576. # [16:25] * Joins: miketaylr (~miketaylr@cpe-68-203-0-108.austin.res.rr.com)
  577. # [16:25] * Quits: miketaylr (~miketaylr@cpe-68-203-0-108.austin.res.rr.com) (Client Quit)
  578. # [16:25] * Joins: miketaylr (~miketaylr@cpe-68-203-0-108.austin.res.rr.com)
  579. # [16:26] * Joins: webade (53d97c4b@gateway/web/freenode/ip.83.217.124.75)
  580. # [16:27] * Quits: webade (53d97c4b@gateway/web/freenode/ip.83.217.124.75) (Client Quit)
  581. # [16:28] * Joins: snowfox (~benschaaf@50-77-199-197-static.hfc.comcastbusiness.net)
  582. # [16:29] * Quits: myakura (~myakura@FL1-110-233-178-43.tky.mesh.ad.jp) (Remote host closed the connection)
  583. # [16:29] * Parts: snowfox (~benschaaf@50-77-199-197-static.hfc.comcastbusiness.net)
  584. # [16:29] * Joins: snowfox (~benschaaf@50-77-199-197-static.hfc.comcastbusiness.net)
  585. # [16:35] * Joins: danbri (~danbri@cable-146-255-153-130.dynamic.telemach.ba)
  586. # [16:36] * Joins: hij1nx (~hij1nx@cpe-98-14-168-178.nyc.res.rr.com)
  587. # [16:38] * Joins: tomasf__ (~tomasf@95.209.5.198.bredband.tre.se)
  588. # [16:39] <kennyluck> just in case you hadn't noticed http://www.ipetitions.com/petition/html-version-of-ecmascript-5-now
  589. # [16:41] * Quits: tomasf_ (~tomasf@static-88.131.62.36.addr.tdcsong.se) (Ping timeout: 245 seconds)
  590. # [16:42] <Philip`> Do the unofficial HTML copies of ES5 not count?
  591. # [16:46] <kennyluck> I would hope they release ES5 errata and ES6 drafts in HTML too.
  592. # [16:49] * Joins: Thireg (~Thireg@APlessis-Bouchard-152-1-49-95.w83-114.abo.wanadoo.fr)
  593. # [16:51] * Joins: ksweeney (~Kevin_Swe@nyv-exweb.iac.com)
  594. # [16:54] * Joins: Velmont (odinho@dalvik.ping.uio.no)
  595. # [16:56] * Parts: ksweeney (~Kevin_Swe@nyv-exweb.iac.com)
  596. # [16:58] * Joins: zcorpan (~zcorpan@c-699de355.410-6-64736c14.cust.bredbandsbolaget.se)
  597. # [16:58] <Velmont> Hmm. I don't like that errors like this_requires_one_arg() -> throws so widely different things.
  598. # [17:02] * Joins: dydx (~dydz@adsl-76-199-101-193.dsl.pltn13.sbcglobal.net)
  599. # [17:02] <jgraham> Should throw TypeError
  600. # [17:04] <Velmont> jgraham: OK, that's what I made the test expect. But as I'm currently testing firefox nightly it throws it's own NS_LONG_TYPE_ERROR in many places, but not in that one, there it throws its own NS_ERROR_XPC_NOT_ENOUGH_ARGS (what's with the long scary names? :P)
  601. # [17:04] * Joins: ehsan (~ehsan@66.207.208.98)
  602. # [17:04] <Velmont> (I made NS_LONG_TYPE_ERROR up, it's called something else like that)
  603. # [17:05] <jgraham> Yeah Firefox really likes throwing NS_WE_MADE_THIS_ERR_UP_ERROR
  604. # [17:05] <jgraham> Blame smaug____
  605. # [17:05] <jgraham> Or Ms2ger
  606. # [17:05] <jgraham> Or sicking
  607. # [17:05] <jgraham> Or someone
  608. # [17:05] * zcorpan blames jgraham
  609. # [17:06] * Velmont blames the world
  610. # [17:06] <Velmont> *cutting wrists and cries*
  611. # [17:06] <jgraham> Well specifically someone that isn't me. And does work on DOM in Mozilla
  612. # [17:06] <jgraham> Velmont: You should talk to gsnedders. You could listen to emo music together
  613. # [17:07] <Velmont> jgraham: That coincidented nicely with my mplayer -playlist shuffle putting on some emo music, btw. It must be a sign.
  614. # [17:07] <smaug____> jgraham: no no
  615. # [17:07] <smaug____> jgraham: blame Netscape
  616. # [17:08] <jgraham> smaug____: Dude, you have had almost a decade and a half to purge Netscape from the codebase
  617. # [17:08] * Quits: richt (richt@nat/opera/x-wppouhjxpuzxkmsh) (Remote host closed the connection)
  618. # [17:08] <Velmont> smaug____: IndexedDB and friends wasn't thought about even when Netscape existed. òÓ
  619. # [17:08] <Velmont> How can it come from the past and mess with your new code? :P
  620. # [17:08] * smaug____ just just looking at code from 1999
  621. # [17:08] <jgraham> It can't possibly be that hard to throw TypeError rather than NS_WE_DIED_YEARS_AGO_ERROR
  622. # [17:09] <smaug____> oh, if it is about indexeddb, blame sicking :)
  623. # [17:09] * Joins: richt (richt@nat/opera/x-vaozbniwhbufoezg)
  624. # [17:10] <sicking> the reason we don't throw TypeError in indexedDB impl in Firefox is because we can't throw that from C++
  625. # [17:10] <sicking> so blame mrbkap, bholley or jst
  626. # [17:11] * Quits: dydx (~dydz@adsl-76-199-101-193.dsl.pltn13.sbcglobal.net) (Quit: dydx)
  627. # [17:12] <Velmont> Weird limitation.
  628. # [17:13] <Velmont> But it's possible to throw all-caps with namespace baked in errors?
  629. # [17:13] <smaug____> "can't" is too strong. It is just annoyingly hard
  630. # [17:13] <smaug____> comparing to some other exceptions
  631. # [17:14] <Velmont> Well, mozilla is getting undeservingly much red from my tests on stuff like that :P
  632. # [17:14] * Joins: myakura (~myakura@FL1-110-233-178-43.tky.mesh.ad.jp)
  633. # [17:21] * Joins: annevk (~annevk@80.232.109.46)
  634. # [17:22] * Quits: ehsan (~ehsan@66.207.208.98) (Remote host closed the connection)
  635. # [17:22] * Quits: PalleZingmark (~Adium@217.13.228.226) (Quit: Leaving.)
  636. # [17:23] * Joins: ehsan (~ehsan@66.207.208.98)
  637. # [17:26] * Quits: nonge_ (~nonge@p5082974F.dip.t-dialin.net) (Quit: Verlassend)
  638. # [17:28] * Quits: maikmerten (~merten@ls5dhcp200.cs.uni-dortmund.de) (Remote host closed the connection)
  639. # [17:28] * Joins: N0000B (~quassel@adsl-98-68-176-92.cha.bellsouth.net)
  640. # [17:30] * Joins: ph (~androirc@client-80-3-107-197.bsh-bng-012.adsl.virginmedia.net)
  641. # [17:33] * Parts: Thireg (~Thireg@APlessis-Bouchard-152-1-49-95.w83-114.abo.wanadoo.fr)
  642. # [17:34] * Quits: myakura (~myakura@FL1-110-233-178-43.tky.mesh.ad.jp) (Remote host closed the connection)
  643. # [17:40] * Joins: necolas (~necolas@5e0c715f.bb.sky.com)
  644. # [17:42] * Quits: riven (~riven@pdpc/supporter/professional/riven) (Read error: Connection reset by peer)
  645. # [17:43] * Joins: riven (~riven@53518387.cm-6-2c.dynamic.ziggo.nl)
  646. # [17:43] * Quits: riven (~riven@53518387.cm-6-2c.dynamic.ziggo.nl) (Changing host)
  647. # [17:43] * Joins: riven (~riven@pdpc/supporter/professional/riven)
  648. # [17:43] * Joins: J_Voracek (~J_Voracek@71.21.195.70)
  649. # [17:43] * Joins: tomasf_ (~tomasf@static-88.131.62.36.addr.tdcsong.se)
  650. # [17:45] * Quits: tomasf__ (~tomasf@95.209.5.198.bredband.tre.se) (Ping timeout: 260 seconds)
  651. # [17:47] <gsnedders> jgraham: I am not emo.
  652. # [17:47] <gsnedders> …
  653. # [17:47] * gsnedders should stop getting annoyed at jgraham's accusations
  654. # [17:49] * Quits: hij1nx (~hij1nx@cpe-98-14-168-178.nyc.res.rr.com) (Quit: hij1nx)
  655. # [17:51] * Quits: silentimp (~silentimp@129-123-132-95.pool.ukrtel.net) (Quit: silentimp)
  656. # [17:54] * Quits: pocopina (u5310@gateway/web/irccloud.com/x-nglpsiqqedltxzxw) (Max SendQ exceeded)
  657. # [17:54] * Joins: pocopina (u5310@gateway/web/irccloud.com/x-dymyotbecrzsgewx)
  658. # [17:59] * Quits: miketaylr (~miketaylr@cpe-68-203-0-108.austin.res.rr.com) (Quit: dflk;adfslkj;alsiekfj;laiskdf)
  659. # [18:01] * Joins: hij1nx (~hij1nx@cpe-98-14-168-178.nyc.res.rr.com)
  660. # [18:02] * Joins: Ms2ger (~Ms2ger@91.181.63.183)
  661. # [18:04] * Quits: tomasf_ (~tomasf@static-88.131.62.36.addr.tdcsong.se) (Quit: tomasf_)
  662. # [18:05] * Quits: izhak (~izhak@188.168.203.35) (Remote host closed the connection)
  663. # [18:07] <AryehGregor> sicking, it should be the WebIDL implementation throwing TypeError for not enough arguments, not IndexedDB.
  664. # [18:09] * Joins: othermaciej (~mjs@c-24-6-209-189.hsd1.ca.comcast.net)
  665. # [18:10] * Joins: Ms2ger` (~Ms2ger@91.181.18.122)
  666. # [18:10] <Ms2ger`> jgraham, did you know we have a special exception when you pass 0 as a pointer argument?
  667. # [18:12] <AryehGregor> Ms2ger`, SIGSEGV?
  668. # [18:13] * Joins: Maurice (copyman@5ED573FA.cm-7-6b.dynamic.ziggo.nl)
  669. # [18:13] * Joins: nw (nw@kapsi.fi)
  670. # [18:13] * Quits: Ms2ger (~Ms2ger@91.181.63.183) (Ping timeout: 240 seconds)
  671. # [18:14] * Quits: Evanescence (~Evanescen@60.183.194.131) (Quit: my website: http://stardiviner.dyndns-blog.com/)
  672. # [18:20] * Quits: plutoniix (~plutoniix@125.25.227.158.adsl.dynamic.totbb.net) (Quit: Leaving)
  673. # [18:31] * Joins: gasweld (gasweld@178.120.15.101)
  674. # [18:35] * Quits: Neocortex (~niels@82-170-160-25.ip.telfort.nl) (Remote host closed the connection)
  675. # [18:36] * Joins: Neocortex (~niels@82-170-160-25.ip.telfort.nl)
  676. # [18:39] * Joins: rniwa (rniwa@nat/google/x-vtffmegdxhwovhdw)
  677. # [18:39] <sicking> AryehGregor: indeed. We just don't have a webidl layer implemented yet
  678. # [18:39] <sicking> AryehGregor: that's exactly my point
  679. # [18:40] <rniwa> AryehGregor: yt?
  680. # [18:41] <AryehGregor> rniwa, yes.
  681. # [18:41] <AryehGregor> Although things seem quiet on the editing front for the last couple of months, so mostly I'm doing CSS transforms/transitions stuff now.
  682. # [18:41] * Quits: ezoe (~ezoe@112-68-245-181f1.kyt1.eonet.ne.jp) (Ping timeout: 240 seconds)
  683. # [18:42] <rniwa> AryehGregor: yeah... I need to give you back some feedback :(
  684. # [18:42] <AryehGregor> rniwa, please do.
  685. # [18:42] <rniwa> AryehGregor: my plan was to add a hook to run your ref. impl. against our tests
  686. # [18:42] <rniwa> AryehGregor: but I haven't gotten around to it
  687. # [18:42] <AryehGregor> Okay.
  688. # [18:42] <rniwa> AryehGregor: btw, we should start talking about table editing / control selection as well
  689. # [18:43] <AryehGregor> Is anyone implementing the stuff I've already specced?
  690. # [18:43] <rniwa> AryehGregor: in particular, we've been getting a lot of complaints about webkit not supporting control selection :(
  691. # [18:43] <rniwa> AryehGregor: not that I'm aware of
  692. # [18:43] <AryehGregor> I admit that I'm not so enthusiastic about spending more time on the editing spec when I spent over six months on it and no one seems to be implementing it.
  693. # [18:44] * Joins: ap (~ap@2620:149:4:1b01:f45b:f8f7:8bf2:6f8e)
  694. # [18:45] <rniwa> AryehGregor: well, we're going to do it eventually
  695. # [18:46] <AryehGregor> Right.
  696. # [18:46] <rniwa> AryehGregor: it's just that I'm basically the one person working on editing
  697. # [18:46] * nimbu is now known as divya
  698. # [18:46] <rniwa> AryehGregor: in webkit at the moment
  699. # [18:46] <AryehGregor> Right, I know.
  700. # [18:46] <rniwa> AryehGregor: so it's gonna take forever
  701. # [18:46] <AryehGregor> And ehsan in Mozilla, and nobody at any other engine.
  702. # [18:46] <rniwa> AryehGregor: just like removing Apple-style-span took 2 years
  703. # [18:46] <rniwa> AryehGregor: we'll be super lucky if we can implement your spec in the next 2-3 years :(
  704. # [18:46] <AryehGregor> If I get more into Gecko coding working for Mozilla, maybe I can try implementing some parts of the editing spec.
  705. # [18:47] <rniwa> AryehGregor: sorry to tell you this, but very few people are enthusiastic about editing.
  706. # [18:47] <AryehGregor> The HTML parser took what, like five or more years for everyone to implement?
  707. # [18:47] <rniwa> despite the fact almost everyone uses the feature daily
  708. # [18:47] <AryehGregor> And it's a lot more important, and probably a lot simpler.
  709. # [18:47] <rniwa> AryehGregor: yeah
  710. # [18:47] <rniwa> AryehGregor: we were lucky because our old parser code was really bad
  711. # [18:47] <AryehGregor> Everyone's was really bad, I think. :)
  712. # [18:47] <rniwa> AryehGregor: so eseidel & abarth decided to rewrite from scratch
  713. # [18:48] <AryehGregor> I think everyone did that.
  714. # [18:48] <rniwa> AryehGregor: had we been spending more time on parser code, and tried to incrementally converge
  715. # [18:48] <rniwa> AryehGregor: we wouldn't have finished yet :(
  716. # [18:48] <hober> rniwa: it's not just you working on editing in webkit; we've got enrica too. so there's 2 of you! :)
  717. # [18:49] <rniwa> hober: right, but enrica does other stuff too
  718. # [18:50] <rniwa> hober: i've been getting a lot of pressure to work on non-editing stuff as well
  719. # [18:50] <rniwa> hober: but i've been sneakingly avoiding that :P
  720. # [18:50] <hober> heh
  721. # [18:50] <rniwa> hober: because from PR point of view, editing isn't the most shiny new feature
  722. # [18:50] <rniwa> hober: it sorta works.
  723. # [18:50] <hober> it might not be shiny, but it's super important
  724. # [18:50] <rniwa> hober: and only people who work on editors care. (i.e. developers of tinyMCE, CKEditor, etc...)
  725. # [18:51] <AryehGregor> IMO, there's a lot of low-hanging fruit.
  726. # [18:51] <rniwa> hober: right. people get super upset whenever I introduce a regression
  727. # [18:51] <AryehGregor> If I were working on editing, the first thing I'd do is try to match the spec (= roughly IE/Opera) on linebreaks.
  728. # [18:51] <hober> *nod*
  729. # [18:51] <AryehGregor> That's probably the most blatant incompatibility between browsers.
  730. # [18:51] <rniwa> AryehGregor: oh yeah...
  731. # [18:51] <rniwa> AryehGregor: what do we do with line breaks?
  732. # [18:51] <AryehGregor> <p> vs. <div> vs. <br>.
  733. # [18:51] <rniwa> AryehGregor: can we add new switch?
  734. # [18:51] <AryehGregor> I specced <p>, basically.
  735. # [18:51] <AryehGregor> I could, if people are going to implement it . . .
  736. # [18:52] <rniwa> AryehGregor: did you add new toggling switch per ojan's suggestion?
  737. # [18:52] <rniwa> AryehGregor: on the condition that each editing host gets execCommand method?
  738. # [18:52] <AryehGregor> It's on my list of things to do, but again, I've mostly put aside editing work for now.
  739. # [18:52] <rniwa> AryehGregor: okay.
  740. # [18:52] <AryehGregor> I'll probably return to it sometime.
  741. # [18:52] <rniwa> AryehGregor: ping me when you've done that.
  742. # [18:52] <rniwa> AryehGregor: I think that's the most logical thing to do
  743. # [18:52] <AryehGregor> You're probably CCd on the relevant bugs.
  744. # [18:53] <rniwa> AryehGregor: as far as I know, there are a lot of legacy content that relies on the fact webkit produces div on line break :(
  745. # [18:53] <AryehGregor> Web content or WebKit-only content?
  746. # [18:53] <rniwa> AryehGregor: both
  747. # [18:53] <rniwa> AryehGregor: the latter is more serious.
  748. # [18:53] <AryehGregor> You could always have a different default for web users and other users.
  749. # [18:53] <rniwa> AryehGregor: because Microsoft Outlook & Apple Mail both use WebKit
  750. # [18:54] <AryehGregor> Outlook uses WebKit? o_O
  751. # [18:54] <rniwa> AryehGregor: and we can't regress them :(
  752. # [18:54] <rniwa> AryehGregor: yeah on Mac
  753. # [18:54] <AryehGregor> Oh, makes sense.
  754. # [18:54] <AryehGregor> They can't very well use Trident on Mac.
  755. # [18:54] <rniwa> AryehGregor: yeah ever since they discontinued IE for Mac
  756. # [18:54] <rniwa> AryehGregor: although I don't think they used Trident on Mac
  757. # [18:54] <AryehGregor> They used Tasman.
  758. # [18:54] <rniwa> AryehGregor: they wrote the engine from scratch for Mac
  759. # [18:55] <hober> yup
  760. # [18:55] <AryehGregor> ehsan, do you think we could default styleWithCSS to false without breaking too much stuff? I think authors just set styleWithCSS to false unconditionally at the start of all their scripts, in practice . . .
  761. # [18:55] * Quits: danbri (~danbri@cable-146-255-153-130.dynamic.telemach.ba) (Ping timeout: 245 seconds)
  762. # [18:55] <AryehGregor> That would be a nice compat win.
  763. # [18:56] * AryehGregor might ask to spend some time working on Gecko editing stuff after he's done with all this CSS stuff, if he feels like doing coding instead of spec work
  764. # [18:56] <AryehGregor> Fortunately, there's almost no such thing as Gecko-specific content, so Gecko is often free to change to match other browsers.
  765. # [18:56] <AryehGregor> Unlike IE and WebKit.
  766. # [18:56] <rniwa> AryehGregor: that'll be nice.
  767. # [18:57] <rniwa> AryehGregor: although leaving default to true seems okay as long as there's an API to toggle it.
  768. # [18:57] <AryehGregor> Two biggest changes I would make: output <p> instead of <br>, and default styleWithCSS to false.
  769. # [18:57] <AryehGregor> Yeah, that's not a big deal because authors just force it to false.
  770. # [18:57] <AryehGregor> But they shouldn't have to.
  771. # [18:57] <rniwa> AryehGregor: we might consider something like
  772. # [18:57] <AryehGregor> So it's an easy fix.
  773. # [18:57] <rniwa> AryehGregor: turning on standard compliant mode when we see HTML5 style DOCTYPE
  774. # [18:58] <rniwa> AryehGregor: and fallback to legacy behavior elsewhere
  775. # [18:58] <AryehGregor> More quirks, in other words?
  776. # [18:58] <AryehGregor> Quirks are bad.
  777. # [18:59] <AryehGregor> Doesn't WebKit editing code already have different codepaths in some places for Apple Mail?
  778. # [18:59] <rniwa> AryehGregor: well, we don't.
  779. # [18:59] <rniwa> AryehGregor: we just look for specific classes and elements :(
  780. # [18:59] <rniwa> sigh....
  781. # [18:59] <AryehGregor> :/
  782. # [19:00] <rniwa> AryehGregor: you can add <blockquote type="cite"> and webkit treats them differently than a regular blockquote :(
  783. # [19:00] <AryehGregor> Ouch.
  784. # [19:01] <rniwa> AryehGregor: but that's just a secret between you and me. don't tell anyone, and we should be okay :)
  785. # [19:01] <rniwa> or hopefully so.
  786. # [19:01] <rniwa> AryehGregor: anyways, https://bugs.webkit.org/show_bug.cgi?id=12250 is the control selection bug I was talking about
  787. # [19:02] * Quits: sicking (~chatzilla@154-93.80-90.static-ip.oleane.fr) (Ping timeout: 244 seconds)
  788. # [19:02] <rniwa> AryehGregor: it seems like authors expect image, etc... to be re-sizable in contenteditable regions
  789. # [19:02] <AryehGregor> Yeah.
  790. # [19:02] <AryehGregor> That's more of a QoI issue than a spec issue, though.
  791. # [19:02] <rniwa> AryehGregor: maybe.
  792. # [19:02] <AryehGregor> I mean, I can add a line to the spec saying UAs have to let users resize them.
  793. # [19:02] <rniwa> AryehGregor: but they expect this to work
  794. # [19:02] <AryehGregor> I have a bug open about that.
  795. # [19:02] <rniwa> AryehGregor: so you should probably say something about it.
  796. # [19:02] <rniwa> AryehGregor: yeah
  797. # [19:02] <rniwa> AryehGregor: maybe also move it around by dragging it?
  798. # [19:03] <AryehGregor> But precise interop isn't necessary as long as UAs provide some way to resize, so there's not much for the spec to say.
  799. # [19:03] <AryehGregor> There's a spec bug for that too.
  800. # [19:03] <rniwa> AryehGregor: right.
  801. # [19:03] <rniwa> AryehGregor: but I'm thinking that there should probably be some event firing to let authors know of the resize, etc...
  802. # [19:03] <AryehGregor> It's not like a switch to change the default block type, where the spec needs to say how authors call it.
  803. # [19:03] * Joins: maikmerten (~maikmerte@port-92-201-209-70.dynamic.qsc.de)
  804. # [19:03] <AryehGregor> Maybe . . . do existing UAs do that?
  805. # [19:03] <rniwa> AryehGregor: in the case of resizing tables, things are a lot of trickier
  806. # [19:04] <rniwa> AryehGregor: because width of a row can be specified by td, or tr
  807. # [19:04] <AryehGregor> You can do foo { resize: both } on existing stuff already. http://dev.w3.org/csswg/css3-ui/#resize
  808. # [19:04] * Quits: hij1nx (~hij1nx@cpe-98-14-168-178.nyc.res.rr.com) (Quit: hij1nx)
  809. # [19:04] <AryehGregor> Table width is a nightmare.
  810. # [19:04] <rniwa> I mean height*
  811. # [19:04] <rniwa> AryehGregor: yeah.
  812. # [19:04] <rniwa> AryehGregor: but we need to support it at some point
  813. # [19:04] <AryehGregor> https://www.w3.org/Bugs/Public/show_bug.cgi?id=13795#c4
  814. # [19:04] * Parts: gasweld (gasweld@178.120.15.101)
  815. # [19:05] <rniwa> AryehGregor: things get awfully tricky when we have rowspan and colspan :(
  816. # [19:05] <AryehGregor> Tables are a nightmare period.
  817. # [19:06] * Joins: roc (~chatzilla@81.130.197.83)
  818. # [19:06] <rniwa> AryehGregor: I know.
  819. # [19:06] <rniwa> AryehGregor: but people DO use them :(
  820. # [19:06] <AryehGregor> rniwa, if there's something you want to implement in the near future and it's blocked on there not being a spec, tell me and I can spend some time working on that. E.g., if you actually plan to implement a switch that lets authors have <p> instead of <div> for newlines but aren't doing it because there's no spec, I'll write the spec today.
  821. # [19:06] <rniwa> AryehGregor: and enterprise folks LOVE them
  822. # [19:06] <rniwa> AryehGregor: I'd like to implement that one soon
  823. # [19:07] <rniwa> AryehGregor: because that's probably the only sane way for us to switch
  824. # [19:07] <rniwa> AryehGregor: at least in the near future
  825. # [19:07] <AryehGregor> I can spend some time on it, then.
  826. # [19:07] <rniwa> AryehGregor: that'll be great!
  827. # [19:07] <AryehGregor> Most of the work will be writing tests.
  828. # [19:07] <rniwa> AryehGregor: also before/after edit command events
  829. # [19:07] <rniwa> AryehGregor: they appear to be useful even today.
  830. # [19:07] <rniwa> if we can let authors override the default behavior
  831. # [19:07] <AryehGregor> https://www.w3.org/Bugs/Public/show_bug.cgi?id=15527 https://www.w3.org/Bugs/Public/show_bug.cgi?id=13118
  832. # [19:08] <rniwa> AryehGregor: because then authors can selectively override the default behavior using my UndoManager API
  833. # [19:08] * Quits: othermaciej (~mjs@c-24-6-209-189.hsd1.ca.comcast.net) (Quit: othermaciej)
  834. # [19:08] <AryehGregor> rniwa, here's my plan for edit events: https://www.w3.org/Bugs/Public/show_bug.cgi?id=13118#c23
  835. # [19:08] <AryehGregor> Does that look good to you?
  836. # [19:08] <rniwa> AryehGregor: that should give us a nice bridge between the current broken world and the new interop world :)
  837. # [19:08] * Joins: sicking (~chatzilla@154-93.80-90.static-ip.oleane.fr)
  838. # [19:08] <AryehGregor> No one ever gave feedback, so I got discouraged and forgot about it.
  839. # [19:09] <rniwa> AryehGregor: ah, oops. I wasn't aware of this bug :(
  840. # [19:09] <rniwa> despite of the fact i'm cc-ed :(
  841. # [19:12] <AryehGregor> Tell me if you like my scheme for implementing those events.
  842. # [19:13] * Quits: drublic (~drublic@frbg-5f732aea.pool.mediaWays.net) (Ping timeout: 276 seconds)
  843. # [19:13] <rniwa> AryehGregor: yeah, your proposal seems reasonable.
  844. # [19:13] <AryehGregor> Okay.
  845. # [19:14] * Quits: necolas (~necolas@5e0c715f.bb.sky.com) (Remote host closed the connection)
  846. # [19:18] * rniwa comments on the bug enthusiatically
  847. # [19:20] <AryehGregor> :)
  848. # [19:22] <rniwa> AryehGregor: hm... wait so you don't think we should fire those events for script-initiated execCommands?
  849. # [19:22] <rniwa> AryehGregor: why not?
  850. # [19:22] <rniwa> AryehGregor: beforeInput/input events are fired synchronously at least in webkit
  851. # [19:23] * AryehGregor refreshes his memory
  852. # [19:23] <AryehGregor> Ack, synchronous events are evil.
  853. # [19:23] <AryehGregor> What triggers them synchronously?
  854. # [19:23] <AryehGregor> We're trying to get rid of mutation events exactly because they're synchronous . . .
  855. # [19:24] <AryehGregor> If you want to synchronously hook into execCommand, you could always write a wrapper for it.
  856. # [19:24] <rniwa> AryehGregor: beforeInput/input
  857. # [19:24] <rniwa> AryehGregor: they're okay
  858. # [19:24] <AryehGregor> If you want to hook into other scripts' calls too, you can overwrite the method on the prototype . . .
  859. # [19:24] <rniwa> AryehGregor: because beforeInput/input won't fire as a side effect of something else :)
  860. # [19:25] <rniwa> AryehGregor: the only function that could fire these events is execCommand
  861. # [19:25] <AryehGregor> What if you call execCommand() from the handler?
  862. # [19:25] <AryehGregor> Everything has to be re-entrant?
  863. # [19:25] <rniwa> AryehGregor: but you can do that today.
  864. # [19:25] <rniwa> AryehGregor: blur, focusout, etc... all fire synchronously.
  865. # [19:25] * AryehGregor tests blur
  866. # [19:26] <roc> they are synchronous, and it's a real nightmare
  867. # [19:27] <AryehGregor> Hmm, onfocus is sync in every browser but IE.
  868. # [19:27] * Joins: aklein (u4454@gateway/web/irccloud.com/x-vlrspwajuonuurxx)
  869. # [19:27] <AryehGregor> http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cinput%20value%3D%22some%20text%22%20onfocus%3D%22w('b')%22%3E%0A%3Cscript%3E%0Aw(%22a%22)%3B%0Adocument.querySelector(%22input%22).focus()%3B%0Aw(%22c%22)%3B%0A%3C%2Fscript%3E
  870. # [19:27] <rniwa> AryehGregor: yeah, it's pretty annoying.
  871. # [19:27] <rniwa> AryehGregor: beforeunload as well if you have img, iframe, etc... :(
  872. # [19:28] <rniwa> AryehGregor: so we can't get away with these sync events.
  873. # [19:28] <AryehGregor> IE seems to make focus async, at least in that test.
  874. # [19:28] <AryehGregor> https://www.w3.org/Bugs/Public/show_bug.cgi?id=16091
  875. # [19:28] <rniwa> AryehGregor: on the other hand, we might be able to make execCommand not re-entrant, for example
  876. # [19:29] <AryehGregor> Do DOM or HTML even define such a thing as synchronous events?
  877. # [19:29] <rniwa> AryehGregor: so that if you try to call execCommand inside another execCommand or in some event handler trigged by another execCommand, we can throw
  878. # [19:29] <AryehGregor> DOM I'm pretty sure doesn't.
  879. # [19:29] <rniwa> AryehGregor: DOM
  880. # [19:29] * AryehGregor looks
  881. # [19:29] <rniwa> AryehGregor: at least DOM 3
  882. # [19:29] <AryehGregor> Well, no one uses DOM 3.
  883. # [19:30] <rniwa> AryehGregor: the problem is that if we don't fire them synchronously, we'll never be able to propagate events to ancestors' event listeners
  884. # [19:30] <rniwa> AryehGregor: unless we store the vector of ancestors :(
  885. # [19:30] <rniwa> AryehGregor: which will be a huge memory bloat
  886. # [19:30] <AryehGregor> Why not?
  887. # [19:30] <Ms2ger`> You have to do that, no?
  888. # [19:30] <rniwa> AryehGregor: because once the node is removed
  889. # [19:30] <rniwa> AryehGregor: the node doesn't have a parent anymore
  890. # [19:30] <rniwa> AryehGregor: and we wouldn't know to which node the event should be propagated
  891. # [19:30] <AryehGregor> Why not just not fire at ancestors if the node is removed before the event runs?
  892. # [19:31] <rniwa> AryehGregor: but then you'll never receive that event
  893. # [19:31] <rniwa> AryehGregor: unless you've attached EL on the node you're removing
  894. # [19:31] <AryehGregor> How likely is it that the node will be removed from its parent between the event being fired and running?
  895. # [19:31] <AryehGregor> Also: it's an array of a few pointers for every event fired. Why should it be such memory bloat?
  896. # [19:32] <AryehGregor> How many events get fired anyway?
  897. # [19:32] <rniwa> AryehGregor: we fire events very often
  898. # [19:33] <rniwa> AryehGregor: we have lots of optimizations to minimize the number of events to fire
  899. # [19:33] <rniwa> AryehGregor: and the cost per event dispatches
  900. # [19:33] <AryehGregor> Hmm.
  901. # [19:33] <TabAtkins_> Hm. Can someone explain why attributes in WebIDL end up on the prototype of an object rather than the object itself?
  902. # [19:33] <Ms2ger`> I'm sure someone wan
  903. # [19:33] <Ms2ger`> can*
  904. # [19:33] <AryehGregor> TabAtkins_, "why" in what sense?
  905. # [19:33] <AryehGregor> "Why" as in "what part of the spec says that", or "why does the spec say that", or "why did browsers implement it that way originally", or . . . ?
  906. # [19:34] <AryehGregor> The spec says it because that's what browsers do, and browsers do it because whatever crazy person thought up JS apparently thought a prototype-based object model was cool.
  907. # [19:34] <TabAtkins_> Context is recent discussion about moving the CSSStyleDeclaration from explicitly listing attributes to using a getter, because the former puts the properties on the prototype while the latter puts them on the object.
  908. # [19:34] <AryehGregor> (which actually it kind of is)
  909. # [19:34] <AryehGregor> The latter doesn't put them on the object. It just invokes the getter on the prototype.
  910. # [19:34] * Quits: karlcow (~karl@nerval.la-grange.net) (Quit: :tiuQ tiuq sah woclrak)
  911. # [19:35] <TabAtkins_> Prototype-based OO is cool. But I don't understand the reasoning behind object properties living on the prototype.
  912. # [19:35] <AryehGregor> If you want them on the object for some reason, you can use [Unforgeable].
  913. # [19:35] <TabAtkins_> Oh, then Boris is wrong.
  914. # [19:35] <TabAtkins_> kk
  915. # [19:35] * Quits: J_Voracek (~J_Voracek@71.21.195.70) (Quit: disconnected: Jace Voracek - Jace@Jace-Place.com)
  916. # [19:35] * AryehGregor is very hesitant to ever say Boris is wrong :)
  917. # [19:35] <TabAtkins_> (That's a very rare event.)
  918. # [19:35] * AryehGregor looks at the thread
  919. # [19:35] <Ms2ger`> ^
  920. # [19:35] <rniwa> AryehGregor, TabAtkins_: but we Do want them on prototype no?
  921. # [19:35] <AryehGregor> Probably Boris is right.
  922. # [19:35] <rniwa> otherwise, it'll be troublesome to do expandos on them
  923. # [19:36] <TabAtkins_> rniwa: I don't know! Why would we? I don't understand the reasoning.
  924. # [19:36] <rniwa> TabAtkins_: so if I wanted to create a new class that inherits from an object with those attributes
  925. # [19:36] * Quits: ph (~androirc@client-80-3-107-197.bsh-bng-012.adsl.virginmedia.net) (Remote host closed the connection)
  926. # [19:36] <rniwa> TabAtkins_: then I'll have to manually copy all attributes
  927. # [19:36] <rniwa> TabAtkins_: if they were not in prototype, no?
  928. # [19:36] <Ms2ger`> Philip`, https://www.w3.org/Bugs/Public/show_bug.cgi?id=15925 is for you
  929. # [19:37] <TabAtkins_> Depends on how you're doing your inheritance. ^_^
  930. # [19:37] <TabAtkins_> Are you chaining from the prototype, or using an exemplar object?
  931. # [19:37] <rniwa> TabAtkins_: sure. but the most common approach is by using prototype chain.
  932. # [19:37] * Joins: drublic (~drublic@frbg-5f73081b.pool.mediaWays.net)
  933. # [19:37] <TabAtkins_> I think I recall that WebIDL is defined to use prototype chaining, so okay.
  934. # [19:38] <AryehGregor> WebIDL for ES doesn't normally put any own properties on the objects themselves, only on the interface, IIRC.
  935. # [19:38] <AryehGregor> Except for [Unforgeable] and maybe some other cases.
  936. # [19:38] * AryehGregor is looking at getters now
  937. # [19:38] <rniwa> AryehGregor: right.
  938. # [19:38] <TabAtkins_> Where "interface" means "prototype object", yeah.
  939. # [19:39] <TabAtkins_> <3 "latest editor's draft" links.
  940. # [19:39] <rniwa> AryehGregor, AryehGregor: I think some JS engines optimize attributes on prototype
  941. # [19:39] <rniwa> ugh.. I mean AryehGregor & TabAtkins_
  942. # [19:39] <AryehGregor> Er, right.
  943. # [19:39] <TabAtkins_> Urgh, what is squatting my ordinary name?
  944. # [19:39] <rniwa> TabAtkins_, AryehGregor: because all objects that share the same prototype can then share some data structure internally
  945. # [19:40] * rniwa needs to learn more about JS engines
  946. # [19:40] <rniwa> we just need to summon some ES5 gurus here.
  947. # [19:40] <rniwa> arv: ?
  948. # [19:41] <Ms2ger`> gsnedders?
  949. # [19:41] * TabAtkins_ is now known as TabAtkins
  950. # [19:41] <TabAtkins> Ah, that's better.
  951. # [19:41] <AryehGregor> http://dev.w3.org/2006/webapi/WebIDL/#indexed-and-named-properties
  952. # [19:42] <AryehGregor> http://dev.w3.org/2006/webapi/WebIDL/#getownproperty
  953. # [19:43] <AryehGregor> Okay, yeah
  954. # [19:43] <AryehGregor> .
  955. # [19:43] <AryehGregor> So if you have a getter, the properties all become own properties.
  956. # [19:43] * AryehGregor isn't sure why
  957. # [19:43] <AryehGregor> Except if you have [NamedPropertiesObject].
  958. # [19:43] <rniwa> :(
  959. # [19:43] <AryehGregor> But that's cautioned against.
  960. # [19:44] <rniwa> AryehGregor: why do we have all those exotic things :(
  961. # [19:44] <AryehGregor> Also, that doesn't work if you have a setter.
  962. # [19:44] <TabAtkins> Okay, time to email public-script-coord and see what's up.
  963. # [19:44] <AryehGregor> rniwa, "Please leave your sense of logic at the door, thanks!"
  964. # [19:44] <rniwa> AryehGregor: we should rename that to DeprecatedNamedPropertiesObject
  965. # [19:44] <rniwa> AryehGregor: so that people won't use it
  966. # [19:45] <rniwa> AryehGregor: anyway, comment posted on https://www.w3.org/Bugs/Public/show_bug.cgi?id=13118
  967. # [19:45] <AryehGregor> Okay.
  968. # [19:45] <rniwa> AryehGregor: not firing events for script-initiated execCommand may not be as bad as I initially thought due to interop with mutation observer API
  969. # [19:45] <rniwa> but I think it's still nice to fire them.
  970. # [19:46] * rniwa sends emails to TinyMCE CKEditor developers
  971. # [19:47] <Ms2ger`> I wonder if CK has already committed my patch to stop using element.all
  972. # [19:49] <rniwa> AryehGregor: one question
  973. # [19:49] <AryehGregor> Okay.
  974. # [19:49] <rniwa> AryehGregor: is the plan to add new property on the event object to expose execCommand name?
  975. # [19:49] <hsivonen> rniwa: WebKit's old HTML parser as nowhere near as bad as Gecko's old HTML parser
  976. # [19:49] <rniwa> hsivonen: LOL
  977. # [19:49] <hsivonen> There should be a band called The Designated Experts
  978. # [19:49] * Joins: pablof (~pablof@144.189.101.1)
  979. # [19:49] <AryehGregor> rniwa, sure, I guess.
  980. # [19:49] <Ms2ger`> ^truth
  981. # [19:49] <AryehGregor> And value.
  982. # [19:50] <rniwa> AryehGregor: yeah
  983. # [19:50] <hsivonen> and The Unpaired Surrogates
  984. # [19:50] <rniwa> AryehGregor: so something like event.editingAction and event.editingActionValue?
  985. # [19:50] <AryehGregor> Yeah, I'll come up with names.
  986. # [19:50] <Ms2ger`> I'd let hsivonen come up with names :)
  987. # [19:50] * Quits: smaug____ (~chatzilla@GGYYCCXCVIII.gprs.sl-laajakaista.fi) (Remote host closed the connection)
  988. # [19:50] <hsivonen> s/as nowhere/was nowhere/
  989. # [19:55] <annevk> The Grapheme Clusterfuck
  990. # [19:55] <annevk> The Adoption Agency
  991. # [19:56] <rniwa> AryehGregor: thanks.
  992. # [19:56] * Joins: smaug____ (~chatzilla@GGYYCCXCVIII.gprs.sl-laajakaista.fi)
  993. # [19:56] <arv> rniwa: back, reading backlog
  994. # [19:59] <arv> rniwa: What was the question?
  995. # [19:59] <rniwa> AryehGregor: CSS resize property is insufficient for https://bugs.webkit.org/show_bug.cgi?id=12250
  996. # [20:00] <rniwa>
  997. # [20:00] <AryehGregor> rniwa, why?
  998. # [20:00] <rniwa> AryehGregor: it only changes the apparent size
  999. # [20:00] <rniwa> AryehGregor: not width and height property/content attribute
  1000. # [20:00] <AryehGregor> It adds style="width: x; height: x".
  1001. # [20:00] <AryehGregor> In browsers I tested in.
  1002. # [20:00] <rniwa> arv: the question is why WebIDL defines attributes on prototype instead on objects
  1003. # [20:00] <AryehGregor> That's how browsers work, and how JS works . . .
  1004. # [20:01] <rniwa> arv: my answer was that it's needed for inheritance
  1005. # [20:01] <rniwa> arv: but thought you might a better answer for TabAtkins
  1006. # [20:01] <AryehGregor> Not strictly. It also defines [Unforgeable].
  1007. # [20:01] <rniwa> AryehGregor: yeah...
  1008. # [20:01] <AryehGregor> That still works with inheritance, I think.
  1009. # [20:01] <arv> rniwa: The main reason to use getters and setters on the [[Prototype]] is to allow inheritance
  1010. # [20:01] <rniwa> arv: okay. so I was telling a lie :P
  1011. # [20:01] <rniwa> I wasn't*
  1012. # [20:02] <arv> rniwa: also, if these were data properties they could not have side effects so for example innerHTML could not be asked for lazily
  1013. # [20:02] <rniwa> AryehGregor: ah, you're right. I was not checking the right element :(
  1014. # [20:02] <rniwa> sorry about the noise.
  1015. # [20:02] <AryehGregor> arv, they could be accessor properties but still be on the object itself.
  1016. # [20:02] <rniwa> AryehGregor: I guess the only thing is that it needs to be undoable.
  1017. # [20:03] <AryehGregor> Sure.
  1018. # [20:03] <arv> AryehGregor: Yes, that would still be valid when it comes to following the rules of js semantics
  1019. # [20:03] <AryehGregor> I believe that's how [Unforgeable] properties work in practice.
  1020. # [20:03] <arv> AryehGregor: but it would be ineffiecient and not as useful
  1021. # [20:03] * Quits: sicking (~chatzilla@154-93.80-90.static-ip.oleane.fr) (Ping timeout: 240 seconds)
  1022. # [20:04] <AryehGregor> Unless you don't want authors to be able to mess with the prototype, which is occasionally the case.
  1023. # [20:04] <AryehGregor> Like for certain Window properties.
  1024. # [20:04] <rniwa> AryehGregor: do you know how I can make resize property work with img?
  1025. # [20:04] <rniwa>
  1026. # [20:04] <arv> AryehGregor: well, host object can break any logic reasoning so anything is doable. The goal of using getters and setters on the prototype for webidl attributes was to make webidl more sane
  1027. # [20:04] <rniwa> AryehGregor: I've tried some but doesn't seem to wokr
  1028. # [20:05] <rniwa> it's possible that we have a bug there
  1029. # [20:05] <AryehGregor> rniwa, resize properties is not very well defined.
  1030. # [20:05] <AryehGregor> This says it shouldn't apply to a regular img: http://dev.w3.org/csswg/css3-ui/#resize
  1031. # [20:05] <AryehGregor> But I think the spec is wrong.
  1032. # [20:05] <AryehGregor> I posted to www-style about it at some point, but it never changed.
  1033. # [20:06] <AryehGregor> http://lists.w3.org/Archives/Public/www-style/2011Aug/0565.html
  1034. # [20:06] <TabAtkins> arv: The interesting issue is that using the getter/setter/etc stuff in WebIDL establishes own properties, rather than prototype properties.
  1035. # [20:06] <TabAtkins> And the flag that switches it to non-own properties is marked as being used only for legacy.
  1036. # [20:06] <arv> TabAtkins: That can't be right
  1037. # [20:06] <TabAtkins> I'm asking public-script-coord about it now.
  1038. # [20:06] <TabAtkins> arv: We just looked it up. ^_^
  1039. # [20:07] <arv> TabAtkins: looking at webidl specs now
  1040. # [20:07] <TabAtkins> http://dev.w3.org/2006/webapi/WebIDL/#indexed-and-named-properties\
  1041. # [20:07] * Joins: timmywil (~timmywil@host-68-169-154-67.WISOLT2.epbfi.com)
  1042. # [20:07] <arv> TabAtkins: ah, indexed and named properties are not the same
  1043. # [20:07] <AryehGregor> getter/setter = indexed/named properties, more or less.
  1044. # [20:07] <arv> TabAtkins: those require proxy like behavior
  1045. # [20:08] <Ms2ger`> TabAtkins, the legacy thing is for the global scope polluter only
  1046. # [20:08] <arv> AryehGregor: not at all
  1047. # [20:08] <AryehGregor> No?
  1048. # [20:08] <arv> AryehGregor: indexed/named properties == Proxy
  1049. # [20:08] <AryehGregor> I mean WebIDL's getter/setter qualifiers, of course, not ES getter/setter.
  1050. # [20:08] <arv> AryehGregor: sorry, different terminalogy
  1051. # [20:08] <TabAtkins> arv: I thought the best way to fix CSSStyleDeclaration from being a set list of properties (which is obviously going to be forever incomplete) would be to use getter/setter to establish named properties.
  1052. # [20:09] <arv> TabAtkins: What does IE do?
  1053. # [20:09] <AryehGregor> TabAtkins, why not just add the properties individually to the prototype object, though?
  1054. # [20:09] <rniwa> AryehGregor: hm... but <img src="blah.png" style="overflow:auto;resize:both;"> should still be resizable, no?
  1055. # [20:10] <TabAtkins> arv: Everyone but us puts the properties on the prototype. We mark them as own properties.
  1056. # [20:10] <TabAtkins> AryehGregor: I don't understand.
  1057. # [20:10] <AryehGregor> rniwa, I don't see why not. overflow should make no difference for things that have intrinsic widths.
  1058. # [20:10] <AryehGregor> TabAtkins, I mean, what's wrong with the status quo?
  1059. # [20:10] <rniwa> AryehGregor: yeah, okay. so I think this is a webkit bu
  1060. # [20:10] <rniwa> bug*
  1061. # [20:10] <TabAtkins> It's clearly incomplete, and basically required to be, forever?
  1062. # [20:10] * Quits: richt (richt@nat/opera/x-vaozbniwhbufoezg) (Ping timeout: 245 seconds)
  1063. # [20:10] <rniwa> AryehGregor: http://simple-rte.rniwa.com/?editor=%3Cimg%20src%3D%22https%3A//rniwa.com/wp-content/latex/5f7/5f70c79d395af9fe2eb98c8b362d0bed-ffffff-000000-0.png%22%20style%3D%22overflow%3Aauto%3Bresize%3Aboth%3B%22%3E&designmode=false&script=document.getElementById%28%27editor%27%29.focus%28%29%3B
  1064. # [20:11] * Joins: richt (richt@nat/opera/x-ndmkdqmyiubmyqsv)
  1065. # [20:21] <arv> TabAtkins: IE has ES getters/setters for all known properties on CSSStyleDeclarationPrototype
  1066. # [20:21] <arv> TabAtkins: this seems to be the only sane thing to me
  1067. # [20:22] <Ms2ger`> arv, that's what the spec currently says, IIRC
  1068. # [20:22] <AryehGregor> Which means in WebIDL terms, they're just regular attributes on the interface.
  1069. # [20:22] <AryehGregor> Which is what the spec says, yeah.
  1070. # [20:22] <arv> Ms2ger`: good
  1071. # [20:22] <TabAtkins> Using ES getters and setters is definitely the correct behavior (so you can do lazy generation), and the spec currently requires them to be on the prototype.
  1072. # [20:22] <AryehGregor> Attributes in WebIDL are always accessor properties, not data properties, AFAIK.
  1073. # [20:22] <Ms2ger`> Yes
  1074. # [20:22] * Joins: jwalden (~waldo@2620:101:8003:200:224:d7ff:fef0:8d90)
  1075. # [20:22] <TabAtkins> But they're currently not spec-compliant if they support more than the 2.1 properties explicitly listed in CSSOM.
  1076. # [20:22] <TabAtkins> Which I'd like to fix, for obvious reasons.
  1077. # [20:23] <AryehGregor> TabAtkins, well, by that logic nobody is spec-compliant if they support any feature that's not in some particular spec.
  1078. # [20:23] <arv> OK. It is unclear to me what the problem is then (except of course that the JSC and V8 bindings in WebKit are broken)
  1079. # [20:23] <TabAtkins> The problem is that the IDL in the CSSOM is broken.
  1080. # [20:23] <TabAtkins> And I'm trying to fix it.
  1081. # [20:23] <AryehGregor> How so?
  1082. # [20:23] <TabAtkins> AryehGregor: It has only a small list of properties on the interface, missing all the CSS3 properties.
  1083. # [20:24] <arv> TabAtkins: Why is adding a webidl attribute for every css property not the right way to do this?
  1084. # [20:24] <TabAtkins> I assumed that the best way to fix this was to use IDL getter/setter, and define the list of named properties to be the CSS properties that the impl supports (suitably converted from dashes to camel-case).
  1085. # [20:24] * JohnAlbin is now known as JohnAsleep
  1086. # [20:24] <TabAtkins> arv: Because the list will change continuously, and it's silly to change CSSOM every time we publish a new CSS spec.
  1087. # [20:24] <TabAtkins> When this is a mechanical addition.
  1088. # [20:24] <AryehGregor> You could also say that any other supported CSS properties have to be regular IDL attributes too.
  1089. # [20:24] <Ms2ger`> TabAtkins, indeed
  1090. # [20:25] <Ms2ger`> TabAtkins, so use partial interfaces :)
  1091. # [20:25] <TabAtkins> Ms2ger`: Requiring every spec to apply diffs to the interface for a mechanical addition is almost as silly.
  1092. # [20:25] <AryehGregor> I.e., if a spec defines foo-bar, say that it implies "partial interface CSSStyleDeclarationValue { attribute DOMString fooBar; };" with behavior as defined by CSSOM.
  1093. # [20:25] <AryehGregor> You don't have to require the other specs to actually spell out the partial interfaces.
  1094. # [20:25] <TabAtkins> AryehGregor: Hm, I guess that would work.
  1095. # [20:25] <Ms2ger`> That works too
  1096. # [20:26] <AryehGregor> FWIW, many other specs will realistically have to spell out behavior anyway.
  1097. # [20:26] <Ms2ger`> But every spec needs to define CSSOM stuff anyway
  1098. # [20:26] <AryehGregor> Because lots of properties have non-obvious serialization.
  1099. # [20:26] <TabAtkins> We'll have to start defining serialization, but I have hope that for most cases we can do that mechanically too.
  1100. # [20:26] <TabAtkins> Anne already attempted that.
  1101. # [20:26] <arv> TabAtkins: it will change all the time. That is fine. Just like Ms2ger` said, use partial or supplemental interfaces. If you defined a new CSS property you have to add some idl
  1102. # [20:26] <AryehGregor> You have to define an order for computed values, at least.
  1103. # [20:27] <AryehGregor> Like, browsers disagree on whether the computed style of textShadow gets serialized with the color first or last.
  1104. # [20:27] <TabAtkins> AryehGregor: Yeah, that was already handled by Anne's attempt - the order is whatever order appears in the grammar.
  1105. # [20:27] * Joins: odinho (~odin@106-38-11.connect.netcom.no)
  1106. # [20:27] <AryehGregor> Which means the order in the grammar is now retroactively significant when it previously wasn't.
  1107. # [20:27] <TabAtkins> That's not implemented yet, but it's an example of how it coudl be handled generally, without every spec needing to define it.
  1108. # [20:27] <AryehGregor> http://dev.w3.org/csswg/css3-text/#text-shadow
  1109. # [20:27] <AryehGregor> The "Value" puts the lengths first, and the "Computed value" puts the color first.
  1110. # [20:27] <TabAtkins> AryehGregor: Not necessarily. We can always legacy-define things if necessary for compat.
  1111. # [20:27] * Quits: zcorpan (~zcorpan@c-699de355.410-6-64736c14.cust.bredbandsbolaget.se) (Quit: zcorpan)
  1112. # [20:27] <AryehGregor> Yay for consistency.
  1113. # [20:28] <AryehGregor> That's probably why browsers disagree.
  1114. # [20:28] <TabAtkins> Heh, yeah.
  1115. # [20:28] <AryehGregor> Anyway, PLEASE PLEASE PLEASE someone define precise algorithmic serialization rules for everything in CSSOM.
  1116. # [20:28] <AryehGregor> It's a trainwreck.
  1117. # [20:28] <TabAtkins> Yes. Absolutely.
  1118. # [20:28] <AryehGregor> Browsers do ridiculously different things.
  1119. # [20:28] <AryehGregor> Like every one serializes colors differently.
  1120. # [20:28] <TabAtkins> I'm not sure if that's part of Glen's current effort, but it'll be a very-soon thing.
  1121. # [20:29] <AryehGregor> IE mostly uses rgba(), everyone else uses rgb() if alpha is 1.
  1122. # [20:29] <AryehGregor> Gecko serializes transparent as "transparent" instead of "rgba(0, 0, 0, 0)".
  1123. # [20:29] <Ms2ger`> And if it isn't, let's have AryehGregor edit another spec ;)
  1124. # [20:29] <TabAtkins> AryehGregor: IE uses named colors if you specified them as such. ;_;
  1125. # [20:29] <AryehGregor> Except maybe only if you specify it as "transparent".
  1126. # [20:29] <AryehGregor> Right.
  1127. # [20:29] <TabAtkins> Ms2ger`: Nah, I can probably handle that.
  1128. # [20:29] <AryehGregor> Will you write tests too? :)
  1129. # [20:29] <TabAtkins> I'll be "done" with Flexbox and Images in the near future.
  1130. # [20:29] <Ms2ger`> TabAtkins, in upper case? Or was that something else...
  1131. # [20:29] <TabAtkins> AryehGregor: Yes!
  1132. # [20:29] <AryehGregor> Exhaustive tests?
  1133. # [20:30] <TabAtkins> Ms2ger`: Don't know - I think I lowercased everything defensively last time I wrote code to handle it.
  1134. # [20:30] <TabAtkins> AryehGregor: Why not?
  1135. # [20:30] <AryehGregor> Please do.
  1136. # [20:30] * AryehGregor is looking forward.
  1137. # [20:30] <Ms2ger`> Because those barely exist for CSS
  1138. # [20:30] <AryehGregor> Tests barely exist for CSS period. Except some reftests for 2.1.
  1139. # [20:30] <TabAtkins> Ms2ger`: Tests barely exist for CSS outside of 2.1. :/
  1140. # [20:30] <AryehGregor> Well, quite a few reftests for 2.1.
  1141. # [20:30] <AryehGregor> To be fair.
  1142. # [20:30] <Ms2ger`> s/outside of 2.1//
  1143. # [20:30] <AryehGregor> How good is test coverage for 2.1?
  1144. # [20:30] <Ms2ger`> Mostly manual tests for CSS2.1
  1145. # [20:30] <TabAtkins> Hey, a 30k testsuite isn't nothing.
  1146. # [20:30] <Ms2ger`> Bad
  1147. # [20:31] <TabAtkins> They are mostly manual, but still.
  1148. # [20:31] <AryehGregor> Ugh, manual. Good grief.
  1149. # [20:31] <TabAtkins> Yeah.
  1150. # [20:31] <TabAtkins> It takes about 10 hours to run it.
  1151. # [20:31] <AryehGregor> They're not being converted to reftests?
  1152. # [20:31] * TabAtkins has done it several times.
  1153. # [20:31] <Ms2ger`> 3 days, last I heard
  1154. # [20:31] * Joins: skylamer` (cgskylamer@78.90.213.55)
  1155. # [20:31] <TabAtkins> Ms2ger`: 10 hours spread over 3 days. You probably last heard that from me. ^_^
  1156. # [20:31] * TabAtkins can't run tests continuously for 10 hours.
  1157. # [20:31] <Ms2ger`> From MS, actually :)
  1158. # [20:32] <TabAtkins> I know that when I was compiling the Chrome implementation report, it was 10 hours over 3 days.
  1159. # [20:32] <TabAtkins> And it was horrible.
  1160. # [20:32] <Ms2ger`> I wrote references for some MS tests a while ago, but I guess I should get them into the official test suite somehow...
  1161. # [20:32] <TabAtkins> AryehGregor: No one putting in much time currently. dbaron has a partially-completed effort that does most of them.
  1162. # [20:33] <AryehGregor> Yay.
  1163. # [20:33] <Velmont> Aaagh, too much backlog.
  1164. # [20:34] <TabAtkins> I think it basically reftests all the tests against each other, so he could generate refs for tests that all render the same.
  1165. # [20:34] <Ms2ger`> https://bitbucket.org/ms2ger/css-tests/overview if anybody cares
  1166. # [20:34] <Ms2ger`> TabAtkins, I thought that was Opera
  1167. # [20:34] <TabAtkins> Ms2ger`: Could be, I dunno. Been a while.
  1168. # [20:37] * Joins: raph (~quassel@lns-bzn-27-82-248-47-7.adsl.proxad.net)
  1169. # [20:37] * Joins: dbaron (~dbaron@nat/mozilla/x-xnbdbfonwinnmyge)
  1170. # [20:37] * raph is now known as Guest21236
  1171. # [20:37] <AryehGregor> If I do say so myself, there are some pretty decent tests now for CSS Transforms.
  1172. # [20:37] <AryehGregor> Although probably lots more reftests could be added.
  1173. # [20:37] * Quits: Guest21236 (~quassel@lns-bzn-27-82-248-47-7.adsl.proxad.net) (Client Quit)
  1174. # [20:37] * Joins: raph_ (~quassel@lns-bzn-27-82-248-47-7.adsl.proxad.net)
  1175. # [20:37] * Quits: raph_ (~quassel@lns-bzn-27-82-248-47-7.adsl.proxad.net) (Client Quit)
  1176. # [20:37] <Ms2ger`> AryehGregor, you don't have family members interested in spec work, do you? :)
  1177. # [20:38] <AryehGregor> Probably not. Sorry.
  1178. # [20:38] <Philip`> What about your evil twin, Roger G. Heyra?
  1179. # [20:38] <AryehGregor> I mean, my brother works in web development-related stuff and might be interested in a job, so if you really want, you could contact him. I don't think he's actually very interested in spec work, though.
  1180. # [20:40] <Ms2ger`> Just saying it would be nice to have another competent editor/tester around :)
  1181. # [20:40] * Joins: raphc (~quassel@lns-bzn-27-82-248-47-7.adsl.proxad.net)
  1182. # [20:42] <AryehGregor> Okay, so when DOM4 talks a
  1183. # [20:42] <AryehGregor> Okay, so when DOM4 talks about dispatching an event, that's synchronous, right?
  1184. # [20:42] <Ms2ger`> Yes
  1185. # [20:42] <AryehGregor> So if specs want it to be async, they have to say to queue a task to fire the event?
  1186. # [20:42] <Ms2ger`> Yes
  1187. # [20:42] <AryehGregor> Okay.
  1188. # [20:42] <AryehGregor> Then I was just confused.
  1189. # [20:42] <AryehGregor> So lots of events are really synchronous, I guess?
  1190. # [20:43] <Ms2ger`> I wouldn't guess so
  1191. # [20:43] <AryehGregor> Hmm, this doesn't reference DOM4: http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#fire-a-simple-event
  1192. # [20:44] <AryehGregor> Or it does, but they're not linked.
  1193. # [20:44] <Ms2ger`> Ueah
  1194. # [20:44] <jgraham> I got bored and started skimming, but if you didn't figure it out yet, attributes are on prototypes because it allows feature detection
  1195. # [20:45] <jgraham> Not because it makes logical sense
  1196. # [20:45] <AryehGregor> jgraham, usually you can get an instance pretty easily.
  1197. # [20:45] <jgraham> (e.g. you can feature detect XHR stuff without having to construct an XHR object)
  1198. # [20:45] <Ms2ger`> "In the contexts of events, the terms fire and dispatch are used as defined in the DOM Core specification
  1199. # [20:45] <AryehGregor> Also, this way you can fiddle with the value on the prototype.
  1200. # [20:46] <Ms2ger`> (2.1.4 Scripting)
  1201. # [20:46] <jgraham> AryehGregor: XHR is an example where it is a huge pain
  1202. # [20:46] <AryehGregor> Makes sense.
  1203. # [20:46] <Ms2ger`> Heh
  1204. # [20:46] <Ms2ger`> [DOMCORE]
  1205. # [20:46] <Ms2ger`> Web DOM Core, A. van Kesteren. W3C.
  1206. # [20:46] <jgraham> If it helps, I argued several times that it didn't make logical sense, but the feature detection argument seems more compelling
  1207. # [20:47] <AryehGregor> It also allows polyfills, right?
  1208. # [20:47] <AryehGregor> Plus, it matches what non-WebKit browsers do.
  1209. # [20:47] <jgraham> AryehGregor: In other backscroll related news, opera are absoutely interested in the editing spec
  1210. # [20:47] <AryehGregor> That's good.
  1211. # [20:47] <AryehGregor> Everyone seems to be interested.
  1212. # [20:47] <AryehGregor> Just no one seems to be implementing it. :)
  1213. # [20:47] <jgraham> (It's not what Opera does, right?)
  1214. # [20:47] <AryehGregor> What isn't?
  1215. # [20:47] <jgraham> attributes on prototypes
  1216. # [20:47] <AryehGregor> Is it?
  1217. # [20:47] <AryehGregor> I don't remember.
  1218. # [20:48] <AryehGregor> It's what IE and Gecko do, generally.
  1219. # [20:48] <jgraham> I thought we put them on the objects
  1220. # [20:48] <jgraham> because I suggested that we copy Gecko at some point before there was a spec, but we decided not to
  1221. # [20:49] <jgraham> AryehGregor: well we aren't rewriting our DocumentEdit right now, but it's not exactly a secret that our implementation doesn't have wonderful site-compat, so I imagine we will make good sometime
  1222. # [20:51] <AryehGregor> jgraham, hmm -- now I think I remember. I think "style" in document.head is true, but Object.hasOwnProperty(document.head, "style") is false, and nothing in the prototype chain has an own property with that name either.
  1223. # [20:51] <AryehGregor> So . . . :)
  1224. # [20:52] <Ms2ger`> The new Object.* APIs generally don't work too well with host objects, iirc
  1225. # [20:53] <AryehGregor> Yeah, actually, that seems to be everyone's behavior . . . ?
  1226. # [20:53] * AryehGregor is confused by that
  1227. # [20:53] <AryehGregor> Oh, am I calling it wrong?
  1228. # [20:53] * Joins: jamesr (jamesr@nat/google/x-izcvidfexqlnbxfv)
  1229. # [20:53] <AryehGregor> Yeah, hasOwnProperty() is on the prototype, not Object itself.
  1230. # [20:53] <AryehGregor> Oops.
  1231. # [20:54] <AryehGregor> http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cscript%3E%0Aw(%22style%22%20in%20document.head)%0Avar%20obj%20%3D%20document.head%3B%0Ado%20%7B%0Aw(obj.hasOwnProperty(%22style%22))%3B%0Aobj%20%3D%20Object.getPrototypeOf(obj)%3B%0A%7D%20while%20(obj)%3B%0A%3C%2Fscript%3E
  1232. # [20:54] <AryehGregor> IE looks to be right here.
  1233. # [20:54] <AryehGregor> Opera and WebKit just put it straight on the object.
  1234. # [20:54] <AryehGregor> Gecko puts it on two different prototype objects in the chain.
  1235. # [20:54] * Quits: odinho (~odin@106-38-11.connect.netcom.no) (Quit: Hmm. Double login. :-))
  1236. # [20:54] <Hixie> anyone have access to an AT other than VO?
  1237. # [20:54] <Ms2ger`> Gecko is weird
  1238. # [20:54] <Hixie> i'm trying to find if you can actually select system text labels or move the cursor through them
  1239. # [20:55] <Ms2ger`> But it will be all fancy in a couple of months
  1240. # [20:55] <Hixie> or if you can only select the entire label and have the UA read it and magnify it
  1241. # [20:56] * Joins: danbri_ (~danbri@cable-146-255-153-130.dynamic.telemach.ba)
  1242. # [20:56] * heycam|away is now known as heycam
  1243. # [20:56] <AryehGregor> So if I want special attributes like .editAction and .editActionValue on my input events, I have to make a new interface that inherits from Event, right?
  1244. # [20:57] <annevk> yes
  1245. # [20:57] <annevk> InputEvent or some such
  1246. # [20:57] <annevk> or reuse one of the existing interfaces
  1247. # [20:57] <annevk> if one is suitable
  1248. # [20:57] <AryehGregor> It's UIEvent in Gecko, seemingly.
  1249. # [20:58] <AryehGregor> So input events on input/textarea would be Event, but contenteditable input events would be EditingInputEvent or something?
  1250. # [20:58] <AryehGregor> But they'd have the same name?
  1251. # [20:58] <annevk> if you want
  1252. # [20:58] <AryehGregor> I'm not sure if that's the best way to do it.
  1253. # [20:59] <annevk> you can upgrade the input on input/textarea
  1254. # [20:59] <annevk> events are flexible, any string can be used with any interface
  1255. # [21:00] <annevk> only requirement is that the interface inherits from Event
  1256. # [21:00] <AryehGregor> We probably don't want the extra fields on input/textarea events.
  1257. # [21:00] <AryehGregor> Okay, I'll do it that way, I guess.
  1258. # [21:01] * AryehGregor looks at the editing spec for the first time in forever
  1259. # [21:03] <AryehGregor> The last time I changed anything editing-related (excluding selections) seems to be November 9.
  1260. # [21:03] * Quits: maikmerten (~maikmerte@port-92-201-209-70.dynamic.qsc.de) (Remote host closed the connection)
  1261. # [21:05] <Hixie> jeez, voiceover makes no sense to me
  1262. # [21:05] <Ms2ger`> Close your eyes ;)
  1263. # [21:06] <annevk> btw
  1264. # [21:06] <annevk> on Facebook
  1265. # [21:06] <annevk> http://a8.sphotos.ak.fbcdn.net/hphotos-ak-ash4/425243_10150563377962688_607047687_9171920_420903654_n.jpg
  1266. # [21:06] <AryehGregor> annevk, so people can do "new HashChangeEvent('input')" and that creates a HashChangeEvent with type "input"? That seems very confusing.
  1267. # [21:06] <annevk> yeah they can
  1268. # [21:06] <Hixie> ok my conclusion is "voice over doesn't let you move your cursor through text labels"
  1269. # [21:06] <Hixie> in the OS
  1270. # [21:06] <AryehGregor> Okay, if that's what we want.
  1271. # [21:08] * Quits: raphc (~quassel@lns-bzn-27-82-248-47-7.adsl.proxad.net) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
  1272. # [21:09] * Joins: othermaciej (~mjs@17.245.90.46)
  1273. # [21:10] <arv> annevk: Why do we have DOMStringList again?
  1274. # [21:11] <Ms2ger`> Blame DOM3
  1275. # [21:11] <annevk> source code says
  1276. # [21:11] <annevk> HTMLPropertiesCollection.names
  1277. # [21:11] <annevk> DataTranser.types
  1278. # [21:11] <annevk> Clipboard.types
  1279. # [21:11] <annevk> Document.styleSheetSets
  1280. # [21:11] <annevk> IndexedDB APIs
  1281. # [21:11] <annevk> I think that's all
  1282. # [21:11] <annevk> but it's been a while since I surveyed
  1283. # [21:11] <arv> I saw that we (WebKit) changed from Array of Strings to DOMStringList and it made things a lot worse since now it is no longer a plain old array
  1284. # [21:11] <annevk> oh never do that if it can be avoided
  1285. # [21:11] <arv> For dataTransfer.types
  1286. # [21:12] <AryehGregor> rniwa, do we want to fire beforeInput/input on unsupported commands too?
  1287. # [21:12] <AryehGregor> I guess we should fire beforeInput but not input, probably . . .
  1288. # [21:12] <rniwa> AryehGregor: I think so
  1289. # [21:12] <AryehGregor> So you can cancel the beforeInput event to avoid throwing NotSupportedErr.
  1290. # [21:12] <rniwa> AryehGregor: well but if you're talking about user-definied ones, i'm not so sure
  1291. # [21:13] <AryehGregor> I mean, if the author does document.execCommand("sakfdsajda"), does that fire beforeInput before it throws NotSupportedErr?
  1292. # [21:13] <annevk> arv: anyway above is the whole list, if that can somehow be changed we can drop it, though I can add a big fat warning in the spec to not use it maybe
  1293. # [21:13] <annevk> arv: so that new specs adopt DOMString[] instead
  1294. # [21:14] <arv> annevk: Can WebIDL be specced in such a way that it maps DOMStringList to a JS Array?
  1295. # [21:14] * danbri_ is now known as danbri
  1296. # [21:14] <arv> annevk: I'm fine with DOMString[] too
  1297. # [21:14] <annevk> arv: heycam might know that
  1298. # [21:14] <Ms2ger`> typedef DOMString[] DOMStringList;
  1299. # [21:15] <annevk> arv: but array does not have contains()
  1300. # [21:15] <arv> We should really minimize DOMStringList and other list like interfaces that adds nothing over Array
  1301. # [21:15] <arv> We can add contains to Array.
  1302. # [21:15] <arv> I'll make sure it is in ES
  1303. # [21:15] <arv> I'll make sure it is in ES6
  1304. # [21:16] <Ms2ger`> indexOf != -1
  1305. # [21:17] <arv> or !~indexOf(i) ;-)
  1306. # [21:18] <Ms2ger`> r-
  1307. # [21:18] * Quits: jamesr (jamesr@nat/google/x-izcvidfexqlnbxfv) (Quit: jamesr)
  1308. # [21:20] <Philip`> 1+indexOf
  1309. # [21:20] * Joins: jamesr (jamesr@nat/google/x-fjksjrwxchrrptpn)
  1310. # [21:22] <AryehGregor> rniwa, wait, does beforeInput actually exist for inputs/textareas?
  1311. # [21:22] <AryehGregor> It seems like it doesn't . . .
  1312. # [21:23] * Quits: roc (~chatzilla@81.130.197.83) (Ping timeout: 240 seconds)
  1313. # [21:25] <annevk> seeking review for
  1314. # [21:25] <annevk> <p class=warning>Although <code>DOMStringList</code> has been used
  1315. # [21:25] <annevk> historically, new specifications ought to avoid it and use arrays instead.
  1316. # [21:25] <annevk> Ms2ger`: arv: ^^
  1317. # [21:25] <arv> annevk: LGTM
  1318. # [21:25] <Ms2ger`> wfm
  1319. # [21:26] * Joins: RobbertAtWork (~Robbert@a83-160-99-114.adsl.xs4all.nl)
  1320. # [21:27] <AryehGregor> rniwa, if the beforeinput event handler removes the editing host from its parent, should the input event still fire?
  1321. # [21:27] <TabAtkins> annevk: q+ c+
  1322. # [21:27] <AryehGregor> I'm thinking yes.
  1323. # [21:28] <annevk> http://dvcs.w3.org/hg/domcore/rev/d9074e2139ee
  1324. # [21:28] <TabAtkins> Damn, getCSSCanvasContext doesn't seem to work for "experimental-webgl". ;_; It just fails silently and returns undefined instead of a context.
  1325. # [21:29] <AryehGregor> rniwa, also, what if multiple beforeInput events are fired and only some are canceled?
  1326. # [21:29] <AryehGregor> Should canceling any one of them cancel the action?
  1327. # [21:29] <AryehGregor> Or should it cause that editing host to not be affected?
  1328. # [21:29] <AryehGregor> Probably the latter.
  1329. # [21:30] <ojan> AryehGregor: currently beforeInput doesn't exist in any browser or spec
  1330. # [21:30] <AryehGregor> Hmm.
  1331. # [21:30] <AryehGregor> I guess I'll add it for contenteditable before anyone's specced it for anything else. :)
  1332. # [21:30] <Ms2ger`> TabAtkins, CSS?
  1333. # [21:31] * Joins: Lachy (~Lachy@77.106.144.217)
  1334. # [21:32] <TabAtkins> Ms2ger`: Proprietary webkit function introduced in 2008 to achieve similar results to -moz-element().
  1335. # [21:33] <TabAtkins> You use it with -webkit-canvas() so you can use a canvas as an image.
  1336. # [21:33] <Ms2ger`> Ah
  1337. # [21:35] * gwillen is now known as fsy42351rsgw3
  1338. # [21:36] * fsy42351rsgw3 is now known as gwillen
  1339. # [21:38] <AryehGregor> rniwa, do we want to fire events for miscellaneous commands? copy/cut/paste/undo/redo/selectAll should have their own events. I'm not sure if it's useful to fire events for styleWithCSS/useCSS.
  1340. # [21:38] * AryehGregor decides not to fire events for now
  1341. # [21:40] <AryehGregor> Seems WebKit doesn't fire events.
  1342. # [21:42] * Quits: Druid_ (~Druid@p5B05D408.dip.t-dialin.net) (Ping timeout: 265 seconds)
  1343. # [21:42] * Quits: graememcc (~chatzilla@host86-150-157-88.range86-150.btcentralplus.com) (Quit: ChatZilla 0.9.88 [Firefox 10.0.2/20120216081259])
  1344. # [21:46] * Joins: Druid_ (~Druid@p5B137D7D.dip.t-dialin.net)
  1345. # [21:47] * Quits: smaug____ (~chatzilla@GGYYCCXCVIII.gprs.sl-laajakaista.fi) (Ping timeout: 241 seconds)
  1346. # [21:49] * Joins: smaug____ (~chatzilla@GGYYCCXCVIII.gprs.sl-laajakaista.fi)
  1347. # [21:58] * Joins: hij1nx (~hij1nx@216.156.130.35.ptr.us.xo.net)
  1348. # [22:00] * Joins: ezoe (~ezoe@203-140-88-136f1.kyt1.eonet.ne.jp)
  1349. # [22:01] * Joins: sicking (~chatzilla@154-93.80-90.static-ip.oleane.fr)
  1350. # [22:02] <AryehGregor> Hixie, what tool do you use to check IDL validity?
  1351. # [22:02] <AryehGregor> You mentioned one.
  1352. # [22:03] <rniwa> AryehGregor: hm... what do you mean by multiple beforeInput events are fired?
  1353. # [22:03] <AryehGregor> rniwa, it's a corner case, so I don't think it's worth worrying about right now.
  1354. # [22:03] <rniwa> AryehGregor: are they all initiated by the same user action? or are they fired on different editing host?
  1355. # [22:03] <AryehGregor> But if you have two editing hosts and the selection spans both of them and you do something like bold, it will fire beforeInput at both per the spec I just wrote.
  1356. # [22:03] <rniwa> AryehGregor: not firing for selectAll, styleWithCSS, etc... make sense.
  1357. # [22:03] <AryehGregor> (which is a WIP here: http://aryeh.name/tmp/editing/editing.html#methods-to-query-and-execute-commands )
  1358. # [22:03] <rniwa> AryehGregor: yeah...
  1359. # [22:04] <rniwa> AryehGregor: I think canceling any of that should cancel the entire action
  1360. # [22:04] <rniwa> AryehGregor: makes the behavior simple
  1361. # [22:04] <AryehGregor> I think it should cancel it only for that editing host, probably. But it's a corner case, so it doesn't matter much for now.
  1362. # [22:05] <rniwa> AryehGregor: maybe but that'll make the implementation more complicated
  1363. # [22:06] <AryehGregor> For now I just say it works unless all the events are canceled.
  1364. # [22:06] <rniwa> AryehGregor: e.g. what if you had an event handler on the common ancestor of those two editing hosts
  1365. # [22:06] <rniwa> AryehGregor: then we'll get two events and you have to cancel both
  1366. # [22:06] <AryehGregor> That's confusing no matter what, I think.
  1367. # [22:06] <AryehGregor> Unless we always fire the events at the document and not the editing host.
  1368. # [22:06] <AryehGregor> Would that be better?
  1369. # [22:06] <AryehGregor> Then it's just one event.
  1370. # [22:06] <AryehGregor> Makes things simpler.
  1371. # [22:06] <AryehGregor> But that doesn't match WebKit.
  1372. # [22:06] <AryehGregor> I think ojan preferred firing at the editing host.
  1373. # [22:06] <rniwa> AryehGregor: i've started to think that maybe we shouldn't allow multiple editing hosts to be modifed at once
  1374. # [22:07] <AryehGregor> It's a lot more intuitive to put the input handler on the editing host itself.
  1375. # [22:07] <AryehGregor> Why not?
  1376. # [22:07] <rniwa> AryehGregor: it seems odd
  1377. # [22:07] <rniwa> AryehGregor: in most cases, only way you'd have non-editable content in an editing host is to have a non-editable widget, etc...
  1378. # [22:07] <AryehGregor> Having multiple editing hosts seems odd. :)
  1379. # [22:07] <rniwa> AryehGregor: right.
  1380. # [22:07] <rniwa> AryehGregor: so why don't we simplify the implementation in that case
  1381. # [22:08] <rniwa> AryehGregor: and only modify the editing host of selection start, for example,
  1382. # [22:08] <AryehGregor> I think some UAs do that.
  1383. # [22:08] <AryehGregor> It wouldn't simplify my spec at all, though.
  1384. # [22:08] <rniwa> AryehGregor: modifying multiple editing host at once is like having multi-range selection
  1385. # [22:08] <AryehGregor> So I don't see the value in it personally.
  1386. # [22:08] <AryehGregor> Not really.
  1387. # [22:08] <rniwa> AryehGregor: hm...
  1388. # [22:08] <AryehGregor> My spec currently only cares if a node is editable or not.
  1389. # [22:08] <rniwa> AryehGregor: I'll think about it more but I think we should try to keep it simple as possible
  1390. # [22:08] <AryehGregor> It doesn't care what editing host it's in.
  1391. # [22:09] <AryehGregor> So it's more complicated to restrict effects to only one editing host.
  1392. # [22:09] <AryehGregor> Not simpler.
  1393. # [22:09] <rniwa> AryehGregor: possible.
  1394. # [22:09] <rniwa> AryehGregor: I need to read code and think harder
  1395. # [22:09] <AryehGregor> We might want to only fire the event at the first editing host, though.
  1396. # [22:09] <AryehGregor> Or something like that.
  1397. # [22:09] <AryehGregor> I'm not sure.
  1398. # [22:09] <rniwa> AryehGregor: but you're right thta it probably doesn't matter in practice
  1399. # [22:09] <rniwa> since virtually nobody does something like that
  1400. # [22:10] <rniwa> especially because selection shouldn't be able to cross editing boundary by default
  1401. # [22:10] <AryehGregor> Or fire it at the first editing host, then only fire at the second if the first wasn't handled.
  1402. # [22:10] <AryehGregor> Or I dunno.
  1403. # [22:10] <AryehGregor> But it's a corner case.
  1404. # [22:10] <rniwa> AryehGregor: come to think of... why can we have multiple editing hosts at once?
  1405. # [22:10] * Quits: erichynds (~ehynds@venkman.brightcove.com)
  1406. # [22:10] <AryehGregor> Because maybe there are two unrelated widgets on the page that both want to be editable.
  1407. # [22:10] <rniwa> AryehGregor: I swear webkit doesn't allow you to put selection ends in different editing hosts
  1408. # [22:11] <rniwa> AryehGregor: yeah but then you can't place selection ends at both of those ends
  1409. # [22:11] <AryehGregor> The user maybe can't.
  1410. # [22:11] * AryehGregor tests
  1411. # [22:11] <rniwa> AryehGregor: you can only put selection in either
  1412. # [22:11] <AryehGregor> Scripts can.
  1413. # [22:11] <rniwa> AryehGregor: don't think so
  1414. # [22:11] <rniwa> AryehGregor: we'll normalize to avoid that
  1415. # [22:12] <rniwa> AryehGregor: add range like that
  1416. # [22:12] <AryehGregor> It doesn't seem possible for the user to create such a selection, no.
  1417. # [22:12] <rniwa> AryehGregor: and you should get a normalized selection
  1418. # [22:12] <AryehGregor> In WebKit.
  1419. # [22:12] <rniwa> AryehGregor: right.
  1420. # [22:12] <rniwa> AryehGregor: I'd argue that it's the desirable behavior
  1421. # [22:12] <rniwa> AryehGregor: I don't think other browsers let create selection that crosses multiple editing boundaries either
  1422. # [22:12] <rniwa> AryehGregor: users* create
  1423. # [22:13] <AryehGregor> Yeah, WebKit seems to not allow such selections.
  1424. # [22:13] <rniwa> AryehGregor: I suspect Gecko will let scripts do that
  1425. # [22:13] <AryehGregor> I think in Gecko it's possible even for users.
  1426. # [22:13] <AryehGregor> At least if they're inline.
  1427. # [22:13] <rniwa> but that's because they don't normalize programmatically set selection
  1428. # [22:13] <AryehGregor> Maybe not for blocks.
  1429. # [22:13] <rniwa> AryehGregor: really? that's surprising
  1430. # [22:13] <AryehGregor> It's probably a bug.
  1431. # [22:13] <rniwa> AryehGregor: okay
  1432. # [22:13] <rniwa> AryehGregor: maybe you should check with ehsan
  1433. # [22:13] <AryehGregor> No, maybe not.
  1434. # [22:13] <AryehGregor> Scripts can create such selections, but it seems users can't.
  1435. # [22:14] <AryehGregor> Oh, wait.
  1436. # [22:14] <AryehGregor> I can get a selection in both Gecko and WebKit that contains multiple editing hosts.
  1437. # [22:14] * Quits: RobbertAtWork (~Robbert@a83-160-99-114.adsl.xs4all.nl) (Quit: RobbertAtWork)
  1438. # [22:14] <AryehGregor> Select some non-editable content before the first, drag to non-editable content after the second.
  1439. # [22:15] <AryehGregor> In Gecko, if you start to drag in non-editable content, it looks like you can drag to the middle of an editing host too.
  1440. # [22:15] <AryehGregor> But then hitting keys does nothing.
  1441. # [22:15] <AryehGregor> Okay, so this is complicated.
  1442. # [22:15] <AryehGregor> Feh.
  1443. # [22:16] <AryehGregor> I'll spec it as firing an event at only the first editing host that intersects the selection.
  1444. # [22:16] <rniwa> AryehGregor: that's probably a bug
  1445. # [22:16] <AryehGregor> Hmm, what about nested editing hosts?
  1446. # [22:16] <AryehGregor> Yeah, bugs in browser editing support. Big surprise. :)
  1447. # [22:16] <rniwa> AryehGregor: wait
  1448. # [22:16] <rniwa> AryehGregor: but if ends at at some non-editable locartions
  1449. # [22:17] <rniwa> AryehGregor: I don't think we'll modify the contents
  1450. # [22:17] <AryehGregor> Right.
  1451. # [22:17] <rniwa> AryehGregor: so we shouldn't fire anything
  1452. # [22:17] <AryehGregor> The spec doesn't currently work that way, I don't think.
  1453. # [22:17] <AryehGregor> That could be changed.
  1454. # [22:17] <rniwa> AryehGregor: oh, the spec should definitely change then.
  1455. # [22:17] <AryehGregor> I mean, I know it doesn't work that way.
  1456. # [22:17] <AryehGregor> Can do.
  1457. # [22:17] <rniwa> AryehGregor: I don't think we want to modify contents when the selection is on non-editable region
  1458. # [22:18] <rniwa> AryehGregor: even when it happens to include some editable region
  1459. # [22:18] <rniwa> AryehGregor: if webkit ever exhibits such a behavior, then it's a bug
  1460. # [22:18] <rniwa> not intentional
  1461. # [22:18] <AryehGregor> That's reasonable.
  1462. # [22:18] <AryehGregor> I think browsers vary somewhat, but at least some do behave that way.
  1463. # [22:18] <rniwa> AryehGregor: yeah
  1464. # [22:18] <rniwa> AryehGregor: I think most of us get some corner cases wrong
  1465. # [22:18] <rniwa> just like any other thing we implement :(
  1466. # [22:18] <rniwa> but I think none of us really intended to support editing multiple hosts at once
  1467. # [22:19] * Quits: hij1nx (~hij1nx@216.156.130.35.ptr.us.xo.net) (Ping timeout: 252 seconds)
  1468. # [22:19] <AryehGregor> I can't think of use-cases offhand.
  1469. # [22:19] * Quits: danbri (~danbri@cable-146-255-153-130.dynamic.telemach.ba) (Read error: Connection reset by peer)
  1470. # [22:21] <jgraham> AryehGregor: I think if yousearch for IDL checker or something, that's the tool that Hixie uses
  1471. # [22:21] * Quits: jcranmer (~jcranmer@ltsp2.csl.tjhsst.edu) (Ping timeout: 248 seconds)
  1472. # [22:22] <jgraham> http://www.w3.org/2009/07/webidl-check
  1473. # [22:22] <Ms2ger`> Is that the one in Haskell?
  1474. # [22:23] <rniwa> AryehGregor: neithe can I
  1475. # [22:23] <jgraham> Hard to tell, the code doesn't seem to exist
  1476. # [22:24] <AryehGregor> rniwa, what if non-editable content is nested inside editable content and the selection starts or ends in the nested non-editable content?
  1477. # [22:26] <jgraham> Ah, dom to the rescue
  1478. # [22:26] <jgraham> Seems to be witten in c
  1479. # [22:26] <rniwa> AryehGregor: then we shouldn't do anything either.
  1480. # [22:27] <AryehGregor> Hmm.
  1481. # [22:27] <AryehGregor> Okay.
  1482. # [22:27] <rniwa> AryehGregor: so no events should be fired
  1483. # [22:27] <AryehGregor> I'll say the command isn't enabled in that case.
  1484. # [22:27] <jgraham> http://hackage.haskell.org/package/webidl seems to be the haskell one
  1485. # [22:27] <AryehGregor> And return false from execCommand() before firing events if the command isn't supported or enabled.
  1486. # [22:27] <AryehGregor> For now.
  1487. # [22:28] <AryehGregor> So a command that's expected to possibly change the selected content should be enabled if the active range is not null, and its start and end node are both editable or editing hosts, and there is some editing host that's an inclusive ancestor of the start and end nodes.
  1488. # [22:30] * Quits: skylamer` (cgskylamer@78.90.213.55) (Read error: Connection reset by peer)
  1489. # [22:33] <ojan> AryehGregor, rniwa: what was wrong with my proposal to fire it on the root editing host?
  1490. # [22:33] <rniwa> ojan: that's okay
  1491. # [22:33] <rniwa> ojan: we were talking about the edge case
  1492. # [22:33] <rniwa> ojan: where we have multiple editing hosts to work with
  1493. # [22:33] <AryehGregor> Do we want the root editing host, or the deepst?
  1494. # [22:33] <AryehGregor> deepest?
  1495. # [22:33] <AryehGregor> Either one works.
  1496. # [22:33] <rniwa> ojan: but turned out that wasn't possible
  1497. # [22:33] <AryehGregor> Should these events bubble?
  1498. # [22:33] <rniwa> ojan: i.e. if you select multiple editing hosts programatically
  1499. # [22:33] <rniwa> ojan: but we don't allow that
  1500. # [22:34] * Joins: skylamer` (cgskylamer@78.90.213.55)
  1501. # [22:34] <rniwa> ojan: root makes sense
  1502. # [22:34] <AryehGregor> If they bubble, we want to fire it at the deepest, not the root.
  1503. # [22:34] <rniwa> AryehGregor: ^
  1504. # [22:34] <AryehGregor> That way it will bubble to the root anyway.
  1505. # [22:34] <rniwa> AryehGregor: wait... whatever the editing host is defined to be I guess
  1506. # [22:34] <ojan> AryehGregor: that makes sense to me...
  1507. # [22:34] <AryehGregor> Like: <div contenteditable>foo<span contenteditable>[bar]</span>baz</div>
  1508. # [22:34] <AryehGregor> Fire it at the span and let it bubble to the div.
  1509. # [22:34] <rniwa> AryehGregor: don't think that makese sense
  1510. # [22:35] <AryehGregor> Why not?
  1511. # [22:35] <rniwa> AryehGregor: because span isn't an editing host in that case
  1512. # [22:35] <ojan> AryehGregor: i think the way you should figure out the deepest editing host though is to find the deepest editing host that contains the entire selection
  1513. # [22:35] <rniwa> AryehGregor: since the entire div is editable
  1514. # [22:35] <AryehGregor> It is by my definition.
  1515. # [22:35] <AryehGregor> ojan, right.
  1516. # [22:35] <AryehGregor> That's what I'm doing.
  1517. # [22:35] * Joins: Nneon (~Nneon@cpc2-camd14-2-0-cust201.hari.cable.virginmedia.com)
  1518. # [22:35] <rniwa> <div contenteditable>foo<span contenteditable="false"><span contenteditable>[bar]</span>baz</span></div>
  1519. # [22:35] <AryehGregor> rniwa, well, you can add an extra <span contenteditable=false> if you want, but in my definitions the span is an editing host too.
  1520. # [22:35] <ojan> AryehGregor: so there's no issue of dealing with selections that cross editing hosts
  1521. # [22:35] <rniwa> AryehGregor: this is a better example
  1522. # [22:35] <rniwa> AryehGregor: in this case, you're right that we should be firing the event at span
  1523. # [22:35] <rniwa> AryehGregor: because that's the enclosing editing host of the selection
  1524. # [22:36] <AryehGregor> In the other case I'd also say fire at the span, but it makes no big difference.
  1525. # [22:36] <AryehGregor> Currently in my spec, <div contenteditable><span contenteditable>foo</span></div> isn't the same as <div contenteditable><span>foo</span></div>.
  1526. # [22:36] <AryehGregor> Although it's mostly the same.
  1527. # [22:36] <ojan> <div contentEditable><div id=this-is-the-right-editing-host contentEditable><span contentEditable>ba[r</span><span contentEditable>baz</span></div></div>
  1528. # [22:37] <AryehGregor> Where's the end of the selection?
  1529. # [22:37] <AryehGregor> In "baz"?
  1530. # [22:37] <AryehGregor> If so, right, I agree.
  1531. # [22:37] <ojan> woops...left it out :)
  1532. # [22:37] <ojan> yeah
  1533. # [22:37] <ojan> AryehGregor: ok...that makes sense to me then.
  1534. # [22:37] <AryehGregor> "Let affected editing host be the editing host that is an inclusive ancestor of the active range's start node and end node, and is not the ancestor of any editing host that is an inclusive ancestor of the active range's start node and end node."
  1535. # [22:38] <ojan> AryehGregor: yeah, i think that works
  1536. # [22:38] <ojan> AryehGregor: a little hard to parse that english...but i think it's correct
  1537. # [22:38] <ojan> and unambiguous
  1538. # [22:38] * AryehGregor considered "not the ancestor of any other such editing host", but decided to be more explicit
  1539. # [22:39] <AryehGregor> Okay, here's my WIP now: http://aryeh.name/tmp/editing/editing.html#methods-to-query-and-execute-commands
  1540. # [22:39] <AryehGregor> Subject to change without notice for now.
  1541. # [22:40] <AryehGregor> The interesting part is the execCommand() definition and the stuff before it, you can stop reading when you get to queryCommandEnabled().
  1542. # [22:42] <ojan> AryehGregor: that all looks good to me...except...
  1543. # [22:42] <ojan> AryehGregor: I think the spec needs to handle the case of JS modifying the DOM during the beforeInput event
  1544. # [22:43] <ojan> AryehGregor: e.g the affected editing host can change
  1545. # [22:43] * Joins: jcranmer (~jcranmer@ltsp2.csl.tjhsst.edu)
  1546. # [22:43] <AryehGregor> Hmm, right.
  1547. # [22:44] <AryehGregor> Maybe we need to bail out in that case.
  1548. # [22:44] <AryehGregor> Like if the beforeInput handler does getSelection().removeAllRanges(), that will break everything.
  1549. # [22:44] <ojan> AryehGregor: right, it depends
  1550. # [22:44] <AryehGregor> Perhaps just add another check for enabled after the beforeInput event.
  1551. # [22:44] <ojan> AryehGregor: so...as long as step 6 doesn't make any assumptions
  1552. # [22:44] <ojan> AryehGregor: and step 7 recomputed the affected editing host, i think we're fine
  1553. # [22:45] <AryehGregor> If there's still an affected editing host but it changes due to the beforeInput handler, do we want to fire the input event at the old one or the new one?
  1554. # [22:45] <ojan> AryehGregor: my intuition is the new one
  1555. # [22:45] <AryehGregor> I'm worried about step 7 recomputing the affected editing host, because there might be a bug in the action that makes the selection disappear or something.
  1556. # [22:45] <AryehGregor> I'd prefer to be robust against that.
  1557. # [22:45] <ojan> i see
  1558. # [22:46] <ojan> AryehGregor: you could recompute it as step 5b
  1559. # [22:47] <ojan> AryehGregor: sorry...step 5.4
  1560. # [22:47] <ojan> AryehGregor: i think that would address all the issues as long as each command action is robust against different DOM states, which is needs to be anyways
  1561. # [22:49] * Quits: pyrsmk (~pyrsmk@mau49-1-82-245-46-173.fbx.proxad.net) (Quit: tzing)
  1562. # [22:54] <AryehGregor> ojan, I was thinking I'd repeat the the "If command is not enabled" check as 5.4, then recompute affected editing host as 5.5, then use that.
  1563. # [22:54] <AryehGregor> So if beforeinput changes the affected editing host, that's fine, and the input event will be fired there.
  1564. # [22:55] <AryehGregor> But if it makes the command no longer enabled, the command won't execute.
  1565. # [22:55] * AryehGregor edits
  1566. # [22:55] * AryehGregor has to go in a few minutes
  1567. # [23:00] <rniwa> AryehGregor: I think your spec should change to treat <div contenteditable><span contenteditable>foo</span></div> identically to <div contenteditable><span>foo</span></div>
  1568. # [23:00] <AryehGregor> Okay, refresh and tell me if you like it.
  1569. # [23:00] <rniwa> AryehGregor: that's how browsers work as far as I know.
  1570. # [23:01] <AryehGregor> rniwa, browsers behave completely randomly whenever you nest anything with contenteditable other than inherit.
  1571. # [23:01] <AryehGregor> I had some use-case for treating it differently.
  1572. # [23:01] <rniwa> AryehGregor: sure we have lots of bugs
  1573. # [23:01] <AryehGregor> I mean, there's no use-case for treating it the same, because you could always just remove the contenteditable attribute.
  1574. # [23:01] <rniwa> AryehGregor: but I don't think we want to re-define the editing host that way
  1575. # [23:01] <rniwa> AryehGregor: but that's not how UAs behave today though
  1576. # [23:02] <AryehGregor> Most of this isn't how they behave today. :)
  1577. # [23:02] <rniwa> AryehGregor: contenteditable attribute is ignored if it's already in the editable region
  1578. # [23:02] <rniwa> AryehGregor: I mean... we can't implement this.
  1579. # [23:02] <AryehGregor> Anything with contenteditable=true will not have its attributes changed or be removed from its parent.
  1580. # [23:02] <rniwa> AryehGregor: there's no sane way for webkit to distinguish those two cases
  1581. # [23:02] <AryehGregor> Because really you just use a CSS property, right?
  1582. # [23:02] <rniwa> AryehGregor: right.
  1583. # [23:02] <AryehGregor> And the computed value isn't going to be different.
  1584. # [23:02] <AryehGregor> Fair enough.
  1585. # [23:02] <rniwa> AryehGregor: so I don't think we can do this.
  1586. # [23:02] <AryehGregor> Feel free to file a bug.
  1587. # [23:03] <AryehGregor> Although, IIRC there are other problems that you using a CSS property causes, right? Like you can't handle :read-write properly?
  1588. # [23:03] <rniwa> AryehGregor: right. but we can't get rid of the CSS property at the moment.
  1589. # [23:03] <rniwa> AryehGregor: we might be able to do eventually but not now
  1590. # [23:03] <AryehGregor> The behavior you suggest is probably more logical anyway, though, because you'd expect contenteditable=inherit to work the same as specifying contenteditable=true or false depending on what the parent is.
  1591. # [23:03] <AryehGregor> Well, you can't implement the spec right now in general, only eventually. :)
  1592. # [23:04] <rniwa> AryehGregor: right.
  1593. # [23:04] <AryehGregor> If you file a bug, I'll look at it later. It's a corner case anyway.
  1594. # [23:04] <rniwa> AryehGregor: okay.
  1595. # [23:04] <rniwa> AryehGregor: btw, you should rename "issue" to "bug"
  1596. # [23:04] <rniwa> AryehGregor: or put both
  1597. # [23:04] <AryehGregor> Yeah, maybe.
  1598. # [23:05] <AryehGregor> File a bug on that too. :)
  1599. # [23:05] <rniwa> I was looking for "bug" for a while :(
  1600. # [23:05] <AryehGregor> I have to go now.
  1601. # [23:05] <AryehGregor> :(
  1602. # [23:05] <rniwa> AryehGregor: k, ttyl
  1603. # [23:08] <rniwa> AryehGregor: filed https://www.w3.org/Bugs/Public/show_bug.cgi?id=16095
  1604. # [23:08] <AryehGregor> Thanks.
  1605. # [23:09] * Quits: sicking (~chatzilla@154-93.80-90.static-ip.oleane.fr) (Ping timeout: 244 seconds)
  1606. # [23:11] <AryehGregor> https://www.w3.org/Bugs/Public/show_bug.cgi?id=13118#c26
  1607. # [23:11] <AryehGregor> And I'm off.
  1608. # [23:12] <heycam> arv, I don't think DOMStringList can really be a plain JS array due to the lack of methods that annevk mentions, and also because then the object that has the DOMStringList property cannot "watch" it for changes
  1609. # [23:13] * Quits: davidb (~davidb@66.207.208.98) (Quit: davidb)
  1610. # [23:13] <heycam> arv, the spec that defines DOMStringList can use the [ArrayClass] extended attribute on the interface to make it inherit from Array.prototype, so that you can easily use Array methods though
  1611. # [23:13] * Quits: snowfox (~benschaaf@50-77-199-197-static.hfc.comcastbusiness.net) (Quit: snowfox)
  1612. # [23:13] <heycam> TabAtkins, did you get all your Web IDL questions earlier answered? (saw a bunch of highlights in my scrollback)
  1613. # [23:14] <TabAtkins> heycam: I ended with a question sent to public-script-coord. Answer there, please?
  1614. # [23:14] <heycam> TabAtkins, ok
  1615. # [23:14] * Quits: tomasf (~tom@2002:55e5:dbb7:0:5907:5038:8fee:4089) (Quit: tomasf)
  1616. # [23:14] * Joins: tomasf (~tom@2002:55e5:dbb7:0:64e9:4b92:936b:ff0d)
  1617. # [23:17] * heycam is now known as heycam|away
  1618. # [23:18] * Quits: skylamer` (cgskylamer@78.90.213.55) (Read error: Connection reset by peer)
  1619. # [23:18] <Hixie> AryehGregor: what jgraham said
  1620. # [23:18] * Quits: Nneon (~Nneon@cpc2-camd14-2-0-cust201.hari.cable.virginmedia.com) (Quit: Leaving...)
  1621. # [23:19] * Joins: svl (~me@89.128.148.64)
  1622. # [23:24] * Joins: Nneon (~Nneon@cpc2-camd14-2-0-cust201.hari.cable.virginmedia.com)
  1623. # [23:25] * Joins: necolas (~necolas@5e0c715f.bb.sky.com)
  1624. # [23:25] * Parts: Nneon (~Nneon@cpc2-camd14-2-0-cust201.hari.cable.virginmedia.com)
  1625. # [23:26] * Quits: timmywil (~timmywil@host-68-169-154-67.WISOLT2.epbfi.com) (Quit: Computer has gone to sleep.)
  1626. # [23:26] * Joins: timmywil (~timmywil@host-68-169-154-67.WISOLT2.epbfi.com)
  1627. # [23:28] * heycam|away is now known as heycam
  1628. # [23:28] * Quits: Maurice (copyman@5ED573FA.cm-7-6b.dynamic.ziggo.nl)
  1629. # [23:33] <annevk> fyi: I gave glenn write access to https://bitbucket.org/ms2ger/specification-data
  1630. # [23:36] * Quits: gwicke_ (~gabriel@212.255.32.250) (Quit: Bye!)
  1631. # [23:38] * Quits: MacTed (~Thud@63.119.36.36)
  1632. # [23:42] * Quits: ezoe (~ezoe@203-140-88-136f1.kyt1.eonet.ne.jp) (Ping timeout: 245 seconds)
  1633. # [23:49] * Joins: karlcow (~karl@nerval.la-grange.net)
  1634. # [23:52] * Quits: bga (~bga@freebnc.net) (Ping timeout: 244 seconds)
  1635. # [23:55] * Joins: bga (bga@fr6.freebnc.net)
  1636. # Session Close: Fri Feb 24 00:00:00 2012

The end :)