|Summary:||REGRESSION(r41760-41844): ESC Key does not fire document.onkeypress (affects Yahoo Mail)|
|Product:||WebKit||Reporter:||Joseph Pecoraro <joepeck>|
|Component:||WebCore Misc.||Assignee:||Nobody <webkit-unassigned>|
|Severity:||Major||CC:||ap, darin, dglazkov, glenn, jasneet, jon, kyle|
|Version:||528+ (Nightly build)|
|OS:||Mac OS X 10.5|
Description Joseph Pecoraro 2009-04-11 19:51:01 PDT
Comment 1 Joseph Pecoraro 2009-04-11 19:52:10 PDT
Created attachment 29418 [details] Test page to easily display keypress/down/up charcodes.
Comment 2 Joseph Pecoraro 2009-04-11 20:01:13 PDT
On Mac OS X: Safari 4 properly shows 27. Firefox 3.0.8 properly shows 27. Webkit Nightly does not show anything for ESC. On my Windows XP Virtual Machine: Chrome does not show anything for ESC. Firefox 2 properly shows 27.
Comment 3 Joseph Pecoraro 2009-04-12 07:47:06 PDT
Eek. Probably a duplicate of:  and  I must have overlooked those when I first searched.
Comment 4 Alexey Proskuryakov 2009-04-13 02:12:15 PDT
Wow. This is not quite a duplicate - the old bugs were not regressions! The difference is about what target the handler is installed on.
Comment 5 Alexey Proskuryakov 2009-04-13 03:11:04 PDT
*** Bug 25012 has been marked as a duplicate of this bug. ***
Comment 6 Alexey Proskuryakov 2009-04-13 06:42:49 PDT
Note that this is only a regression on Mac - on Windows, we didn't fire this event in Safari 3.2.1 either. This was probably caused by <http://trac.webkit.org/projects/webkit/changeset/41793> and related changes to _interceptEditingKeyEvent. This method now correctly discovers that the keydown event was handled, preventing keypress dispatch.
Comment 7 Glenn Maynard 2011-04-07 19:26:15 PDT
Please fix this. It breaks detection of keyboard autorepeat for these keys, which works in Firefox, Opera and IE. This isn't a Mac-specific issue.
Comment 8 Alexey Proskuryakov 2011-04-07 19:53:44 PDT
Could you please elaborate why detecting autorepeat for ESC matters, and how keypress helps with that? We should just implement KeyboardEvent.repeat attribute from DOM 3 Events spec (which obviously needs to be tracked in a different bug).
Comment 9 Glenn Maynard 2011-04-07 20:23:25 PDT
I forgot that keydown is fired on repeats--which doesn't make sense for the event name, but it gives a workaround here. I need to detect repeats on backspace, not escape, to detect changes to text input fields. But a correction: IE *doesn't* do this, which I'm guessing is the behavior WebKit's matching. Since there's no consistency here anyway, I guess fixing this won't really make much difference. (KeyboardEvent.repeat would be helpful, though unrelated--scripts having to track pressed keys manually is brittle.)