/irc-logs / w3c / #webapps / 2010-03-17 / end
Options:
- # Session Start: Wed Mar 17 00:00:00 2010
- # Session Ident: #webapps
- # [00:00] <eiras> no. pointing device events, or mouse cursor are a different beast
- # [00:00] * Quits: shepazu (schepers@128.30.52.169) (Quit: shepazu)
- # [00:00] <eiras> this is specifically about controlling panning/scrolling
- # [00:00] <eiras> hich can be triggered in an unimaginable amount of ways
- # [00:01] <smaug> I'm happy to add beforescroll if I see some use case :)
- # [00:02] <smaug> some use case which explains *why* the page wants to prevent scrolling
- # [00:02] <eiras> I'll reply to the www-dom if you want to participate
- # [00:02] <smaug> I do read www-dom
- # [00:03] <eiras> but please don't mix input actions with ui events. I have enough headaches already explaning people here that those are very different :)
- # [00:03] <smaug> I guess you want beforescroll as input action
- # [00:03] <eiras> smaug: you mention *add*. To the wiki or are you one of the spec editors ?
- # [00:04] <smaug> shepazu is the editor
- # [00:04] <smaug> but I'm actively participating conference calls and other spec work
- # [00:05] <eiras> beforescroll as a UI Event. Whether the user agent can implement for virtually all possible use cases of scrolling is a user agent problem
- # [00:05] <eiras> regarding AIDE or whatever you want to call it, I have discussed with Chaals that same issue, and we might, in the future present a proposal of our own
- # [00:06] <smaug> that would be great
- # [00:06] <smaug> actually, could you explain what you mean with input action vs ui event
- # [00:06] <eiras> however, I disagree about differentiating between taps, pens, joysticks and whatever. Last thing we need is a device specific hell and fragmentation. The mouse events spec can be extended to support all use cases, with a clean and backward compatible way (I've been giving it lots of thought)
- # [00:07] <smaug> "input action event" isn't used commonly
- # [00:07] <eiras> input action is an event directly related to an input device -> keyboard, mouse or voice events for instance.
- # [00:07] <smaug> and ui event is ?
- # [00:08] <eiras> ui event is something that the user agent triggers in regards to specific input actions -> clipboard actions, scrolling, zooming, navigation, all the default actions of events, etc.
- # [00:08] <smaug> note, per DOM terminology for example a mouse event is a ui event
- # [00:08] <smaug> but I see what you mean
- # [00:08] <eiras> I hope I'm clear enough
- # [00:08] <smaug> need to just clarify the terminology
- # [00:09] <eiras> for instance, a 'copy' event can be triggered by doing Ctrl+C, Edit menu>Copy, right click>Copy, or document.execCommand('Copy'), etc...
- # [00:09] <eiras> yet copy is not the user input action by itself, but a deault action triggered by the user agent, in response to user interaction
- # [00:10] <eiras> if I refer to ui event, tat will most likely fall in the UIEvents section of dom 3 events
- # [00:10] <smaug> ok, what if you call those events ua events
- # [00:11] <smaug> since seems like you mean really events triggered by ua
- # [00:11] <smaug> and because using ui event in DOM Events context is misleading
- # [00:12] <eiras> think of UIEvents sectoin :)
- # [00:14] <smaug> by your definition mouse events aren't ui events
- # [00:14] <smaug> but per DOM Events they are ui events
- # [00:15] <eiras> there is only one occurence of "ui event" in this document http://www.w3.org/TR/DOM-Level-3-Events/
- # [00:16] <smaug> http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html MouseEvent interface extends UIEvent
- # [00:16] <eiras> http://www.w3.org/TR/DOM-Level-3-Events/#events-uievents
- # [00:18] <smaug> DOM Events doesn't really have proper terminology to explain input action events and ui events
- # [00:18] <eiras> oh, magnify event ! woot :)
- # [00:18] <smaug> that is going away, maybe
- # [00:19] <eiras> well, we (Opera) need it :)
- # [00:19] <eiras> whether it's called magnify or zoom, I honestly don't have strong opinions, as long as the feature is there
- # [00:19] <eiras> zoom sounds more familiar though
- # [00:20] <smaug> I believe all agree that magnify is useful
- # [00:20] <smaug> but it doesn't necessarily need to go to DOM 3 Events
- # [00:20] <eiras> it is not useful if there is no way to query the current zoom level applied to the viewport
- # [00:20] <eiras> detail could have the *new* zoom level, which a window proeprty, like window.zoomLevel could have the current
- # [00:21] <eiras> which -> while
- # [00:21] <eiras> hum...
- # [00:21] <smaug> yeah
- # [00:21] <smaug> anyway, getting a bit late here
- # [00:21] <eiras> where are you at ?
- # [00:21] <smaug> Helsinki
- # [00:21] <smaug> are you in Oslo?
- # [00:21] <eiras> ye
- # [00:21] <eiras> yes
- # [00:22] <smaug> that is CET, Finland is EET
- # [00:22] <eiras> yeap, one hour later
- # [00:27] <eiras> smaug: but for your headaches, we need also something like a beforezoom or beforemagnify :) which cna be prevented. Again, maps come intoplay
- # [00:29] <smaug> if you have the usecases, could you post those to the mailing list
- # [00:29] <smaug> beforemagnify is probably easier to define than beforescroll
- # [00:31] <eiras> good night
- # [00:31] <eiras> god kveld as they say here
- # [01:11] * Joins: dydz (dydz@75.37.25.164)
- # [01:34] * Joins: sicking (chatzilla@63.245.220.240)
- # [01:46] * Quits: sicking (chatzilla@63.245.220.240) (Ping timeout)
- # [02:07] * Joins: sicking (chatzilla@63.245.220.240)
- # [02:26] * Quits: dydz (dydz@75.37.25.164) (Quit: dydz)
- # [02:40] * Joins: tlr (tlr@128.30.52.169)
- # [03:59] * Quits: sicking (chatzilla@63.245.220.240) (Ping timeout)
- # [04:00] * Joins: sicking (chatzilla@63.245.220.240)
- # [04:03] * Quits: sicking (chatzilla@63.245.220.240) (Ping timeout)
- # [04:25] * Quits: MikeSmithX (MikeSmith@114.48.199.9) (Ping timeout)
- # [04:35] * Joins: shepazu (schepers@128.30.52.169)
- # [05:18] * Joins: sicking (chatzilla@99.24.216.224)
- # [05:21] * Quits: sicking (chatzilla@99.24.216.224) (Ping timeout)
- # [05:35] * Quits: Lachy (Lachlan@85.196.122.246) (Quit: Leaving)
- # [06:46] * Joins: dydz (dydz@75.37.25.164)
- # [07:33] * Joins: anne (annevk@83.227.7.248)
- # [07:56] * Quits: dydz (dydz@75.37.25.164) (Quit: dydz)
- # [07:57] * Quits: anne (annevk@83.227.7.248) (Client exited)
- # [07:57] * Joins: anne (annevk@83.227.7.248)
- # [08:30] * Quits: anne (annevk@83.227.7.248) (Ping timeout)
- # [08:31] * Joins: dydz (dydz@75.37.25.164)
- # [09:12] * Joins: anne (annevk@88.131.66.80)
- # [09:18] * Quits: dydz (dydz@75.37.25.164) (Quit: dydz)
- # [09:25] * Joins: darobin (robin@212.24.153.156)
- # [11:19] * Quits: shepazu (schepers@128.30.52.169) (Ping timeout)
- # [12:05] * Quits: darobin (robin@212.24.153.156) (Ping timeout)
- # [12:07] * Joins: ArtB (chatzilla@192.100.124.219)
- # [12:07] * Quits: tlr (tlr@128.30.52.169) (Client exited)
- # [12:59] * Joins: tlr_ (tlr@128.31.35.228)
- # [13:03] * Joins: tlr (tlr@128.30.52.169)
- # [13:37] * Joins: aroben (aroben@71.58.77.15)
- # [13:43] * Joins: darobin (robin@212.24.153.156)
- # [14:05] * Quits: tlr_ (tlr@128.31.35.228) (Ping timeout)
- # [14:21] * Quits: timeless_mbp (timeless@88.115.8.36) (Quit: Leaving.)
- # [14:22] * Joins: timeless_mbp (timeless@88.115.8.36)
- # [14:25] * Quits: anne (annevk@88.131.66.80) (Client exited)
- # [14:25] * Joins: anne (annevk@88.131.66.80)
- # [14:35] * Quits: ArtB (chatzilla@192.100.124.219) (Ping timeout)
- # [15:05] * Quits: tlr (tlr@128.30.52.169) (Quit: tlr)
- # [15:13] * Joins: ArtB (chatzilla@192.100.124.219)
- # [15:17] * Quits: darobin (robin@212.24.153.156) (Ping timeout)
- # [15:19] * Quits: anne (annevk@88.131.66.80) (Client exited)
- # [15:19] * Joins: anne (annevk@88.131.66.80)
- # [15:44] * Joins: dydz (dydz@76.199.100.248)
- # [15:49] * Joins: darobin (robin@212.24.153.156)
- # [15:59] * Joins: tlr (tlr@128.30.52.169)
- # [16:01] * Quits: tlr (tlr@128.30.52.169) (Quit: tlr)
- # [16:06] * ArtB is now known as ArtB_
- # [16:08] * Joins: tlr (tlr@128.30.52.169)
- # [16:09] * Quits: timeless_mbp (timeless@88.115.8.36) (Quit: Leaving.)
- # [17:03] * Quits: tlr (tlr@128.30.52.169) (Quit: tlr)
- # [17:11] * Joins: shepazu (schepers@128.30.52.169)
- # [17:17] * Quits: shepazu (schepers@128.30.52.169) (Quit: Core Breach)
- # [17:27] * Quits: dydz (dydz@76.199.100.248) (Quit: dydz)
- # [17:28] * Quits: darobin (robin@212.24.153.156) (Ping timeout)
- # [17:32] * ArtB_ is now known as ArtB
- # [17:47] * Quits: anne (annevk@88.131.66.80) (Client exited)
- # [17:47] * Joins: anne (annevk@88.131.66.80)
- # [18:09] * Joins: sicking (chatzilla@173.13.145.30)
- # [18:27] * Joins: tlr (tlr@128.30.52.169)
- # [18:46] * Quits: sicking (chatzilla@173.13.145.30) (Ping timeout)
- # [19:24] * Quits: tlr (tlr@128.30.52.169) (Quit: tlr)
- # [19:24] * Quits: anne (annevk@88.131.66.80) (Client exited)
- # [19:25] * Joins: anne (annevk@88.131.66.80)
- # [20:02] <smaug> Hixie: in websocket API, why the need to .wasClean? Couldn't error event be dispatched, and then close?
- # [20:03] <smaug> that way there isn't need for yet another event interface
- # [20:25] * Joins: tlr (tlr@128.30.52.169)
- # [20:25] * Quits: tlr (tlr@128.30.52.169) (Client exited)
- # [20:26] * Joins: tlr (tlr@128.30.52.169)
- # [20:26] * Quits: tlr (tlr@128.30.52.169) (Client exited)
- # [20:26] * Joins: tlr (tlr@128.30.52.169)
- # [20:32] * Joins: timeless_mbp (timeless@88.115.8.36)
- # [21:25] * Quits: ArtB (chatzilla@192.100.124.219) (Client exited)
- # [21:54] <smaug> Hixie: so which version of the web socket protocol is the "most valid"?
- # [21:54] <smaug> the one pointed by the Websocket API document
- # [21:54] <smaug> or the one located in whatwg.org?
- # [21:54] <smaug> I guess the latter one
- # [22:11] * Joins: sicking (chatzilla@63.245.220.240)
- # [22:19] * Joins: shepazu (schepers@128.30.52.169)
- # [22:23] * Quits: shepazu (schepers@128.30.52.169) (Quit: shepazu)
- # [22:35] * Quits: sicking (chatzilla@63.245.220.240) (Ping timeout)
- # [22:49] * Joins: MikeSmith (MikeSmith@208.54.95.254)
- # [22:51] <Hixie> smaug: that's what i had originally (error then close) but people complained that that made it unnecessarily hard to know whether to try to reconnect
- # [22:52] <Hixie> smaug: whatwg.org is the latest one
- # [22:52] <Hixie> smaug: personally i recommend the complete.html file since it has the api and the protocol all together in done doc with cross-references
- # [22:53] <smaug> Hixie: are there emails about the error and close in some mailing list?
- # [22:55] <Hixie> i don't recall if it was mailing list feedback or irc feedback
- # [22:58] <smaug> Hixie: why reconnecting is hard?
- # [22:58] <smaug> er, to know whether to reconnect
- # [22:59] <smaug> and how does wasClean help with that
- # [23:01] <Hixie> with wasClean you just do if (!event.wasClean) { reconnect() } else { doNormalShutdown(); }
- # [23:01] <Hixie> without it you have to set a flag in the error handler and check the flag in the close handler
- # [23:01] <Hixie> it's certainly not a big effort
- # [23:02] <Hixie> but it seems more than necessary, especially if the only reason to avoid it is to make implementation life easier
- # [23:02] <Hixie> the order of priorities goes: users > authors > implementors > spec writers
- # [23:02] <Hixie> so authors basically always get their way unless the pain on implementors is inordinate
- # [23:03] <smaug> without wasClean you reconnect in the error handler
- # [23:03] <Hixie> and the else?
- # [23:03] <smaug> ah, right
- # [23:03] <Hixie> anyway i'm not the one you should argue with -- i agree with you :-)
- # [23:04] <smaug> hmm
- # [23:05] <smaug> actually
- # [23:05] <smaug> shouldn't there just be a state for error
- # [23:05] * Quits: tlr (tlr@128.30.52.169) (Quit: tlr)
- # [23:05] <smaug> or couldn't there...
- # [23:06] <Hixie> moving the wasClean flag from a boolean on the onclose handler to a three-state flag on the WebSocket object? or adding a different readyState so that the progression can go either 0,1,2,3 or 0,1,2,4?
- # [23:07] <smaug> the latter one
- # [23:07] <Hixie> i guess we could do that. ask the list what they think? i'm doing some stuff for bz right now so i can't do the edit right now
- # [23:07] <smaug> ok
- # [23:08] <Hixie> (some people like readyState to progress without jumps, so it might be a bit controversial, i dunno)
- # [23:08] <Hixie> (it does make it different than other uses of readyState)
- # [23:09] <smaug> well, I assume that in simple cases people don't care about readyState
- # [23:09] <smaug> they just check that there is the close
- # [23:09] <smaug> same with error handler, it won't be used always
- # [23:36] <smaug> "The server specifies which origin it is willing to receive requests from by including a |Sec-WebSocket-Origin| field with that origin. If multiple origins are authorized, the server
- # [23:36] <smaug> echoes the value in the |Origin| field of the client's handshake."
- # [23:36] <smaug> I'm not quite sure what that tries to say
- # [23:37] <smaug> (could be just my bad English or 0:30am)
- # [23:39] <smaug> Hixie: how did you come up with the Sec-WebSocket-KeyX thing?
- # [23:40] <smaug> especially the part which allows dividing by 0
- # [23:41] <smaug> er
- # [23:41] <smaug> ah it is explained
- # [23:41] <smaug> still, this all sounds strange
- # [23:43] <Hixie> it's pretty crazy yeah
- # [23:43] <Hixie> it was hard to come up with something that's hard to screw up
- # [23:44] <Hixie> not sure what you don't understand about hte origin thing... can you elaborate?
- # [23:44] <Hixie> not sure which part to explain :-)
- # [23:44] <Hixie> it's just saying that if you have a simple script that just expects to talk to pages hosted from one page, it can just hard-code the Sec-WebSocket-Origin response field
- # [23:45] <Hixie> but if it's a more complicated script that talks to many sites on the web, it'll need to look at the Origin field from the client first
- # [23:45] <Hixie> and then only echo the one that the client sent
- # [23:45] <smaug> Hixie: the multiple origins part
- # [23:47] <smaug> Hixie: so client sends Origin: and server sends back Sec-WebSocket-Origin:
- # [23:47] <smaug> and in some cases Origin:
- # [23:48] <smaug> which is the same as what client sent to server?
- # [23:49] <Hixie> the server always sends back Sec-WebSocket-Origin
- # [23:49] <Hixie> and its value is either hard-coded, or derived from the client's Origin:
- # [23:49] <smaug> why is Sec-WebSocket-Origin needed?
- # [23:49] <Hixie> to make sure you can't talk to a server who doesn't want to talk to you
- # [23:50] <Hixie> (and so that the client is the one doing the check, not the server)
- # [23:50] <Hixie> (since we don't trust the server to get things right)
- # [23:50] <smaug> well, if also server sends Origin
- # [23:50] <Hixie> server never sends Origin
- # [23:51] <Hixie> Origin: is the field that describes the client's origin
- # [23:51] <smaug> oh, ok
- # [23:51] <smaug> my bad
- # [23:51] <smaug> misread
- # [23:51] <smaug> thanks
- # [23:51] <Hixie> np
- # [23:52] * Quits: aroben (aroben@71.58.77.15) (Connection reset by peer)
- # [23:52] <smaug> still, the protocol is getting far from being trivial to implement
- # [23:53] <Hixie> it's still pretty simple on the server. the client isn't trivial, certainly.
- # [23:54] <Hixie> the latest changes added about 50% extra complexity to the server based on my attempts to implement a perl one
- # [23:54] <Hixie> it was 99 lines, it's now about 150
- # [23:54] <smaug> Hixie: "; the wire protocol including error-handling and forward-compatible parsing rules" doesn't seem to contain closing frame
- # [23:54] * Hixie looks
- # [23:54] <Hixie> closing-frame is part of binary-frame in that version
- # [23:55] <smaug> ah, right
- # [23:55] <smaug> again, hard to read
- # [23:55] <smaug> I wonder how the protocol can be really used in isp webservers
- # [23:56] <Hixie> the recent changes got rid of all the binary blobs and stuff that people complained about, so hopefully it's a little easier now
- # [23:56] <smaug> I doubt I can reserve any ports for my use
- # [23:56] <Hixie> you mean web hosting providers?
- # [23:56] <smaug> yeah
- # [23:56] <Hixie> dreamhost allow me to run arbitrary scripts that open any port above 1024
- # [23:56] <Hixie> dunno about others
- # [23:56] <smaug> interesting
- # [23:56] <smaug> surprising
- # [23:57] <Hixie> if you can run arbitrary code on unix, it's pretty hard to stop it, as i understand it
- # [23:57] <Hixie> short of a firewall
- # [23:57] <Hixie> dunno how common that is
- # [23:58] <smaug> Hixie: still another thing, which was mentioned in hybi list
- # [23:58] <smaug> the need for bigint
- # [23:59] <smaug> do we really need to be able to handle huge binary frames?
- # [23:59] <Hixie> you can just bail if you get a length that's too big
- # [23:59] <Hixie> i don't see why people would send long lengths today
- # [23:59] <Hixie> but when everyone is using 256 bit chips and petabit ethernet to the house, i don't see why we'd want to rev the entire protocol
- # Session Close: Thu Mar 18 00:00:00 2010
The end :)