/irc-logs / freenode / #whatwg / 2015-03-30 / end

Options:

Previous day, Next day

  1. # Session Start: Mon Mar 30 00:00:00 2015
  2. # Session Ident: #whatwg
  3. # [00:01] * Quits: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net) (Remote host closed the connection)
  4. # [00:01] * Joins: smaug____ (~chatzilla@85-76-73-167-nat.elisa-mobile.fi)
  5. # [00:08] * Quits: Goplat (~goplat@reactos/developer/Goplat) (Remote host closed the connection)
  6. # [00:08] * Quits: encryptd_fractl (~encryptd_@c-98-240-134-35.hsd1.mn.comcast.net) (Remote host closed the connection)
  7. # [00:14] <Ms2ger> Prettified? Not that I know of
  8. # [00:16] <gsnedders> aleray: no
  9. # [00:18] <jgraham> Well I mean it's possible, but you have to write a custom serializer
  10. # [00:21] * Quits: jyasskin (~jyasskin@173-228-80-34.dsl.static.fusionbroadband.com) (Quit: My computer has gone to sleep. ZZZzzz…)
  11. # [00:23] <gsnedders> nah, should be doable with a treewalker filter, I think?
  12. # [00:23] <gsnedders> Depends on how pretty you want, really :)
  13. # [00:28] <aleray> gsnedders, jgraham Ms2ger typically something like this: http://jsbeautifier.org/
  14. # [00:31] * Quits: Ms2ger (~Ms2ger@60.219-242-81.adsl-dyn.isp.belgacom.be) (Quit: nn)
  15. # [00:37] * Quits: bnicholson (~bnicholso@c-24-130-60-241.hsd1.ca.comcast.net) (Quit: Leaving)
  16. # [00:38] * Quits: alrra (uid62345@gateway/web/irccloud.com/x-gmxssrabcwkelusz) (Quit: Connection closed for inactivity)
  17. # [00:44] * Joins: jyasskin (~jyasskin@173-228-80-34.dsl.static.fusionbroadband.com)
  18. # [00:56] <aleray> would be an interesting project. For now I will use the node.js package js-beautify (which seems to be develloping a python module for that)
  19. # [01:00] * Quits: jyasskin (~jyasskin@173-228-80-34.dsl.static.fusionbroadband.com) (Quit: My computer has gone to sleep. ZZZzzz…)
  20. # [01:01] * Quits: smaug____ (~chatzilla@85-76-73-167-nat.elisa-mobile.fi) (Ping timeout: 255 seconds)
  21. # [01:07] * Quits: KevinMarks__ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net) (Read error: Connection reset by peer)
  22. # [01:13] * Joins: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net)
  23. # [01:27] * Quits: deltab (~deltab@cpc2-smal2-0-0-cust22.19-1.cable.virginm.net) (Ping timeout: 244 seconds)
  24. # [01:35] * Joins: deltab (~deltab@cpc2-smal2-0-0-cust22.19-1.cable.virginm.net)
  25. # [01:42] * Krinkle|detached is now known as Krinkle
  26. # [01:47] * Joins: smaug____ (~chatzilla@62-78-246-79.bb.dnainternet.fi)
  27. # [01:49] * Joins: jernoble (~jernoble@162.217.73.171)
  28. # [01:54] * Joins: jyasskin (~jyasskin@173-228-80-34.dsl.static.fusionbroadband.com)
  29. # [01:56] * Quits: dshwang (~dshwang@134.134.137.73) (Remote host closed the connection)
  30. # [02:04] * Quits: aleray (~aleray@91.182.232.29) (Ping timeout: 248 seconds)
  31. # [02:21] * Quits: eric_carlson (~ericc@c-24-6-239-9.hsd1.ca.comcast.net) (Quit: eric_carlson)
  32. # [02:29] * Joins: capella-s3 (~yaaic@cpe-24-59-162-151.twcny.res.rr.com)
  33. # [02:40] * Quits: lilmonkey (~a@pdpc/supporter/professional/riven) (Ping timeout: 252 seconds)
  34. # [02:42] * Joins: jdaggett_ (~jdaggett@61-121-216-2.bitcat.net)
  35. # [02:45] * Joins: wartdev (~wartdev@109.255.148.96)
  36. # [02:48] * Quits: wartdev (~wartdev@109.255.148.96) (Client Quit)
  37. # [02:49] * Quits: caitp- (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com) (Ping timeout: 244 seconds)
  38. # [02:49] * Quits: smaug____ (~chatzilla@62-78-246-79.bb.dnainternet.fi) (Quit: ChatZilla 0.9.91.1 [Firefox 39.0a1/20150329030238])
  39. # [02:50] * Joins: smaug____ (~chatzilla@62-78-246-79.bb.dnainternet.fi)
  40. # [02:51] * Joins: caitp- (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com)
  41. # [02:52] * Quits: jernoble (~jernoble@162.217.73.171) (Quit: Computer has gone to sleep.)
  42. # [03:01] * Quits: smaug____ (~chatzilla@62-78-246-79.bb.dnainternet.fi) (Ping timeout: 255 seconds)
  43. # [03:03] * Joins: jernoble (~jernoble@162.217.73.171)
  44. # [03:13] * Quits: jernoble (~jernoble@162.217.73.171) (Quit: Computer has gone to sleep.)
  45. # [03:15] * Joins: kbx (~kbx@2401:fa00:4:1013:593c:ee82:21a9:bbf9)
  46. # [03:17] <MikeSmith> anybody know if there's a WebKit implementation bug open for datalist
  47. # [03:19] <MikeSmith> https://bugs.webkit.org/show_bug.cgi?id=27247
  48. # [03:19] <MikeSmith> It seems
  49. # [03:22] <MikeSmith> now myquestion is, what's blocking it
  50. # [03:30] * Joins: boogyman (~boogyman@pdpc/supporter/professional/boogyman)
  51. # [03:36] * Quits: Rastus_Vernon (Rastus_Ver@wikimedia/Rastus-Vernon) (Quit: bye)
  52. # [03:43] * heycam is now known as heycam|away
  53. # [03:55] * c74d is now known as Guest7872
  54. # [03:55] * Quits: Guest7872 (~c74d3a4eb@2002:4404:712c:0:76de:2bff:fed4:2766) (Read error: Connection reset by peer)
  55. # [03:58] * Joins: c74d (~c74d3a4eb@2002:4404:712c:0:76de:2bff:fed4:2766)
  56. # [04:02] * Quits: jyasskin (~jyasskin@173-228-80-34.dsl.static.fusionbroadband.com) (Quit: My computer has gone to sleep. ZZZzzz…)
  57. # [04:04] * Joins: Goplat (~goplat@reactos/developer/Goplat)
  58. # [04:12] * Joins: encryptd_fractl (~encryptd_@c-98-240-134-35.hsd1.mn.comcast.net)
  59. # [04:14] * Joins: KevinMarks__ (~yaaic@2607:fb90:518:1377:b7b4:c937:ce88:1145)
  60. # [04:14] * Quits: encryptd_fractl (~encryptd_@c-98-240-134-35.hsd1.mn.comcast.net) (Remote host closed the connection)
  61. # [04:14] * Quits: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net) (Ping timeout: 244 seconds)
  62. # [04:14] * Joins: encryptd_fractl (~encryptd_@c-98-240-134-35.hsd1.mn.comcast.net)
  63. # [04:18] * Joins: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net)
  64. # [04:19] * heycam|away is now known as heycam
  65. # [04:21] * Quits: KevinMarks__ (~yaaic@2607:fb90:518:1377:b7b4:c937:ce88:1145) (Ping timeout: 265 seconds)
  66. # [04:23] * Quits: encryptd_fractl (~encryptd_@c-98-240-134-35.hsd1.mn.comcast.net) (Remote host closed the connection)
  67. # [04:24] * Joins: encryptd_fractl (~encryptd_@c-98-240-134-35.hsd1.mn.comcast.net)
  68. # [04:28] * Quits: encryptd_fractl (~encryptd_@c-98-240-134-35.hsd1.mn.comcast.net) (Remote host closed the connection)
  69. # [04:37] * Joins: ohaibbq (~ohaibbq@98.248.65.213)
  70. # [04:43] * Joins: tripu (~tripu@2001:200:0:8805:4d2f:f601:ad6e:6d15)
  71. # [04:48] * Quits: newtron (~newtron@75-119-235-26.dsl.teksavvy.com) (Quit: Leaving...)
  72. # [04:49] * Joins: encryptd_fractl (~encryptd_@c-98-240-134-35.hsd1.mn.comcast.net)
  73. # [04:57] * Joins: ambv (~ambv@199.201.64.2)
  74. # [04:59] * Quits: ambv (~ambv@199.201.64.2) (Client Quit)
  75. # [05:05] * Quits: c74d (~c74d3a4eb@2002:4404:712c:0:76de:2bff:fed4:2766) (Read error: Connection reset by peer)
  76. # [05:09] * Joins: c74d (~c74d3a4eb@2002:4404:712c:0:76de:2bff:fed4:2766)
  77. # [05:16] * Quits: encryptd_fractl (~encryptd_@c-98-240-134-35.hsd1.mn.comcast.net) (Remote host closed the connection)
  78. # [05:53] * Joins: jernoble (~jernoble@162.217.73.171)
  79. # [05:57] * Quits: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net) (Read error: Connection reset by peer)
  80. # [05:58] * Joins: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net)
  81. # [06:01] * Quits: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net) (Read error: Connection reset by peer)
  82. # [06:02] * Joins: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net)
  83. # [06:02] * Quits: eBureau (~Bruno@181.164.77.172) (Quit: Textual IRC Client: www.textualapp.com)
  84. # [06:04] * Quits: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net) (Read error: Connection reset by peer)
  85. # [06:05] * Joins: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net)
  86. # [06:08] * Quits: jwalden (~waldo@c-68-60-39-249.hsd1.mi.comcast.net) (Quit: ChatZilla 0.9.87-8.1450hg.fc20 [XULRunner 32.0/20140902134853])
  87. # [06:23] * Quits: tripu (~tripu@2001:200:0:8805:4d2f:f601:ad6e:6d15) (Ping timeout: 265 seconds)
  88. # [06:25] * Joins: bholley (~bholley@c-24-130-121-49.hsd1.ca.comcast.net)
  89. # [06:28] * Quits: howitdo (~howitdo@unaffiliated/howitdo) (Ping timeout: 246 seconds)
  90. # [06:41] * Joins: howitdo (~howitdo@unaffiliated/howitdo)
  91. # [06:55] * Joins: tantek (~tantek@50-1-62-185.dsl.dynamic.fusionbroadband.com)
  92. # [06:57] * Joins: tripu (~tripu@2001:200:0:8805:4d2f:f601:ad6e:6d15)
  93. # [06:58] * Krinkle is now known as Krinkle|detached
  94. # [07:00] * Quits: caitp- (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com) (Ping timeout: 244 seconds)
  95. # [07:02] * Quits: xtrm0 (uid12574@gateway/web/irccloud.com/x-dmufsgucdsppwrgz) (Quit: Connection closed for inactivity)
  96. # [07:05] * Quits: robogoat (~robogoat@c-24-126-240-124.hsd1.ga.comcast.net) (Ping timeout: 246 seconds)
  97. # [07:10] * Joins: lilmonkey (~a@pdpc/supporter/professional/riven)
  98. # [07:13] * Joins: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net)
  99. # [07:18] * Quits: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net) (Ping timeout: 252 seconds)
  100. # [07:24] * Joins: ohaibbq_ (~ohaibbq@2601:9:a80:a8f:b83e:7bb1:252:3f05)
  101. # [07:24] * Quits: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
  102. # [07:25] * Quits: jernoble (~jernoble@162.217.73.171) (Quit: Textual IRC Client: www.textualapp.com)
  103. # [07:25] * Joins: bholley_ (~bholley@c-24-130-121-49.hsd1.ca.comcast.net)
  104. # [07:26] * Quits: bholley (~bholley@c-24-130-121-49.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
  105. # [07:26] * Quits: ohaibbq (~ohaibbq@98.248.65.213) (Ping timeout: 264 seconds)
  106. # [07:26] * Quits: malcolmva (~malcolmva@c-67-180-198-144.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
  107. # [07:27] * Quits: bholley_ (~bholley@c-24-130-121-49.hsd1.ca.comcast.net) (Remote host closed the connection)
  108. # [07:32] * Joins: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net)
  109. # [07:33] * Joins: malcolmva (~malcolmva@c-67-180-198-144.hsd1.ca.comcast.net)
  110. # [07:34] * Joins: ohaibbq (~ohaibbq@98.248.65.213)
  111. # [07:34] * Joins: jyasskin (~jyasskin@173-228-80-34.dsl.static.fusionbroadband.com)
  112. # [07:35] * heycam is now known as heycam|away
  113. # [07:36] * Joins: bholley (~bholley@c-24-130-121-49.hsd1.ca.comcast.net)
  114. # [07:36] * Quits: ohaibbq_ (~ohaibbq@2601:9:a80:a8f:b83e:7bb1:252:3f05) (Ping timeout: 265 seconds)
  115. # [07:41] * Quits: dbaron (~dbaron@70-36-140-197.dsl.dynamic.fusionbroadband.com) (Ping timeout: 256 seconds)
  116. # [07:48] * Joins: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net)
  117. # [07:56] * Joins: caitp- (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com)
  118. # [08:01] * Quits: caitp- (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com) (Ping timeout: 244 seconds)
  119. # [08:03] * Quits: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net) (Remote host closed the connection)
  120. # [08:03] * Joins: benjamingr (uid23465@gateway/web/irccloud.com/x-afqntjgmlywbxikm)
  121. # [08:05] * Joins: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net)
  122. # [08:09] * Joins: zcorpan (~zcorpan@c-5eeaaaa5-74736162.cust.telenor.se)
  123. # [08:10] * Quits: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net) (Ping timeout: 250 seconds)
  124. # [08:15] * Quits: zcorpan (~zcorpan@c-5eeaaaa5-74736162.cust.telenor.se) (Remote host closed the connection)
  125. # [08:19] * Joins: zcorpan (~zcorpan@c-5eeaaaa5-74736162.cust.telenor.se)
  126. # [08:20] * Quits: jyasskin (~jyasskin@173-228-80-34.dsl.static.fusionbroadband.com) (Quit: My computer has gone to sleep. ZZZzzz…)
  127. # [08:21] * Joins: brcweggs (~brcweggs@pool-71-177-224-47.lsanca.fios.verizon.net)
  128. # [08:30] * Quits: bholley (~bholley@c-24-130-121-49.hsd1.ca.comcast.net) (Quit: ZZZzzz…)
  129. # [08:31] * Quits: kbx (~kbx@2401:fa00:4:1013:593c:ee82:21a9:bbf9) (Ping timeout: 272 seconds)
  130. # [08:32] * Quits: ohaibbq (~ohaibbq@98.248.65.213) (Quit: Leaving...)
  131. # [08:40] * Joins: rc0mbs (~rcombs@rcombs.me)
  132. # [08:41] * Quits: rcombs (~rcombs@rcombs.me) (Read error: Connection reset by peer)
  133. # [08:41] * rc0mbs is now known as rcombs
  134. # [08:42] * Quits: tantek (~tantek@50-1-62-185.dsl.dynamic.fusionbroadband.com) (Quit: tantek)
  135. # [08:46] * Joins: kbx (~kbx@2401:fa00:4:1013:593c:ee82:21a9:bbf9)
  136. # [08:48] * Quits: Goplat (~goplat@reactos/developer/Goplat) (Remote host closed the connection)
  137. # [08:50] * Joins: markkes (~markkes@62.207.90.201)
  138. # [08:57] * Joins: caitp- (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com)
  139. # [08:58] * Joins: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net)
  140. # [09:01] * Quits: caitp- (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com) (Ping timeout: 244 seconds)
  141. # [09:05] * Quits: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net) (Read error: Connection reset by peer)
  142. # [09:05] * Joins: alrra (uid62345@gateway/web/irccloud.com/x-uxaqukfaurhvjtiw)
  143. # [09:06] * Joins: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net)
  144. # [09:08] * Joins: calvaris (~calvaris@fanzine.igalia.com)
  145. # [09:09] * Quits: brcweggs (~brcweggs@pool-71-177-224-47.lsanca.fios.verizon.net) (Quit: Lingo: www.lingoirc.com)
  146. # [09:16] * Joins: KevinMarks__ (~yaaic@2607:fb90:519:b69f:d68d:9798:a700:b0fd)
  147. # [09:19] <annevk> MikeSmith: probably just someone to work on it
  148. # [09:19] * Quits: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net) (Ping timeout: 272 seconds)
  149. # [09:23] <MikeSmith> annevk: yeah, seems so
  150. # [09:24] <MikeSmith> tkent points out that the interactive form validation stuff is in the same state
  151. # [09:40] * Quits: mpt (~mpt@canonical/mpt) (Remote host closed the connection)
  152. # [09:43] * Joins: zdobersek (~zan@46.166.188.215)
  153. # [09:43] * Joins: mpt (~mpt@2001:67c:1560:a003:49e7:478a:4675:2698)
  154. # [09:43] * Quits: mpt (~mpt@2001:67c:1560:a003:49e7:478a:4675:2698) (Changing host)
  155. # [09:43] * Joins: mpt (~mpt@canonical/mpt)
  156. # [09:45] * Quits: jungkees (uid24208@gateway/web/irccloud.com/x-gibdnkvvwkixroky) (Quit: Connection closed for inactivity)
  157. # [09:47] * Joins: aleray (~aleray@ip-83-134-64-121.dsl.scarlet.be)
  158. # [09:47] * Quits: zcorpan (~zcorpan@c-5eeaaaa5-74736162.cust.telenor.se) (Remote host closed the connection)
  159. # [09:57] * Joins: darobin (~darobin@159.180.228.142)
  160. # [09:57] * Joins: caitp- (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com)
  161. # [09:58] * Joins: zcorpan (~zcorpan@c-5eeaaaa5-74736162.cust.telenor.se)
  162. # [10:02] * Quits: caitp- (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com) (Ping timeout: 244 seconds)
  163. # [10:13] * Joins: Ms2ger (~Ms2ger@60.219-242-81.adsl-dyn.isp.belgacom.be)
  164. # [10:17] * Quits: zcorpan (~zcorpan@c-5eeaaaa5-74736162.cust.telenor.se) (Remote host closed the connection)
  165. # [10:21] * Joins: g4 (~g4@unaffiliated/gormer)
  166. # [10:24] * Quits: jdaggett_ (~jdaggett@61-121-216-2.bitcat.net) (Ping timeout: 244 seconds)
  167. # [10:25] * Quits: tripu (~tripu@2001:200:0:8805:4d2f:f601:ad6e:6d15) (Quit: Leaving)
  168. # [10:33] * Quits: kbx (~kbx@2401:fa00:4:1013:593c:ee82:21a9:bbf9) (Ping timeout: 272 seconds)
  169. # [10:34] * Joins: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net)
  170. # [10:38] * Quits: KevinMarks__ (~yaaic@2607:fb90:519:b69f:d68d:9798:a700:b0fd) (Ping timeout: 265 seconds)
  171. # [10:39] <JakeA> annevk: when is the right time to make response/request.body a ReadableStream in the fetch spec?
  172. # [10:43] * Quits: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net) (Read error: Connection reset by peer)
  173. # [10:45] * Joins: kbx (~kbx@2401:fa00:4:1013:593c:ee82:21a9:bbf9)
  174. # [10:46] * Joins: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net)
  175. # [10:54] * Joins: wilsonpage (~wilsonpag@217.111.161.212)
  176. # [10:54] * Joins: hasather (~hasather@cm-84.210.170.16.getinternet.no)
  177. # [10:58] * Joins: caitp- (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com)
  178. # [11:03] * Quits: caitp- (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com) (Ping timeout: 244 seconds)
  179. # [11:08] <annevk> JakeA: I was waiting for "tee" to be defined
  180. # [11:09] <annevk> JakeA: seems to be the only issue left: https://github.com/yutakahirano/fetch-with-streams/issues
  181. # [11:09] <JakeA> annevk: gotcha, cheers
  182. # [11:09] <annevk> JakeA: well, and also, I'm waiting for some confirmation that this design is okay
  183. # [11:10] <annevk> JakeA: I wish there was a second implementation
  184. # [11:13] * Joins: LJWatson (~chatzilla@cpc2-hawk13-2-0-cust240.aztw.cable.virginm.net)
  185. # [11:13] * Joins: espadrine (~tyl@LMontsouris-656-1-2-84.w80-12.abo.wanadoo.fr)
  186. # [11:16] <hsivonen> MikeSmith: If I tweak the TLS config for the validator, do you have a preference whether I should set properties procedurally in Main.java or via external files and command line switches managed by build.py?
  187. # [11:16] <hsivonen> I'm leaning towards Main.java, because the command line is pretty crazy already
  188. # [11:17] <MikeSmith> hsivonen: yeah, in Main.java sounds better to me as well
  189. # [11:17] <hsivonen> MikeSmith: OK. thanks
  190. # [11:17] <MikeSmith> hai
  191. # [11:29] * Quits: hasather (~hasather@cm-84.210.170.16.getinternet.no) (Remote host closed the connection)
  192. # [11:31] * Quits: LJWatson (~chatzilla@cpc2-hawk13-2-0-cust240.aztw.cable.virginm.net) (Quit: Carpe diem)
  193. # [11:31] * Joins: LJWatson (~chatzilla@cpc2-hawk13-2-0-cust240.aztw.cable.virginm.net)
  194. # [11:44] * Quits: jochen__ (jochen@nat/google/x-sllsholmclzzotfa) (Remote host closed the connection)
  195. # [11:50] * Quits: kbx (~kbx@2401:fa00:4:1013:593c:ee82:21a9:bbf9) (Ping timeout: 256 seconds)
  196. # [11:50] * Joins: smaug____ (~chatzilla@62-78-246-79.bb.dnainternet.fi)
  197. # [11:59] * Joins: caitp- (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com)
  198. # [11:59] * wilsonpage is now known as wilsonpage-away
  199. # [12:00] * Quits: wilsonpage-away (~wilsonpag@217.111.161.212) (Quit: My Mac has gone to sleep. ZZZzzz…)
  200. # [12:01] * Joins: dshwang (dshwang@nat/intel/x-bsymojqxsksdcuss)
  201. # [12:03] * Quits: caitp- (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com) (Ping timeout: 244 seconds)
  202. # [12:11] * Joins: wilsonpage (~wilsonpag@217.111.161.212)
  203. # [12:29] * Quits: boogyman (~boogyman@pdpc/supporter/professional/boogyman) (Ping timeout: 256 seconds)
  204. # [12:29] * Joins: boogyman (~boogyman@pdpc/supporter/professional/boogyman)
  205. # [12:30] <mounir> am I correct that per webidl, if I want a dictionary parameters with values depending on other parameters, i need to have a base dictionary in the method parameter type?
  206. # [12:32] * Quits: psy_ (~psy@103.6.159.177) (Ping timeout: 272 seconds)
  207. # [12:34] * Quits: calvaris (~calvaris@fanzine.igalia.com) (Quit: Ex-Chat)
  208. # [12:36] <Ms2ger> What
  209. # [12:36] <mounir> Ms2ger: I have navigator.permissions.query(name, options)
  210. # [12:36] <mounir> options will depend on "name"
  211. # [12:37] <Ms2ger> You mean like canvas.getContext()?
  212. # [12:37] <Ms2ger> I thought we decided that wasn't a pattern we wanted to repeat
  213. # [12:39] <mounir> Ms2ger: except that "name" is part of an enum
  214. # [12:39] <mounir> and it's only used to know a permission state, not to get a feature
  215. # [12:53] * Quits: aleray (~aleray@ip-83-134-64-121.dsl.scarlet.be) (Ping timeout: 250 seconds)
  216. # [12:57] * Quits: smaug____ (~chatzilla@62-78-246-79.bb.dnainternet.fi) (Ping timeout: 246 seconds)
  217. # [13:00] * Joins: caitp- (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com)
  218. # [13:02] * Joins: zcorpan (~zcorpan@ip-200.t2.se.opera.com)
  219. # [13:08] * Joins: calvaris (~calvaris@fanzine.igalia.com)
  220. # [13:11] * Joins: KevinMarks__ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net)
  221. # [13:14] * Quits: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net) (Ping timeout: 250 seconds)
  222. # [13:14] * Joins: jungkees (uid24208@gateway/web/irccloud.com/x-tjwpvhrcghxehyzd)
  223. # [13:23] * Joins: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net)
  224. # [13:25] * Quits: KevinMarks__ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
  225. # [13:41] * Joins: igoroliveira (uid20755@gateway/web/irccloud.com/x-ibaviziqjkokzeew)
  226. # [13:59] * wilsonpage is now known as wilsonpage-away
  227. # [14:05] * Joins: aleray (~aleray@109.134.116.118)
  228. # [14:08] * Quits: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net) (Remote host closed the connection)
  229. # [14:10] <JakeA> Domenic: let me know when you're free to drown in the lands of cancellable promises
  230. # [14:12] * Joins: xiinotulp (~plutoniix@node-10d8.pool-180-180.dynamic.totbb.net)
  231. # [14:15] * Quits: plutoniix (~plutoniix@node-kzs.pool-101-108.dynamic.totbb.net) (Ping timeout: 248 seconds)
  232. # [14:17] * wilsonpage-away is now known as wilsonpage
  233. # [14:24] * Joins: ehsan (~ehsan@ip-162-250-172-190.fibre.fibrestream.ca)
  234. # [14:26] * Quits: calvaris (~calvaris@fanzine.igalia.com) (Quit: Ex-Chat)
  235. # [14:32] * Joins: encryptd_fractl (~encryptd_@c-98-240-134-35.hsd1.mn.comcast.net)
  236. # [14:36] * Quits: encryptd_fractl (~encryptd_@c-98-240-134-35.hsd1.mn.comcast.net) (Remote host closed the connection)
  237. # [14:46] * Joins: newtron (~newtron@199.71.174.203)
  238. # [14:46] * wilsonpage is now known as wilsonpage-away
  239. # [14:47] * wilsonpage-away is now known as wilsonpage
  240. # [14:50] * Joins: scor (scor@drupal.org/user/52142/view)
  241. # [14:53] * Quits: wilsonpage (~wilsonpag@217.111.161.212) (Quit: Textual IRC Client: www.textualapp.com)
  242. # [14:53] <zcorpan> why is there no TouchEvent constructor?
  243. # [14:53] * Joins: wilsonpage (~wilsonpag@217.111.161.212)
  244. # [14:55] * Quits: scor (scor@drupal.org/user/52142/view) (Quit: scor)
  245. # [14:55] * Joins: scor (scor@nat/acquia/x-sqirewaowbeqacps)
  246. # [14:55] * Quits: scor (scor@nat/acquia/x-sqirewaowbeqacps) (Changing host)
  247. # [14:55] * Joins: scor (scor@drupal.org/user/52142/view)
  248. # [14:59] <wilsonpage> roc ping
  249. # [15:02] * Quits: ehsan (~ehsan@ip-162-250-172-190.fibre.fibrestream.ca) (Remote host closed the connection)
  250. # [15:03] * Joins: encryptd_fractl (~encryptd_@c-98-240-134-35.hsd1.mn.comcast.net)
  251. # [15:03] * Joins: ehsan (~ehsan@ip-162-250-172-190.fibre.fibrestream.ca)
  252. # [15:03] * Joins: xtrm0 (uid12574@gateway/web/irccloud.com/x-xyhitqlwjlgcebhz)
  253. # [15:04] <annevk> wanderview: hey, where are we at with https://github.com/yutakahirano/fetch-with-streams/issues/25 and streams in general?
  254. # [15:04] * xiinotulp is now known as plutoniix
  255. # [15:07] * Quits: ehsan (~ehsan@ip-162-250-172-190.fibre.fibrestream.ca) (Ping timeout: 250 seconds)
  256. # [15:14] * Joins: ehsan (~ehsan@ip-162-250-172-190.fibre.fibrestream.ca)
  257. # [15:15] * Joins: zenith_ (~zenith@199-7-157-3.eng.wind.ca)
  258. # [15:18] * Joins: zecho (~zecho@66-247-17-199.northern.mnscu.edu)
  259. # [15:21] * Quits: ehsan (~ehsan@ip-162-250-172-190.fibre.fibrestream.ca) (Remote host closed the connection)
  260. # [15:23] * Quits: caitp (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com) (Quit: Leaving)
  261. # [15:24] * Joins: caitp (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com)
  262. # [15:32] * Quits: caitp (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com) (Quit: Leaving)
  263. # [15:32] <annevk> zcorpan: do you know if Chromium has an origin associated with the global?
  264. # [15:32] * Joins: caitp (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com)
  265. # [15:34] * Quits: caitp (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com) (Client Quit)
  266. # [15:36] <zcorpan> annevk: don't know
  267. # [15:42] * Joins: mven (~textual@72.183.104.138)
  268. # [15:42] * Quits: mven (~textual@72.183.104.138) (Excess Flood)
  269. # [15:42] <wanderview> annevk: at this point I do not feel comfortable implementing that... I'm planning to talk to sicking in a couple weeks to try to iron out our differences
  270. # [15:45] <annevk> JakeA: given wanderview's statement and not hearing anything from Apple/Microsoft I'm inclined to hold off on integrating streams for now
  271. # [15:47] <JakeA> annevk: makes sense, wasn't aware of wanderview's concerns
  272. # [15:47] * Joins: bradleymeck (~bradleyme@rrcs-71-41-5-28.sw.biz.rr.com)
  273. # [15:47] <wanderview> annevk: I guess to clarify, I'm personally ok with implementing the fetch body stream bit... but I need to address sicking's concerns first... and it feels like we're further away from agreement than I thought before
  274. # [15:49] <wanderview> JakeA: not my personal concerns... we need some internal consensus before moving forward, though
  275. # [15:49] <wanderview> if that makes sense
  276. # [15:49] * Joins: ehynds (~ehynds@64.206.121.41)
  277. # [15:51] * Joins: ^esc_ (~esc-ape@178.165.131.93.wireless.dyn.drei.com)
  278. # [15:53] * Quits: ^esc (~esc-ape@178.115.129.79.wireless.dyn.drei.com) (Ping timeout: 264 seconds)
  279. # [15:56] * Joins: TallTed (~Thud@63.119.36.36)
  280. # [16:01] * Joins: ehsan (~ehsan@2001:450:1f:224:89e6:c7e0:a161:5691)
  281. # [16:05] * Joins: smaug____ (~chatzilla@62-78-246-79.bb.dnainternet.fi)
  282. # [16:18] * Joins: eric_carlson (~ericc@17.202.49.94)
  283. # [16:19] * Joins: dbaron (~dbaron@70-36-140-197.dsl.dynamic.fusionbroadband.com)
  284. # [16:23] <jgraham> Anyone know of a version of something like jsfiddle or the live dom viewer with support for multiple origins?
  285. # [16:26] * Joins: psy_ (~psy@103.6.159.177)
  286. # [16:33] * Quits: sarri (~sari@unaffiliated/sarri) (Ping timeout: 265 seconds)
  287. # [16:34] * Joins: sarri (~sari@unaffiliated/sarri)
  288. # [16:36] * Quits: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net) (Remote host closed the connection)
  289. # [16:36] * Quits: zcorpan (~zcorpan@ip-200.t2.se.opera.com) (Remote host closed the connection)
  290. # [16:39] * Quits: bradleymeck (~bradleyme@rrcs-71-41-5-28.sw.biz.rr.com) (Ping timeout: 256 seconds)
  291. # [16:42] * Quits: g4 (~g4@unaffiliated/gormer) (Quit: Leaving)
  292. # [16:44] * Joins: bnicholson (~bnicholso@c-24-130-60-241.hsd1.ca.comcast.net)
  293. # [16:45] * Quits: smaug____ (~chatzilla@62-78-246-79.bb.dnainternet.fi) (Ping timeout: 265 seconds)
  294. # [16:45] * Joins: bradleymeck (~bradleyme@rrcs-71-41-5-28.sw.biz.rr.com)
  295. # [16:47] * Quits: zenith_ (~zenith@199-7-157-3.eng.wind.ca) (Ping timeout: 245 seconds)
  296. # [16:52] * Joins: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net)
  297. # [16:57] * Quits: zdobersek (~zan@46.166.188.215) (Ping timeout: 264 seconds)
  298. # [16:58] * Joins: thinkxl (~thinkxl@74-95-237-22-Houston.hfc.comcastbusiness.net)
  299. # [16:59] * Joins: zenith_ (~zenith@142.150.23.90)
  300. # [17:00] * Quits: LJWatson (~chatzilla@cpc2-hawk13-2-0-cust240.aztw.cable.virginm.net) (Quit: Carpe diem)
  301. # [17:06] * Quits: wilsonpage (~wilsonpag@217.111.161.212) (Quit: Textual IRC Client: www.textualapp.com)
  302. # [17:10] * Joins: eBureau (~Bruno@181.164.77.172)
  303. # [17:10] * Joins: caitp (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com)
  304. # [17:12] * Quits: eric_carlson (~ericc@17.202.49.94) (Quit: eric_carlson)
  305. # [17:13] * Quits: annevk (~annevk@77-57-114-240.dclient.hispeed.ch) (Ping timeout: 255 seconds)
  306. # [17:24] * Quits: darobin (~darobin@159.180.228.142) (Remote host closed the connection)
  307. # [17:28] <Domenic> JakeA: let's do this
  308. # [17:29] <Domenic> wow that thread really got overrun
  309. # [17:29] * Quits: caitp (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com) (Quit: Leaving)
  310. # [17:29] <JakeA> Domenic: yeah. Where's the best place to do this, here?
  311. # [17:29] <Domenic> seems reasonable
  312. # [17:30] <Domenic> Unless you want VC or something for higher bandwidth
  313. # [17:31] * Joins: jernoble (~jernoble@166.170.40.243)
  314. # [17:32] <JakeA> We'll try here and if that isn't good enough (or annoys people here) we'll go VC
  315. # [17:32] <JakeA> Will be back in a min
  316. # [17:33] * Joins: jyasskin (~jyasskin@173-228-80-34.dsl.static.fusionbroadband.com)
  317. # [17:35] <JakeA> Domenic: so, I get the feeling you've been around the ref-counting idea before, and every other cancellable-promise proposal, and you don't think it's possible outside of a token-based system. Is that true?
  318. # [17:37] <Domenic> JakeA: I think ref-counting is tricky business with lots of edge cases and potential usability hazards. I'd want to see it worked out in excruciating detail before saying it's workable.
  319. # [17:38] <Domenic> I'm also sympathetic to the argument that it's philosophically "wrong", i.e. cancellation should be a property of the operation and not of the result.
  320. # [17:38] <Domenic> JakeA: as an example I'd wonder if Promise.prototype.then.call(cancelablePromise, f, r) increases the ref count, or even works at all.
  321. # [17:40] * Joins: eric_carlson (~ericc@17.202.49.94)
  322. # [17:40] <JakeA> Domenic: I think it would increase ref count. I initially thought otherwise, that the parent should only count cancellable children, but I think all children is more consistent
  323. # [17:40] <Domenic> JakeA: OK, so this would involve modifying the spec for Promise to be aware of CancelablePromise?
  324. # [17:41] * Joins: annevk (~annevk@213.55.184.211)
  325. # [17:43] <JakeA> Domenic: does a promise have a link to its children? (eg, a way to iterative over the and look at their state?)
  326. # [17:44] <Domenic> JakeA: only before it gets fulfilled or rejected; after that it aggressively cuts off references in order to avoid memory "leaks".
  327. # [17:44] * Quits: psy_ (~psy@103.6.159.177) (Read error: Connection reset by peer)
  328. # [17:45] <JakeA> Domenic: that seems ok then, since a settled promise cannot cancel. Promise.prototype.then.call(cancelablePromise, f, r) would still create a cancellable promise
  329. # [17:46] <Domenic> Hmm OK, so @@species is still CancelablePromise
  330. # [17:46] * Quits: zenith_ (~zenith@142.150.23.90) (Ping timeout: 255 seconds)
  331. # [17:46] <JakeA> Promise.resolve(cancellablePromise) will create a child plain Promise
  332. # [17:46] <Domenic> right
  333. # [17:46] <Domenic> So you can't use this to just cancel a fetch operation then, if the headers have already been received
  334. # [17:46] <Domenic> You need to do the chaining thing
  335. # [17:47] <Domenic> But you can't e.g. create a token, do some fetches (which shar ethe token), then when people navigate the page, cancel the token and thus destroy all chained processing
  336. # [17:47] <Domenic> instead you have to keep track of all child promises
  337. # [17:47] <Domenic> and cancel them, when people navigate the page
  338. # [17:47] <Domenic> ("navigate the page" = within a single-page app, not browser navigation)
  339. # [17:47] <JakeA> fetch(url).then(r => r.json()) - both fetch() and r.json() are cancellable
  340. # [17:47] <Domenic> right, but
  341. # [17:48] <Domenic> compare with:
  342. # [17:48] * Joins: bradleymeck_ (~bradleyme@rrcs-71-41-5-28.sw.biz.rr.com)
  343. # [17:48] <Domenic> var canceller = new Canceller(); var p1 = fetch(url1, { canceller }); var p2 = fetch(url2, { canceler }); doStuffWith(p1, p2); doMoreStuffWith(p1, p2); /* later */ canceller.cancel();
  344. # [17:48] * Quits: bradleymeck (~bradleyme@rrcs-71-41-5-28.sw.biz.rr.com) (Read error: Connection reset by peer)
  345. # [17:48] * bradleymeck_ is now known as bradleymeck
  346. # [17:49] * Joins: psy_ (~psy@103.6.159.177)
  347. # [17:49] <Domenic> tokens allow you, as the initiator of fetch, to decide when to stop
  348. # [17:49] <Domenic> instead of depending on your consumers to coordinate and say "oh, we'd better all cancel at the same time"
  349. # [17:50] <Domenic> I guess you could build that on top of promise.cancel() though
  350. # [17:50] <Domenic> well, but not for after-headers-have-arrived...
  351. # [17:50] <Domenic> unsure
  352. # [17:50] <JakeA> Domenic: var p1 = fetch(url); /* pass p1 to some other code which does whatever it wants */ p1.cancel(); /* kill the downward chain */
  353. # [17:51] <Domenic> right but you don't actually kill the downward chain because of ref-counting
  354. # [17:51] <Domenic> if "whatever it wants" includes a .then, you lose.
  355. # [17:52] <Domenic> I guess you could Promise.resolve() it first
  356. # [17:52] <Domenic> Can we turn things around for a bit? Why do you find the ref-counting solution more attractive? It seems less flexible and harder to reason about, to me.
  357. # [17:52] <JakeA> Domenic: ref-counting isn't used on the promise you call .cancel on, it stops straight away & cancels all children. Ref counting is used to decide if the parent should now be cancelled
  358. # [17:53] * Joins: hasather (~hasather@cm-84.210.170.16.getinternet.no)
  359. # [17:53] <Domenic> JakeA: oh interesting... so cancel flows in both directions
  360. # [17:53] <Domenic> down like rejection, but also up to parents
  361. # [17:53] <JakeA> If you call p.cancel() this promise will always cancel as long as it hasn't settled, as will all its children and so on. p's parent may cancel, if p was its only child or all its children have cancelled
  362. # [17:53] <JakeA> That's what I was thinking
  363. # [17:53] <Domenic> huh
  364. # [17:54] * Joins: smaug____ (~chatzilla@62-78-246-79.bb.dnainternet.fi)
  365. # [17:54] <Domenic> hmm ok back to the modifying-Promise-spec
  366. # [17:54] <Domenic> because there's no linkage from child to parent right now
  367. # [17:55] <Domenic> i guess it's only necessary for CancelablePromises
  368. # [17:55] <Domenic> I worry a bit about the implicit reference causing memory leaks
  369. # [17:55] <JakeA> Domenic: once the promise settles it can kill its parent link
  370. # [17:55] <JakeA> as it can no longer be cancelled
  371. # [17:55] <Domenic> var q = cancelablePromise.then(x).then(y).then(z).then(w) keeps 5 promises alive whereas for normal promises it'd be just 1
  372. # [17:56] <Domenic> hmm right ok so maybe it's the same then
  373. # [17:56] <Domenic> probably
  374. # [17:58] <JakeA> So when p.cancel() is called, it walks up the chain to find the highest promise that can be cancelled. That promise gets its cancel callback called, then the others get [rejected/hung/something else]
  375. # [17:58] <Domenic> the others?
  376. # [17:59] <JakeA> Sorry, down the chain from the one that gets cancelled
  377. # [17:59] <Domenic> right, ok
  378. # [17:59] <Domenic> so unwinding the stack a bit ... why do you like this design?
  379. # [18:01] <JakeA> Domenic: var p1 = fetch(url); var child1 = p1.then(r => consumeStream(r)); var child11 = child1.then(doSomethingElse); child11.cancel();
  380. # [18:02] <JakeA> Taking that example:
  381. # [18:03] <JakeA> If there's another p1.then(…), the child11 will appear cancelled, but the underlying fetch will not, so the branch is safe
  382. # [18:03] * Joins: iandevlin (~iandevlin@dslb-092-072-178-168.092.072.pools.vodafone-ip.de)
  383. # [18:03] <Domenic> yep, i got that
  384. # [18:04] <Domenic> not sure why you think it's a good experience though, in comparison to the initiator of the fetch being in control
  385. # [18:04] <JakeA> If there's no branch, then either the fetch or the stream read will be cancelled. If they've both finished, doSomethingElse will appear cancelled even if it carries on its work (because it returns a normal promise)
  386. # [18:04] <Domenic> what does "doSomethingElse will appear cancelled" mean?
  387. # [18:07] <JakeA> Domenic: its call to resolve/reject will not do anything, because the promise has been cancelled. What happens on promise cancel is still up for grabs, perhaps reject with undefined or an AbortError
  388. # [18:07] <Domenic> whose call to resolve/reject?! I thought doSomethingElse was just a function? Maybe write out its body...
  389. # [18:07] <JakeA> Sorry, yeah, that would be more helpful: .then(r => setTimeout(_ => r("Hello"), 1000))
  390. # [18:08] <JakeA> hang on
  391. # [18:08] <JakeA> that's wrong
  392. # [18:08] <Domenic> thta's... not how .then works...
  393. # [18:08] * Quits: thinkxl (~thinkxl@74-95-237-22-Houston.hfc.comcastbusiness.net) (Ping timeout: 256 seconds)
  394. # [18:08] <JakeA> yeah sorry, brain break
  395. # [18:08] <Domenic> np
  396. # [18:08] <JakeA> .then(_ => new Promise(r => setTimeout(_ => r("Hello"), 1000)))
  397. # [18:08] * Joins: thinkxl (~thinkxl@74-95-237-22-Houston.hfc.comcastbusiness.net)
  398. # [18:09] <JakeA> Basically, doSomethingElse resolves in 1 second with "Hello"
  399. # [18:10] * Joins: frivoal (~frivoal@cm-84.208.175.177.getinternet.no)
  400. # [18:10] * Quits: hasather (~hasather@cm-84.210.170.16.getinternet.no) (Remote host closed the connection)
  401. # [18:10] <frivoal> Does anyone remember who was involved in thinking / making -o-double-rainbow() ?
  402. # [18:10] * JakeA thinks about the token solution some more
  403. # [18:11] <annevk> frivoal: I think I suggested that to whoever was implementing gradients at the time
  404. # [18:11] <Domenic> OK, so I think what you meant was "doSomethingElse isn't even called"
  405. # [18:12] <frivoal> annevk: thanks, I suspected you might be the one to thank for that.
  406. # [18:12] <JakeA> Domenic: if it's called, but the second hasn't passed, .cancel() would still "work" in that the promise won't resolve with "Hello"
  407. # [18:12] <JakeA> r("Hello") will be called, but since the promise is in a cancelled state (which could just mean rejected) it's ignored
  408. # [18:12] <Domenic> oh hmm that's weird
  409. # [18:13] <Domenic> so child11 is resolved already but you un-resolve it when you cancel
  410. # [18:13] <Domenic> or change its resolution or something
  411. # [18:13] <frivoal> annevk: Would I be wrong to attribute this work of art to Bruce Lawson: http://media.opera.com/media/press/2011/unicorn/ ?
  412. # [18:13] <Domenic> (child1 is pending-but-resolved in your example)
  413. # [18:13] <JakeA> Domenic: that doesn't sound right…
  414. # [18:14] <Domenic> JakeA: child11 is pending, since doSomethingElse returns a promise that is still pending-for-a-second. But it's resolved to that pending-for-a-second promise.
  415. # [18:14] * Joins: ap (~ap@17.202.44.214)
  416. # [18:14] <Domenic> normally that would mean it's locked in to follow that pending-for-a-second promise without fail.
  417. # [18:15] <annevk> frivoal: not sure
  418. # [18:15] * Joins: Maurice` (copyman@unaffiliated/maurice)
  419. # [18:15] <annevk> frivoal: was it Leif Arne who should get the credit?
  420. # [18:15] * annevk forgot :-(
  421. # [18:16] <frivoal> annevk: possibly
  422. # [18:16] <JakeA> Domenic: child11 is pending, calling .cancel() makes it (let's say) reject, the timeout hits, resolve is called, it's ignored
  423. # [18:17] * Quits: jernoble (~jernoble@166.170.40.243) (Quit: Computer has gone to sleep.)
  424. # [18:17] <Domenic> JakeA: let's break this down. `var p = new Promise(r => setTimeout(() => r("Hello"), 1000))`
  425. # [18:18] <Domenic> function doSomethingElse() { return p; }
  426. # [18:18] <Domenic> var child11 = child1.then(doSomethingElse)
  427. # [18:18] <Domenic> This immediately does PromiseResolve(child11, p)
  428. # [18:18] <wanderview> if we make fetch() return an extended promise with a fetch-specific cancel... can we later switch to a CancellablePromise once we see that it works out?
  429. # [18:18] <frivoal> annevk: Yep, it seems to be Leif Arne: https://twitter.com/rchl2k/status/135129843170947072
  430. # [18:18] <Domenic> You cannot reject a resolved promise
  431. # [18:19] <annevk> frivoal: nice find
  432. # [18:19] <Domenic> JakeA: similar example: var q = new Promise((res, rej) => res(p); rej(new Error("foo"))); q will be pending for 1 second then fulfilled with "Hello"
  433. # [18:20] <annevk> wanderview: that's the terminate() proposal, and yeah, I think there's agreement that can work, though there's still the open question there whether to do forever-pending or reject or allow for both
  434. # [18:21] <JakeA> Domenic: hmm, yeah, I see *thinks*
  435. # [18:21] * Joins: darobin (~darobin@mtl93-18-78-208-93-24.fbx.proxad.net)
  436. # [18:21] <wanderview> annevk: I guess the problem with that is it just breaks the Promise API niceness.. you can't really chain off the fetch() any more
  437. # [18:22] <annevk> wanderview: yup, though if you want to do complicated things you can't really chain anyway I think
  438. # [18:22] <Domenic> I'm still not sure keeping terminate-ability through a chain is desirable
  439. # [18:22] <Domenic> i kind of feel it should only belong to the initiator
  440. # [18:23] <Domenic> that's a key difference here I think
  441. # [18:23] <Domenic> I could be convinced otherwise but that's my conservative position
  442. # [18:23] <wanderview> annevk: I wonder if we could so something like fetch(req).control(function(controller) { .. }).then(function (response) { });
  443. # [18:23] <wanderview> and controller.cancel()
  444. # [18:24] <annevk> wanderview: why .control?
  445. # [18:24] * Quits: encryptd_fractl (~encryptd_@c-98-240-134-35.hsd1.mn.comcast.net) (Remote host closed the connection)
  446. # [18:24] <wanderview> annevk: the idea being fetch() returns an extended promise with a .control()... letting you get a handle to the controller for later use... because the decision to cancel will be async most likely
  447. # [18:25] <annevk> Domenic: if there was an established API pattern that would be an easy sell
  448. # [18:25] <wanderview> and .control() returns a Promise for the response
  449. # [18:25] <annevk> wanderview: why not just make control an argument to fetch()?
  450. # [18:25] <wanderview> annevk: that works for me too
  451. # [18:25] * Joins: zcorpan (~zcorpan@2a00:801:e0:30:bd35:f8ae:6af2:99c2)
  452. # [18:26] <wanderview> pretty sure we've discussed this before... I think I just like that approach from a "how I would want to use it in code" point of view
  453. # [18:26] <wanderview> annevk: I guess .control() seems slightly nicer than a fetch arg because then it fits into the chaining pattern nicely
  454. # [18:26] * wanderview shrugs
  455. # [18:27] <annevk> fetch(url, control: c => c.abort()) just seems rather ugly
  456. # [18:27] <annevk> fetch(url).control(c => c.abort()) doesn't seem too different
  457. # [18:27] * Joins: encryptd_fractl (~encryptd_@c-98-240-134-35.hsd1.mn.comcast.net)
  458. # [18:29] <wanderview> annevk: it would really be fetch(url).control(c => savedControl = c).then(response => ...);
  459. # [18:29] * Quits: encryptd_fractl (~encryptd_@c-98-240-134-35.hsd1.mn.comcast.net) (Remote host closed the connection)
  460. # [18:29] <Domenic> I still like `var c = new FetchController()`; fetch(url, { controller })` or similar.
  461. # [18:30] <wanderview> Domenic: thats nice
  462. # [18:30] <Domenic> the upside being you can hand out the same controller to multiple fetches
  463. # [18:30] * Quits: iandevlin (~iandevlin@dslb-092-072-178-168.092.072.pools.vodafone-ip.de) (Quit: Nettalk6 - www.ntalk.de)
  464. # [18:32] <wanderview> Domenic: yea... and if we make individual Promises cancellable... then the page has to rebuild a controller for themself by aggregating a promise for each fetch() in the place where the "cancel now" event happens
  465. # [18:33] * Joins: zenith_ (~zenith@142.150.23.90)
  466. # [18:33] <Domenic> wanderview: right, that was kind of my worry... although you could probably build a wrapper that implements either on top of the other
  467. # [18:33] * Quits: dbaron (~dbaron@70-36-140-197.dsl.dynamic.fusionbroadband.com) (Quit: 8403864 bytes have been tenured, next gc will be global.)
  468. # [18:35] <wanderview> I just can't think of a use case where you want to stick .cancel() at the end of a Promise chain... and Promise chain syntax does not lend itself to getting a reference to the promise itself, except at the end of the chain
  469. # [18:36] * Quits: bradleymeck (~bradleyme@rrcs-71-41-5-28.sw.biz.rr.com) (Read error: Connection reset by peer)
  470. # [18:36] * Quits: frivoal (~frivoal@cm-84.208.175.177.getinternet.no) (Remote host closed the connection)
  471. # [18:36] * Joins: frivoal (~frivoal@cm-84.208.175.177.getinternet.no)
  472. # [18:36] <Domenic> Well, I dunno, it's fairly believable for non-branching chains
  473. # [18:36] * Quits: frivoal (~frivoal@cm-84.208.175.177.getinternet.no) (Remote host closed the connection)
  474. # [18:37] * Joins: bradleymeck (~bradleyme@rrcs-71-41-5-28.sw.biz.rr.com)
  475. # [18:37] <JakeA> wanderview: fetch(url).then(r => r.json())
  476. # [18:38] <Domenic> var result = fetch(url).then(r => r.json()).then(parseJSONIntoModel).then(updateUI); router.on("hashchange", () => result.cancel())
  477. # [18:38] <JakeA> right
  478. # [18:38] <Domenic> not much different from `var canceller = new Canceller(); fetch(url, { canceller }).then(...).then(...).then(...); router.on("hashchange", () => canceller.cancel())` admittedly.
  479. # [18:39] <wanderview> ok
  480. # [18:39] <Domenic> but less work if the router.on(...) code is located somewhere else; becomes an issue of passing it a { promise, canceller } pair vs. a promise by itself
  481. # [18:39] <Domenic> unsure though, this example is kind of unrealistic
  482. # [18:39] <wanderview> Domenic: I guess the Canceller example is more clear it only effects fetch()... the first example suggests you can cancel parseJSONIntoModel, etc
  483. # [18:40] <Domenic> wanderview: ah yeah hmm i guess that's actually a downside though...
  484. # [18:40] <JakeA> Domenic: so, going back to what you said earlier, var p = fetch(url).then(r => r.json()) - calling .cancel() wouldn't work if we had headers, since the .then is immediately resolved with the r.json() promise.
  485. # [18:40] * Joins: zdobersek (~zan@gateway/vpn/privateinternetaccess/zdobersek)
  486. # [18:40] <wanderview> Domenic: downside for the controller approach? how so?
  487. # [18:40] <Domenic> that's a pretty bad downside really
  488. # [18:41] <Domenic> wanderview: because you want an easy way to stop parsing or updating the UI too
  489. # [18:41] <wanderview> Domenic: they may not be cancellable, though... for example if the parse is synchronous (which is probably is)
  490. # [18:42] <Domenic> wanderview: so it becomes fetch(url, { canceller }).then(r => r.json({ canceller })).then(j => parseJSONIntoModel(j, { canceller })).then(m => updateUI(m, { canceller }))
  491. # [18:42] <Domenic> wanderview: yeah true
  492. # [18:43] * Joins: bholley (~bholley@c-24-130-121-49.hsd1.ca.comcast.net)
  493. # [18:43] <Domenic> JakeA: hmm yes that's true -_-
  494. # [18:43] * Joins: jwalden (~waldo@c-68-60-39-249.hsd1.mi.comcast.net)
  495. # [18:44] <JakeA> Domenic: So the resolved value needs to be treated as a chain too
  496. # [18:44] <wanderview> Domenic: if you want a cancellable parse, use a Stream? :-)
  497. # [18:44] <Domenic> wanderview: haha true.
  498. # [18:44] * Joins: encryptd_fractl (~encryptd_@204.73.55.132)
  499. # [18:44] <Domenic> JakeA: not sure what the implications of that are.
  500. # [18:45] <JakeA> Domenic: me neither
  501. # [18:45] <JakeA> I feel we're getting closer to fetch() returning a FetchPromise with an abort() methods with a @@species of Promise
  502. # [18:46] <Domenic> the terminate() solution, you mean?
  503. # [18:46] <JakeA> yeah, terminate()
  504. # [18:46] <Domenic> why is that better than canceller?
  505. # [18:47] <JakeA> Canceller seems ugly to me, maybe I'll get used to it
  506. # [18:47] <Domenic> the weight of minting a new promise subclass, especially one of such limited use, makes me hesitant.
  507. # [18:47] <JakeA> I'll probably get used to it
  508. # [18:47] <Domenic> if we had more methods to put on it then i'd feel better
  509. # [18:47] <Domenic> e.g. http2 priority-adjuster?
  510. # [18:48] <wanderview> how do cancel response.json?
  511. # [18:48] <wanderview> response.body.cancel(), doesn't work right?
  512. # [18:48] <wanderview> Domenic: JakeA: ^^^
  513. # [18:48] <JakeA> wanderview: it would have to take a canceller or similar
  514. # [18:49] <Domenic> yeah, that
  515. # [18:49] * Quits: scor (scor@drupal.org/user/52142/view) (Quit: scor)
  516. # [18:49] <wanderview> JakeA: or have response.cancel()
  517. # [18:49] <Domenic> do we really want to give that authority to anyone though?
  518. # [18:50] <wanderview> Domenic: how does one get a handle to the same Response object without being the same code that sets up the cancel?
  519. # [18:50] * Quits: bholley (~bholley@c-24-130-121-49.hsd1.ca.comcast.net) (Quit: ZZZzzz…)
  520. # [18:50] <Domenic> i dunno the ergonomics argument is making me want to reconsider JakeA's ideas... if we can make them work somehow...
  521. # [18:50] <Domenic> wanderview: doSomethingWith(response) :)
  522. # [18:50] <Domenic> wanderview: it's a matter of, when you give someone a response, are you also giving them ability to blow up the response? or just to read it (if it's not locked)?
  523. # [18:51] * Quits: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net) (Remote host closed the connection)
  524. # [18:51] <Domenic> i think we made res.headers immutable for similar reasons?
  525. # [18:51] <wanderview> Domenic: if you don't trust the code you can call doSomethingWith(response.clone())
  526. # [18:52] <Domenic> wanderview: true true.
  527. # [18:52] <wanderview> Domenic: because they could drain the body and "blow up" the Response as well
  528. # [18:52] <Domenic> wanderview: not if it's locked though.
  529. # [18:52] <wanderview> Domenic: I find the lock blocking cancel very unexpected, to be honest
  530. # [18:53] <JakeA> Domenic: https://github.com/slightlyoff/ServiceWorker/issues/592#issuecomment-68853209 - here I say "If the user hits X (or even closes the tab) while /whatever.json is fetching, I don't think we can simply cancel the request", this is because the tab isn't consuming the stream at this point. With a chaining cancellable promise, this is no longer an issue
  531. # [18:53] <Domenic> :-S
  532. # [18:53] <JakeA> This is a case where you want the party you give the promise to to be able to cancel, rather than the initiator
  533. # [18:53] <wanderview> Domenic: simultaneous reads is good to block with a lock... but having some async thing cancel a stream while another bit of code is reading seems pretty commonplace to me
  534. # [18:53] <Domenic> JakeA: is "we" the browser or author code in that sentence?
  535. # [18:54] <JakeA> Domenic: the browser
  536. # [18:54] <Domenic> wanderview: this is kind of just a principle of least authority thing I think
  537. # [18:54] <Domenic> JakeA: I think the stream becomes errored if it's prematurely terminated.
  538. # [18:54] <annevk> Domenic: we'd use a promise-subclass for other things too
  539. # [18:54] <annevk> Domenic: e.g. postMessage() with the SW
  540. # [18:54] <wanderview> Domenic: this forces Response.json(canceller) as the only solution then
  541. # [18:54] <annevk> Domenic: or changing priority of the fetch
  542. # [18:55] <wanderview> which is fine I guess
  543. # [18:55] <Domenic> wanderview: right, or a CancelablePromise solution that I've been arguing is complicated.
  544. # [18:55] * Joins: LJWatson (~chatzilla@cpc2-hawk13-2-0-cust240.aztw.cable.virginm.net)
  545. # [18:55] <wanderview> I guess, keep in mind that everything with the body stream effects Cache produced Responses as well... but canceling "before the headers" is fetch only
  546. # [18:56] <wanderview> unless Cache grows something similar to fetch
  547. # [18:56] * Quits: igoroliveira (uid20755@gateway/web/irccloud.com/x-ibaviziqjkokzeew) (Quit: Connection closed for inactivity)
  548. # [18:56] * wanderview doesn't want to allow canceling Cache.match(), etc.
  549. # [18:56] <annevk> Domenic: the only reason headers is immutable at the moment is because that's the easiest
  550. # [18:56] <annevk> Domenic: but we'll make it mutable together with request's headers
  551. # [18:56] * Joins: scor (scor@nat/acquia/x-szbilmafvouilvkw)
  552. # [18:56] * Quits: scor (scor@nat/acquia/x-szbilmafvouilvkw) (Changing host)
  553. # [18:56] * Joins: scor (scor@drupal.org/user/52142/view)
  554. # [18:56] <Domenic> annevk: hmm ok
  555. # [18:56] <annevk> Domenic: just needs some careful consideration of all the implications
  556. # [18:57] <wanderview> I wonder how much pain here is due to separating "we have headers" event from the body stream its parsed from
  557. # [18:57] <wanderview> ^body stream^data stream
  558. # [18:57] <Domenic> JakeA: now I'm curious if you can make CancelablePromise work generally. I think you need: 1) compelling ergonomics examples vs. canceller; 2) work through the semantics and edge cases in detail.
  559. # [18:58] <Domenic> JakeA: I can try to help with 2)...
  560. # [18:58] <annevk> wanderview: having headers also means no more redirects, it's a rather important milestone
  561. # [18:58] <wanderview> annevk: yes... but treating them as separate cancelable things when really there is one underlying stream supplying both
  562. # [18:58] <annevk> Domenic: I think the case for CancelablePromise is indeed primarily ergonomics
  563. # [18:58] <Domenic> wanderview: annevk: yeah, the have-headers milestone being separable is quite nice in practice, I think. Certainly can be a leaky abstraction in some cases though.
  564. # [18:59] <annevk> Domenic: having to construct a controller is awkward
  565. # [18:59] <Domenic> annevk: to me that's not the awkward part, the awkward part is lack of propagation
  566. # [18:59] <annevk> Domenic: when would it be a leaky abstraction?
  567. # [18:59] <annevk> Domenic: this is exactly as atomic as implementations are
  568. # [19:00] <Domenic> annevk: well it's leaky here because an implementation could cancel the underlying TCP stream at any point, but here we have this two-stage thing => potentially two cancel mechanisms
  569. # [19:01] <Domenic> lunchtime...
  570. # [19:01] <wanderview> I guess it does fit Cache better.... load meta-data separate from body data stream
  571. # [19:03] <JakeA> Domenic: I'll do as much of 1 as I can tomorrow
  572. # [19:05] * Joins: bholley (~bholley@c-24-130-121-49.hsd1.ca.comcast.net)
  573. # [19:05] * Quits: aleray (~aleray@109.134.116.118) (Ping timeout: 244 seconds)
  574. # [19:05] * Joins: jernoble (~jernoble@17.202.49.155)
  575. # [19:05] * Joins: zenith__ (~zenith@142.150.23.90)
  576. # [19:08] * Quits: zenith_ (~zenith@142.150.23.90) (Ping timeout: 272 seconds)
  577. # [19:08] * Joins: wilsonpage (~wilsonpag@217.111.161.212)
  578. # [19:13] * Joins: dbaron (~dbaron@2620:101:80fb:224:6120:58ca:192e:4635)
  579. # [19:16] * Quits: darobin (~darobin@mtl93-18-78-208-93-24.fbx.proxad.net) (Remote host closed the connection)
  580. # [19:16] * Quits: dshwang (dshwang@nat/intel/x-bsymojqxsksdcuss) (Remote host closed the connection)
  581. # [19:17] * Joins: dshwang (~dshwang@134.134.137.73)
  582. # [19:18] * Joins: aleray (~aleray@ip-83-101-52-107.customer.schedom-europe.net)
  583. # [19:24] * Quits: scor (scor@drupal.org/user/52142/view) (Quit: scor)
  584. # [19:26] * Quits: LJWatson (~chatzilla@cpc2-hawk13-2-0-cust240.aztw.cable.virginm.net) (Quit: Carpe diem)
  585. # [19:28] * Joins: scor (scor@drupal.org/user/52142/view)
  586. # [19:28] * Joins: robogoat (~robogoat@c-24-126-240-124.hsd1.ga.comcast.net)
  587. # [19:29] * Quits: halfline (rstrode@nat/redhat/x-clvncclfpektkpjh) (Quit: ZNC - http://znc.in)
  588. # [19:29] * Joins: hasather (~hasather@cm-84.210.170.16.getinternet.no)
  589. # [19:29] * Joins: halfline (rstrode@nat/redhat/x-heatlytmgxruejte)
  590. # [19:29] * Quits: zenith__ (~zenith@142.150.23.90) (Ping timeout: 256 seconds)
  591. # [19:30] * Quits: halfline (rstrode@nat/redhat/x-heatlytmgxruejte) (Remote host closed the connection)
  592. # [19:32] * Quits: espadrine (~tyl@LMontsouris-656-1-2-84.w80-12.abo.wanadoo.fr) (Ping timeout: 265 seconds)
  593. # [19:33] * Joins: halfline (rstrode@nat/redhat/x-uyofxhuwhqyzrbee)
  594. # [19:37] * Joins: frivoal (~frivoal@cm-84.208.175.177.getinternet.no)
  595. # [19:38] * Quits: bradleymeck (~bradleyme@rrcs-71-41-5-28.sw.biz.rr.com) (Read error: Connection reset by peer)
  596. # [19:38] * Joins: bradleymeck (~bradleyme@rrcs-71-41-5-28.sw.biz.rr.com)
  597. # [19:39] * Joins: benwerd (~benwerd@199.87.84.238)
  598. # [19:40] * Quits: jernoble (~jernoble@17.202.49.155) (Quit: Textual IRC Client: www.textualapp.com)
  599. # [19:40] <JakeA> Domenic: has there been any further discussion on window.onerror alternatives for promises? onpromiseerror and onpromiseerrorhandled perhaps?
  600. # [19:41] <JakeA> Where the former would fire if a promise rejects without a reject handler, and the latter fires if it's later handled
  601. # [19:43] * Quits: frivoal (~frivoal@cm-84.208.175.177.getinternet.no) (Ping timeout: 272 seconds)
  602. # [19:43] <JakeA> wanderview: ohh, how are you cancelling those fetching in Gecko (from the promises thread)
  603. # [19:45] <wanderview> JakeA: all network requests in gecko have an associated "LoadGroup"... right now we call LoadGroup.cancel() when the ServiceWorker is shutdown
  604. # [19:45] <Domenic> JakeA: people liked it, nobody said "yeah let's implement it"
  605. # [19:45] <wanderview> JakeA: non-SW cases share the LoadGroup with the document and the LoadGroup.cancel() is triggered by navigation, etc
  606. # [19:45] <wanderview> JakeA: we also have a way of cancelling things when the worker thread is shutting down
  607. # [19:45] <JakeA> wanderview: ahh yeah, but that doesn't work if the SW stays alive, eg if the page is navigated within scope it's likely to stay alive
  608. # [19:45] <wanderview> JakeA: its poorly defined in the spec, I think :-(
  609. # [19:46] <wanderview> JakeA: for example... does the SW stay alive until respondWith() resolves a Response?
  610. # [19:46] <wanderview> or until the underlying Response body completes?
  611. # [19:46] <wanderview> what if there is an outstanding Cache.put() in operation? do we cancel that?
  612. # [19:46] <JakeA> wanderview: receives a response should be enough. We may need a fetchEvent.waitUntil for further tasks
  613. # [19:46] <JakeA> yeah, exactly
  614. # [19:47] <wanderview> JakeA: right... I think we may actually have to keep the worker thread alive until body is fully copied in... but that could just be our implementation
  615. # [19:47] <wanderview> right now we don't explicitly do that... probably a bug
  616. # [19:48] <wanderview> JakeA: I guess my point, though... is the browser can cancel this stuff regardless of what script does (without script using something like waitUntil() )
  617. # [19:48] <JakeA> wanderview: welllll it's not really a bug. The browser is allowed to keep the SW alive as long as it wants
  618. # [19:49] <JakeA> wanderview: those requests can only be cancelled if the promise has resolved, or if the browser can shut the SW down
  619. # [19:49] <wanderview> JakeA: I think we may stop the SW too soon in gecko right now
  620. # [19:50] <wanderview> JakeA: I haven't looked, but if navigation caused the FetchEvent to no longer be valid... we should be able to stop the SW and cancel those operations
  621. # [19:50] <wanderview> FetchEvent holds SW alive... Document should hold FetchEvent
  622. # [19:50] <wanderview> I'd have to check, though
  623. # [19:50] <JakeA> wanderview: but if the navigation is to another page in scope, the SW needs to be alive for that new page and its resources
  624. # [19:50] * Joins: jernoble (~jernoble@17.202.46.221)
  625. # [19:51] <wanderview> JakeA: true... these mechanisms will not cancel in that case
  626. # [19:51] <JakeA> wanderview: maybe an edge case though
  627. # [19:52] <wanderview> JakeA: canceling per FetchEvent seems reasonable... if the FetchEvent is going nowhere
  628. # [19:52] <JakeA> wanderview: will design fetchEvent.waitUntil tomorrow
  629. # [19:52] <wanderview> JakeA: I suppose the FetchEvent could be for a window.fetch() that gets canceled too :-)
  630. # [19:53] <wanderview> FetchEvent cancellation I mean
  631. # [19:53] <JakeA> haha
  632. # [19:56] * Joins: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net)
  633. # [19:56] * Quits: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net) (Remote host closed the connection)
  634. # [19:57] * Joins: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net)
  635. # [19:59] * Joins: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net)
  636. # [20:01] * Quits: benwerd (~benwerd@199.87.84.238) (Remote host closed the connection)
  637. # [20:01] * Joins: benwerd (~benwerd@199.87.84.238)
  638. # [20:02] * Quits: benwerd (~benwerd@199.87.84.238) (Read error: Connection reset by peer)
  639. # [20:02] * Joins: benwerd_ (~benwerd@199.87.84.238)
  640. # [20:03] * Joins: frivoal (~frivoal@cm-84.208.175.177.getinternet.no)
  641. # [20:09] * Joins: mbrubeck (sid17036@gateway/web/irccloud.com/x-xhiubksdrvfaykwk)
  642. # [20:10] * Quits: frivoal (~frivoal@cm-84.208.175.177.getinternet.no) (Remote host closed the connection)
  643. # [20:12] * Quits: aleray (~aleray@ip-83-101-52-107.customer.schedom-europe.net) (Ping timeout: 246 seconds)
  644. # [20:13] * Krinkle|detached is now known as Krinkle
  645. # [20:14] * Quits: bradleymeck (~bradleyme@rrcs-71-41-5-28.sw.biz.rr.com) (Quit: bradleymeck)
  646. # [20:15] * Joins: frivoal (~frivoal@cm-84.208.175.177.getinternet.no)
  647. # [20:16] * Quits: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net) (Remote host closed the connection)
  648. # [20:17] * Quits: bnicholson (~bnicholso@c-24-130-60-241.hsd1.ca.comcast.net) (Quit: This computer has gone to sleep)
  649. # [20:19] * Parts: mbrubeck (sid17036@gateway/web/irccloud.com/x-xhiubksdrvfaykwk)
  650. # [20:22] * Joins: jernoble_ (~jernoble@17.202.49.155)
  651. # [20:23] * Joins: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net)
  652. # [20:24] * Joins: bnicholson (~bnicholso@c-24-130-60-241.hsd1.ca.comcast.net)
  653. # [20:24] * Quits: bnicholson (~bnicholso@c-24-130-60-241.hsd1.ca.comcast.net) (Client Quit)
  654. # [20:25] * Joins: zenith_ (~zenith@142.150.23.90)
  655. # [20:25] * Quits: ehynds (~ehynds@64.206.121.41) (Read error: Connection reset by peer)
  656. # [20:32] * Quits: frivoal (~frivoal@cm-84.208.175.177.getinternet.no) (Remote host closed the connection)
  657. # [20:34] * Joins: bnicholson (~bnicholso@corp.mtv2.mozilla.com)
  658. # [20:37] * Quits: hasather (~hasather@cm-84.210.170.16.getinternet.no) (Remote host closed the connection)
  659. # [20:40] * Joins: bradleymeck (~bradleyme@70.114.246.88)
  660. # [20:43] * Quits: benwerd_ (~benwerd@199.87.84.238) (Remote host closed the connection)
  661. # [20:47] * Joins: caitp (~caitp@CPE48f8b385c01c-CM84948c4c6f80.cpe.net.cable.rogers.com)
  662. # [20:51] * Joins: benwerd (~benwerd@199.87.84.238)
  663. # [20:51] * Quits: bradleymeck (~bradleyme@70.114.246.88) (Read error: Connection reset by peer)
  664. # [20:52] * Joins: bradleymeck (~bradleyme@70.114.246.88)
  665. # [20:52] * Quits: encryptd_fractl (~encryptd_@204.73.55.132) (Remote host closed the connection)
  666. # [20:57] * Joins: darobin (~darobin@mtl93-18-78-208-93-24.fbx.proxad.net)
  667. # [21:00] * Quits: zecho (~zecho@66-247-17-199.northern.mnscu.edu) (Read error: Connection reset by peer)
  668. # [21:00] * Joins: zecho (~zecho@66-247-17-199.northern.mnscu.edu)
  669. # [21:02] * Joins: encryptd_fractl (~encryptd_@50.241.63.92)
  670. # [21:03] * Quits: encryptd_fractl (~encryptd_@50.241.63.92) (Read error: Connection reset by peer)
  671. # [21:04] * Joins: encryptd_fractl (~encryptd_@50.241.63.92)
  672. # [21:05] * Joins: marcosc (~marcosc@2001:450:1f:232:2d27:3fd4:617:9543)
  673. # [21:06] <mounir> Domenic: ping
  674. # [21:07] * Quits: bradleymeck (~bradleyme@70.114.246.88) (Read error: Connection reset by peer)
  675. # [21:07] <mounir> marcosc: ping
  676. # [21:07] <Domenic> pong
  677. # [21:08] * marcosc here
  678. # [21:08] * Joins: bradleymeck (~bradleyme@70.114.246.88)
  679. # [21:08] <mounir> marcosc: Domenic suggests to remove the base interface
  680. # [21:08] <mounir> or maybe use "implements"
  681. # [21:08] <mounir> I don't mind both, FWIW
  682. # [21:09] <Domenic> https://gist.github.com/domenic/db44ae9dd73534d63e46
  683. # [21:09] * Joins: frivoal (~frivoal@cm-84.208.175.177.getinternet.no)
  684. # [21:09] <mounir> my main concern now is to figure out which way to go: strong types or strings
  685. # [21:09] <wanderview> JakeA: can we just remove VARY headers completely and make Cache key-value? :-)
  686. # [21:10] <Domenic> mounir: I think hanging methods off of types (instead of having a string-param to a generic method) is OK; not much preference either way. But, a strong preference *against* passing those types around.
  687. # [21:10] <mounir> Domenic: then we should try to see how we could add a .request() on top of that
  688. # [21:11] <mounir> Domenic: I want the design to allow .request() to take multiple permissions
  689. # [21:11] <mounir> the string based solution would allow that fairly easily
  690. # [21:11] <Domenic> yeah. .request(["midi", "geolocation"]), etc. seems fine. They are keys into Permissions.prototype.
  691. # [21:12] * Joins: othermaciej (~mjs@17.202.48.222)
  692. # [21:13] <mounir> Domenic: except that you would need to pass some options
  693. # [21:13] <marcosc> sorry, was chatting to other people at moz about the API at the same time
  694. # [21:13] <Domenic> Oh, interesting
  695. # [21:13] <Domenic> I suppose you guys have already explored and rejected coalescing separate requests?
  696. # [21:14] <Domenic> So e.g. the natural Promise.all([n.p.midi.request({ sysex: true }), n.p.geolocation.request()]) is not good enough?
  697. # [21:14] <marcosc> that's what we would want, yes
  698. # [21:15] <Domenic> oh, then, seems good...
  699. # [21:16] <marcosc> I don't have a strong preference about the strings vs the attributes
  700. # [21:16] <mounir> for .request(), I'm not sure Promise.all() is the right solution
  701. # [21:16] <Domenic> People will do it, even if you don't think they should
  702. # [21:17] <marcosc> you can handle individual rejects as needed, so what's the problem?
  703. # [21:17] <marcosc> "Oh, without Camera you are going to have a bad time... but ok..."
  704. # [21:17] * Quits: bholley (~bholley@c-24-130-121-49.hsd1.ca.comcast.net)
  705. # [21:18] <mounir> or UI coallescing, it's better if it's clear that the permission requests have to be bundled
  706. # [21:18] <mounir> instead of guessing
  707. # [21:24] * Quits: jyasskin (~jyasskin@173-228-80-34.dsl.static.fusionbroadband.com) (Quit: My computer has gone to sleep. ZZZzzz…)
  708. # [21:24] * Quits: zcorpan (~zcorpan@2a00:801:e0:30:bd35:f8ae:6af2:99c2) (Remote host closed the connection)
  709. # [21:25] * Joins: zcorpan (~zcorpan@2a00:801:e0:30:bd35:f8ae:6af2:99c2)
  710. # [21:27] <mounir> Domenic: the more I think about it, the more I prefer the original design with only a dictionary passed to .query()
  711. # [21:28] <mounir> no name + options
  712. # [21:28] <Domenic> oh interesting
  713. # [21:28] <mounir> Domenic: a permission isn't defined by it's name but by the name and the options even if some doesn't
  714. # [21:28] <Domenic> hmmmm that makes sense
  715. # [21:29] <mounir> Domenic: you can't query() 'midi' or 'push', it's more a side effect that some options will have a default value
  716. # [21:30] <mounir> Domenic: how terrible is navigator.permissions.query({'name': 'foo'}); to you?
  717. # [21:30] * Joins: igoroliveira (uid20755@gateway/web/irccloud.com/x-ctjblkrenyqnrspm)
  718. # [21:30] <mounir> knowing that sometimes there would be other values?
  719. # [21:30] <Domenic> mounir: not so bad now that you explain the conceptual backing
  720. # [21:31] <Domenic> i wonder if it's coherent to have an overload that takes a string and converts it to { name: s } though
  721. # [21:31] <Domenic> Just for pure convenience
  722. # [21:31] <mounir> Domenic: that's exactly what I had, but slightlyoff hated it
  723. # [21:31] <Domenic> -_-
  724. # [21:32] <mounir> ;)
  725. # [21:32] <Domenic> { name: 'foo' } it is then!
  726. # [21:32] <zcorpan> MikeSmith: fwiw, w3c ip block issue turned out to be quite the mystery. something was hammering the svg blog, but we couldn't identify what. now it doesn't happen anymore. issue closed, mystery prevails
  727. # [21:37] * Joins: jsbell (jsbell@nat/google/x-naweydyblgxljubr)
  728. # [21:48] <darobin> zcorpan: that happened at my office, we tracked it down to someone having a misbehaved Chrome extension that kept hitting a bunch of W3C pages for no reason
  729. # [21:51] <Domenic> probably dtds
  730. # [22:01] <darobin> Domenic: nope, it was weirder
  731. # [22:01] * Quits: wilsonpage (~wilsonpag@217.111.161.212) (Quit: Textual IRC Client: www.textualapp.com)
  732. # [22:02] <darobin> I *think* that it was somehow trying to refresh an RSS feed that it autodetected from a page but getting it very wrong
  733. # [22:03] <zcorpan> the url here involved something about rss in the query string (but it didn't point to the svg blog's feed). also the request had no User-Agent.
  734. # [22:03] * Joins: wilsonpage (~wilsonpag@217.111.161.213)
  735. # [22:03] <zcorpan> know which extension?
  736. # [22:05] * Quits: encryptd_fractl (~encryptd_@50.241.63.92) (Ping timeout: 255 seconds)
  737. # [22:07] * Joins: zecho_ (~zecho@66-247-17-199.northern.mnscu.edu)
  738. # [22:07] * Quits: bradleymeck (~bradleyme@70.114.246.88) (Read error: Connection reset by peer)
  739. # [22:09] * Quits: zecho (~zecho@66-247-17-199.northern.mnscu.edu) (Ping timeout: 252 seconds)
  740. # [22:10] * Quits: zdobersek (~zan@gateway/vpn/privateinternetaccess/zdobersek) (Quit: Leaving.)
  741. # [22:12] * Joins: bradleymeck (~bradleyme@70.114.246.88)
  742. # [22:12] * Quits: scor (scor@drupal.org/user/52142/view) (Quit: scor)
  743. # [22:13] * Joins: encryptd_fractl (~encryptd_@50.241.63.92)
  744. # [22:16] * Krinkle is now known as Krinkle|detached
  745. # [22:22] * Quits: bradleymeck (~bradleyme@70.114.246.88) (Quit: bradleymeck)
  746. # [22:23] * Quits: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net) (Remote host closed the connection)
  747. # [22:23] * Joins: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net)
  748. # [22:26] * Joins: bradleymeck (~bradleyme@70.114.246.88)
  749. # [22:27] * Joins: espadrine (~tyl@dan75-7-88-166-187-54.fbx.proxad.net)
  750. # [22:33] * Quits: marcosc (~marcosc@2001:450:1f:232:2d27:3fd4:617:9543) (Remote host closed the connection)
  751. # [22:35] * Quits: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net) (Remote host closed the connection)
  752. # [22:36] * Joins: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net)
  753. # [22:37] * Krinkle|detached is now known as Krinkle
  754. # [22:39] * Joins: jyasskin (jyasskin@nat/google/x-hppontpcgxmdztsm)
  755. # [22:39] * Quits: frivoal (~frivoal@cm-84.208.175.177.getinternet.no) (Remote host closed the connection)
  756. # [22:40] * Quits: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net) (Ping timeout: 244 seconds)
  757. # [22:40] * Joins: frivoal (~frivoal@cm-84.208.175.177.getinternet.no)
  758. # [22:48] * Quits: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net) (Ping timeout: 265 seconds)
  759. # [22:49] * Joins: tantek (~tantek@corp-nat.p2p.sfo1.mozilla.com)
  760. # [22:49] * Quits: newtron (~newtron@199.71.174.203) (Ping timeout: 252 seconds)
  761. # [22:49] <[swift]> does anyone have an opinion on delivering visibilitychange events to iframes when they enter and exit the viewport?
  762. # [22:49] <[swift]> ack, znc keeps changing my nick
  763. # [22:50] * [swift] is now known as seth__
  764. # [22:50] * Joins: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net)
  765. # [22:50] * seth__ is now known as sethf
  766. # [22:50] <sethf> (or perhaps nickserv)
  767. # [22:51] <sethf> at any rate, the idea here would be to allow iframes to take actions to throttle themselves if they're not currently visible. think for example HTML5 ads - they may be performing a variety of kinds of work when visible that they may want to throttle down when the user has scrolled them off the page
  768. # [22:51] * Quits: zenith_ (~zenith@142.150.23.90) (Ping timeout: 272 seconds)
  769. # [22:52] * Joins: tschneidereit (~till@2620:101:80fb:224:3559:b40e:9348:f691)
  770. # [22:59] <zcorpan> sethf: seems like it could be useful. send a mail to the list?
  771. # [23:03] <sethf> zcorpan: that was step two =)
  772. # [23:03] <jamesr___> it's definitely come up
  773. # [23:03] * Quits: wilsonpage (~wilsonpag@217.111.161.213) (Quit: My Mac has gone to sleep. ZZZzzz…)
  774. # [23:04] * Joins: aleray (~aleray@91.182.102.197)
  775. # [23:04] <sethf> jamesr___: i looked around for previous discussions but didn't have much luck finding any
  776. # [23:05] * Quits: benwerd (~benwerd@199.87.84.238) (Remote host closed the connection)
  777. # [23:05] <sethf> i may well be using the wrong keywords to search, though
  778. # [23:05] * Joins: ap_ (~ap@17.114.216.168)
  779. # [23:07] * Quits: CvP (~CvP@203.76.123.238) (Quit: [ UPP ] > all)
  780. # [23:08] * Quits: ap (~ap@17.202.44.214) (Ping timeout: 244 seconds)
  781. # [23:08] * Quits: tantek (~tantek@corp-nat.p2p.sfo1.mozilla.com) (Quit: tantek)
  782. # [23:08] * Joins: CvP (~CvP@203.76.123.238)
  783. # [23:11] * Quits: ap_ (~ap@17.114.216.168)
  784. # [23:12] * Joins: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net)
  785. # [23:12] * Quits: frivoal (~frivoal@cm-84.208.175.177.getinternet.no) (Remote host closed the connection)
  786. # [23:12] * Quits: TallTed (~Thud@63.119.36.36)
  787. # [23:13] * Joins: frivoal (~frivoal@cm-84.208.175.177.getinternet.no)
  788. # [23:14] * Joins: benwerd (~benwerd@199.87.84.238)
  789. # [23:15] * Quits: hober (~ted@unaffiliated/hober) (Read error: Connection reset by peer)
  790. # [23:15] * Joins: hober (~ted@unaffiliated/hober)
  791. # [23:16] * Quits: encryptd_fractl (~encryptd_@50.241.63.92) (Ping timeout: 252 seconds)
  792. # [23:17] * Joins: encryptd_fractl (~encryptd_@50.241.63.92)
  793. # [23:22] * Quits: frivoal (~frivoal@cm-84.208.175.177.getinternet.no) (Remote host closed the connection)
  794. # [23:22] * Quits: ehsan (~ehsan@2001:450:1f:224:89e6:c7e0:a161:5691) (Remote host closed the connection)
  795. # [23:27] <Ms2ger> Someone killed irc.w3.org?
  796. # [23:27] <gsnedders> So it appears. It wasn't me, though, honest!
  797. # [23:29] * Joins: tantek (~tantek@corp-nat.p2p.sfo1.mozilla.com)
  798. # [23:31] * jgraham blames gsnedders
  799. # [23:31] <gsnedders> Nah, I'm way too busy cursing SCSS to care.
  800. # [23:33] <jgraham> Should have called it CUSS
  801. # [23:33] * Joins: newtron (~newtron@75-119-235-26.dsl.teksavvy.com)
  802. # [23:33] * Joins: rniwa (~rniwa@17.202.48.231)
  803. # [23:34] <jgraham> Did I already spam this channel with https://docs.google.com/document/d/1K-mKOqiUiSjgZTEscBLjtjd6E67oiK8H2ztOiq5tigk/pub ?
  804. # [23:34] <jgraham> A most interesting look at web perf problems
  805. # [23:34] * Joins: marcosc (~marcosc@2001:450:1f:232:2d27:3fd4:617:9543)
  806. # [23:35] * Quits: tantek (~tantek@corp-nat.p2p.sfo1.mozilla.com) (Quit: tantek)
  807. # [23:36] * Quits: benwerd (~benwerd@199.87.84.238) (Remote host closed the connection)
  808. # [23:36] * Quits: Maurice` (copyman@unaffiliated/maurice)
  809. # [23:37] * Joins: KevinMarks__ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net)
  810. # [23:37] * Quits: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net) (Read error: Connection reset by peer)
  811. # [23:38] * Joins: KevinMarks_ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net)
  812. # [23:39] * Quits: marcosc (~marcosc@2001:450:1f:232:2d27:3fd4:617:9543) (Ping timeout: 256 seconds)
  813. # [23:39] <gsnedders> tl;dr: JS makes everything slow?
  814. # [23:39] * Quits: newtron (~newtron@75-119-235-26.dsl.teksavvy.com) (Quit: Leaving...)
  815. # [23:39] * Joins: newtron (~newtron@75-119-235-26.dsl.teksavvy.com)
  816. # [23:39] * Quits: newtron (~newtron@75-119-235-26.dsl.teksavvy.com) (Client Quit)
  817. # [23:40] * Quits: encryptd_fractl (~encryptd_@50.241.63.92) (Remote host closed the connection)
  818. # [23:40] * Joins: encryptd_fractl (~encryptd_@50.241.63.92)
  819. # [23:40] * Quits: encryptd_fractl (~encryptd_@50.241.63.92) (Remote host closed the connection)
  820. # [23:41] * Quits: KevinMarks__ (~yaaic@c-67-164-14-200.hsd1.ca.comcast.net) (Ping timeout: 272 seconds)
  821. # [23:42] * Joins: weinig (~weinig@17.244.160.62)
  822. # [23:45] * Quits: zcorpan (~zcorpan@2a00:801:e0:30:bd35:f8ae:6af2:99c2) (Remote host closed the connection)
  823. # [23:45] * Joins: benwerd (~benwerd@199.87.84.238)
  824. # [23:45] * Joins: tantek (~tantek@corp-nat.p2p.sfo1.mozilla.com)
  825. # [23:46] * Quits: bradleymeck (~bradleyme@70.114.246.88) (Quit: bradleymeck)
  826. # [23:46] * Joins: benwerd_ (~benwerd@199.87.84.238)
  827. # [23:46] * Quits: benwerd (~benwerd@199.87.84.238) (Read error: Connection reset by peer)
  828. # [23:47] * heycam|away is now known as heycam
  829. # [23:48] * Joins: ap_ (~ap@17.114.216.168)
  830. # [23:49] * Quits: benwerd_ (~benwerd@199.87.84.238) (Read error: Connection reset by peer)
  831. # [23:49] * Joins: benwerd (~benwerd@199.87.84.238)
  832. # [23:51] <jgraham> gsnedders: tldr for web authors is "if you want good perf you have to be super-careful about the code you actually run, rather than carelessly slinging about high level abstractions"
  833. # [23:51] * Quits: yoav (~yoav@sdo26-1-78-245-148-181.fbx.proxad.net) (Remote host closed the connection)
  834. # [23:51] <darobin> jgraham: wow, great doc
  835. # [23:51] <jgraham> But there are also messages for platform engineers and people working on tools
  836. # [23:51] <darobin> I'd say tl;dr is "ads will kill your perf"
  837. # [23:51] <jgraham> Well that was certainly the most egregious thing
  838. # [23:52] <darobin> "a loading spinner, that’s a canvas element, is rotated with css transforms every 42ms, via setInterval."
  839. # [23:52] * Joins: ambv (~ambv@199.201.64.131)
  840. # [23:52] <darobin> that's, like, wat?
  841. # [23:52] <gsnedders> hey gifs are so 90s
  842. # [23:52] * Quits: karlcow (~karl@nerval.la-grange.net) (Quit: :tiuQ tiuq sah woclrak)
  843. # [23:52] <gsnedders> LIKE THIS GIF IF YOU'RE A 90S KID
  844. # [23:53] <jgraham> I was particularly horrified by the adsense script running in a scroll handler and taking 25ms
  845. # [23:53] <darobin> gsnedders: sure, I mean, why not. but do you need to replace the gif by using setInterval to animate a CSS transform that CSS could animate itself, to rotate a fucking canvas that could rotate itself?
  846. # [23:53] <tantek> lol adsense. NoScript. block adsense everywhere.
  847. # [23:53] * Quits: roc (~chatzilla@121-98-104-251.bng1.tvc.orcon.net.nz) (Remote host closed the connection)
  848. # [23:53] <darobin> tantek: this is for performance for real users
  849. # [23:53] <gsnedders> darobin: yes
  850. # [23:54] <tantek> darobin: in that case, just install NoScript. if a site doesn't work, use a different one.
  851. # [23:54] <darobin> ok, you have a point gsnedders
  852. # [23:54] <darobin> tantek: I think a better solution is the one they advocate "Tell Google Adsense this is unacceptable"
  853. # [23:54] <darobin> AdSense is basically using 30ms of JS every second
  854. # [23:55] <darobin> times the number of tabs in the world this is run on, that's a lot of energy
  855. # [23:55] <tantek> where do you think all that distributed computing was going to come from? their own compute farms? nah. why bother with a compute cloud when you can hijack 30ms of user browser time every 1s?
  856. # [23:55] <jgraham> Well in this case I think it's more than that
  857. # [23:55] <tantek> the cloud … it's made of users!
  858. # [23:56] <jgraham> (it was 25ms on a phone, so probably less on a desktop, but still)
  859. # [23:56] <darobin> hehe
  860. # [23:56] <tantek> SoylentCloud™
  861. # [23:56] <jgraham> To be fair, doing compute on the client is totally legitimate. Running any ad related script in scroll handlers isn't
  862. # [23:56] <gsnedders> are there any UAs people actually use that use anything except screen or print media types?
  863. # [23:57] * Quits: eric_carlson (~ericc@17.202.49.94) (Ping timeout: 256 seconds)
  864. # [23:57] <jgraham> But the impression I get is that for the (biased) sample of sites they looked at, people had *no idea* what was actually running
  865. # [23:57] <gsnedders> jgraham, darobin: IIRC AdSense have stats on how often the ads scroll into view, I presume that's what it's there for… and that involves touching CSSOM and that's dear
  866. # [23:58] <jgraham> Yeah, well they clearly can't do that the way they are doing it without killing performance of the platform
  867. # [23:59] <jgraham> Oh hurrah, roc posted this to dev.platform
  868. # Session Close: Tue Mar 31 00:00:00 2015

Previous day, Next day

Think these logs are useful? Then please donate to show your gratitude (and keep them up, of course). Thanks! — Krijn