<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>25147</bug_id>
          
          <creation_ts>2009-04-11 19:51:01 -0700</creation_ts>
          <short_desc>REGRESSION(r41760-41844): ESC Key does not fire document.onkeypress (affects Yahoo Mail)</short_desc>
          <delta_ts>2014-03-10 09:52:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://bogojoker.com/webkit/keypress_test.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>glenn</cc>
    
    <cc>jasneet</cc>
    
    <cc>jon</cc>
    
    <cc>kyle</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>117242</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-04-11 19:51:01 -0700</bug_when>
    <thetext>The ESC Key does not register the onkeypress function in the Webkit Nightly.  It does in the Safari 4 beta, and previous versions of Safari.  This is a regression error.

Steps to reproduce:

1. Load the attached test file, or just go to the following URL with the test page:
http://bogojoker.com/webkit/keypress_test.html
Javascript is set to show the keypress, keydown, and keyup events in textareas and the console for both Webkit and Firefox (so you can easily compare).

2. Press any key you want.  Observe that ESC does not show up in the Webkit Nightly.  It does in Safari 4 beta (correctly as 27).  Firefox&apos;s output is often 0 for keypress, but correct for ESC because it is a &quot;non-character key.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117243</commentid>
    <comment_count>1</comment_count>
      <attachid>29418</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-04-11 19:52:10 -0700</bug_when>
    <thetext>Created attachment 29418
Test page to easily display keypress/down/up charcodes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117244</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-04-11 20:01:13 -0700</bug_when>
    <thetext>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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117255</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2009-04-12 07:47:06 -0700</bug_when>
    <thetext>Eek.  Probably a duplicate of:
[25012] and [18157]

I must have overlooked those when I first searched.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117294</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-04-13 02:12:15 -0700</bug_when>
    <thetext>Wow. This is not quite a duplicate - the old bugs were not regressions! The difference is about what target the handler is installed on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117297</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-04-13 03:11:04 -0700</bug_when>
    <thetext>*** Bug 25012 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117299</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-04-13 06:42:49 -0700</bug_when>
    <thetext>Note that this is only a regression on Mac - on Windows, we didn&apos;t fire this event in Safari 3.2.1 either.

This was probably caused by &lt;http://trac.webkit.org/projects/webkit/changeset/41793&gt; and related changes to _interceptEditingKeyEvent. This method now correctly discovers that the keydown event was handled, preventing keypress dispatch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381935</commentid>
    <comment_count>7</comment_count>
    <who name="Glenn Maynard">glenn</who>
    <bug_when>2011-04-07 19:26:15 -0700</bug_when>
    <thetext>Please fix this.  It breaks detection of keyboard autorepeat for these keys, which works in Firefox, Opera and IE.  This isn&apos;t a Mac-specific issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381945</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-07 19:53:44 -0700</bug_when>
    <thetext>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).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381960</commentid>
    <comment_count>9</comment_count>
    <who name="Glenn Maynard">glenn</who>
    <bug_when>2011-04-07 20:23:25 -0700</bug_when>
    <thetext>I forgot that keydown is fired on repeats--which doesn&apos;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&apos;t* do this, which I&apos;m guessing is the behavior WebKit&apos;s matching.  Since there&apos;s no consistency here anyway, I guess fixing this won&apos;t really make much difference.

(KeyboardEvent.repeat would be helpful, though unrelated--scripts having to track pressed keys manually is brittle.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988916</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-03-10 09:52:29 -0700</bug_when>
    <thetext>This was fixed in &lt;http://trac.webkit.org/changeset/165356&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>29418</attachid>
            <date>2009-04-11 19:52:10 -0700</date>
            <delta_ts>2009-04-11 19:52:10 -0700</delta_ts>
            <desc>Test page to easily display keypress/down/up charcodes.</desc>
            <filename>keypress_test.html</filename>
            <type>text/html</type>
            <size>2414</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIK
CSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KPGh0
bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFu
Zz0iZW4iPgo8aGVhZD4KCTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ii8+Cgk8dGl0bGU+RVNDIEtleSBUZXN0PC90aXRsZT4K
CTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQoJCS8qCgkJCVdlYmtpdCBPbmx5CgkK
CQkvLyBLZXlwcmVzcwoJCWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXByZXNzIiwgZnVu
Y3Rpb24oZSkgewoJCQl2YXIga2V5Y29kZSA9IGUua2V5Q29kZTsKCQkJY29uc29sZS5sb2coImtl
eXByZXNzOiAiICsga2V5Y29kZSk7CgkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrcCcpLnZh
bHVlICs9ICJcbiIgKyBrZXljb2RlOwoJCX0pOwoJCQoJCS8vIEtleWRvd24KCQlkb2N1bWVudC5h
ZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgZnVuY3Rpb24oZSkgewoJCQl2YXIga2V5Y29kZSA9
IGUua2V5Q29kZTsKCQkJY29uc29sZS5sb2coImtleWRvd246ICIgKyBrZXljb2RlKTsKCQkJZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2tkJykudmFsdWUgKz0gIlxuIiArIGtleWNvZGU7CgkJfSk7
CgkJCgkJLy8gS2V5dXAKCQlkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsIGZ1bmN0
aW9uKGUpIHsKCQkJdmFyIGtleWNvZGUgPSBlLmtleUNvZGU7CgkJCWNvbnNvbGUubG9nKCJrZXl1
cDogIiArIGtleWNvZGUpOwoJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna3UnKS52YWx1ZSAr
PSAiXG4iICsga2V5Y29kZTsKCQl9KTsKCQkKCQkqLwoJCQoJCS8vIFRoZSBmb2xsb3dpbmcgZnVu
Y3Rpb25zIHdvcmsgZm9yIGJvdGggCgkJLy8gV2Via2l0IGFuZCBGaXJlZm94CgkJCgkJLy8gS2V5
cHJlc3MKCQlmdW5jdGlvbiBwcmVzcyhlKSB7CgkJCXZhciBrZXljb2RlID0gZS5rZXlDb2RlOwoJ
CQljb25zb2xlLmxvZygia2V5cHJlc3M6ICIgKyBrZXljb2RlKTsKCQkJZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2twJykudmFsdWUgKz0gIlxuIiArIGtleWNvZGU7CgkJfQoJCQoJCS8vIEtleWRv
d24KCQlmdW5jdGlvbiBkb3duKGUpIHsKCQkJdmFyIGtleWNvZGUgPSBlLmtleUNvZGU7CgkJCWNv
bnNvbGUubG9nKCJrZXlkb3duOiAiICsga2V5Y29kZSk7CgkJCWRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdrZCcpLnZhbHVlICs9ICJcbiIgKyBrZXljb2RlOwoJCX0KCQkKCQkvLyBLZXl1cAoJCWZ1
bmN0aW9uIHVwKGUpIHsKCQkJdmFyIGtleWNvZGUgPSBlLmtleUNvZGU7CgkJCWNvbnNvbGUubG9n
KCJrZXl1cDogIiArIGtleWNvZGUpOwoJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna3UnKS52
YWx1ZSArPSAiXG4iICsga2V5Y29kZTsKCQl9CgkJCgkJLy8gUmVnaXN0ZXIgdGhlIGV2ZW50cwoJ
CWRvY3VtZW50Lm9ua2V5cHJlc3MgPSBwcmVzczsKCQlkb2N1bWVudC5vbmtleWRvd24gPSBkb3du
OwoJCWRvY3VtZW50Lm9ua2V5dXAgPSB1cDsKCQkKCQkvLyBDbGVhciB0aGUgdGV4dGFyZWFzLCBh
Z2FpbiB1c2luZyBXZWJLaXQrU2FmYXJpIHN0eWxlLgoJCXdpbmRvdy5vbmxvYWQgPSBmdW5jdGlv
bigpIHsKCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NsZWFyJykub25jbGljayA9IGZ1bmN0
aW9uKCkgewoJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2twJykudmFsdWUgPSAib25rZXlw
cmVzczoiOwoJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2tkJykudmFsdWUgPSAib25rZXlk
b3duOiI7CgkJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna3UnKS52YWx1ZSA9ICJvbmtleXVw
OiI7CgkJCX0KCQl9CgoJPC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CgoJPGgxPkVTQyBLZXkgZG9l
cyBub3QgbGF1bmNoIGluIG9ua2V5cHJlc3M8L2gxPgoJPGgzPkFsbCBvdXRwdXQgc2hvdWxkIGFw
cGVhciBpbiB0aGUgV2ViIEluc3BlY3RvciBhcyB3ZWxsLjwvaDM+Cgk8cD5KdXN0IHB1c2gga2V5
cyBhdCBhbnkgdGltZS4gKFRoZXJlIGFyZSBrZXlsaXN0ZW5lcnMgb24gdGhlIGRvY3VtZW50KS4g
IDxjb2RlPkVTQzwvY29kZT4gaXMga2V5Y29kZSAyNzwvcD4KCQoJPHRleHRhcmVhIGlkPSJrcCIg
cm93cz0iMjUiPm9ua2V5cHJlc3M6PC90ZXh0YXJlYT4KCTx0ZXh0YXJlYSBpZD0ia2QiIHJvd3M9
IjI1Ij5vbmtleWRvd246PC90ZXh0YXJlYT4KCTx0ZXh0YXJlYSBpZD0ia3UiIHJvd3M9IjI1Ij5v
bmtleXVwOjwvdGV4dGFyZWE+Cgk8YnIgLz48YnV0dG9uIGlkPSJjbGVhciI+Q2xlYXI8L2J1dHRv
bj4KCjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>