<?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>172299</bug_id>
          
          <creation_ts>2017-05-18 11:57:26 -0700</creation_ts>
          <short_desc>Web Automation: characters produced with shift modifier on QWERTY keyboard should be delivered as shift-down, char-down, char-up, shift-up events</short_desc>
          <delta_ts>2017-05-22 13:56:54 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bburg</cc>
    
    <cc>enrica</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1310180</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-05-18 11:57:26 -0700</bug_when>
    <thetext>Currently, we deliver this as keydown(A), keyup(A) but WebDriver tests expect this to be delivered as keydown(SHIFT), keydown(A), keyup(A), keyup(SHIFT) if the shift modifier is not already set via an earlier key press. Note that this means the text HELLO would keydown/keyup the shift key 5 times, because it&apos;s not sustained across keystrokes (even if a user might type it that way).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310187</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-05-18 12:07:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/32277988&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310869</commentid>
    <comment_count>2</comment_count>
      <attachid>310727</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-05-19 16:57:26 -0700</bug_when>
    <thetext>Created attachment 310727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311462</commentid>
    <comment_count>3</comment_count>
      <attachid>310727</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-05-22 11:36:09 -0700</bug_when>
    <thetext>Comment on attachment 310727
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=310727&amp;action=review

r=me

&gt; Source/WebKit2/UIProcess/Automation/mac/WebAutomationSessionMac.mm:521
&gt; +    case &apos;A&apos;:
&gt; +    case &apos;B&apos;:
&gt; +    case &apos;C&apos;:
&gt; +    case &apos;E&apos;:
&gt; +    case &apos;F&apos;:
&gt; +    case &apos;G&apos;:
&gt; +    case &apos;H&apos;:
&gt; +    case &apos;I&apos;:
&gt; +    case &apos;J&apos;:
&gt; +    case &apos;K&apos;:
&gt; +    case &apos;L&apos;:
&gt; +    case &apos;M&apos;:
&gt; +    case &apos;N&apos;:
&gt; +    case &apos;O&apos;:
&gt; +    case &apos;P&apos;:
&gt; +    case &apos;Q&apos;:
&gt; +    case &apos;R&apos;:
&gt; +    case &apos;S&apos;:
&gt; +    case &apos;T&apos;:
&gt; +    case &apos;U&apos;:
&gt; +    case &apos;V&apos;:
&gt; +    case &apos;W&apos;:
&gt; +    case &apos;X&apos;:
&gt; +    case &apos;Y&apos;:
&gt; +    case &apos;Z&apos;:

Can we turn this into an easier to read if statement:

    if (c &gt;= &apos;A&apos; &amp;&amp; c &lt;= &apos;Z&apos;)
        return YES;

The rest can still be in this switch. I realize by putting them all in the switch the compiler might manage some smarter codegen, but I think readability is more important here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311552</commentid>
    <comment_count>4</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-05-22 13:56:54 -0700</bug_when>
    <thetext>Committed r217244: &lt;http://trac.webkit.org/changeset/217244&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310727</attachid>
            <date>2017-05-19 16:57:26 -0700</date>
            <delta_ts>2017-05-22 11:36:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172299-20170519165726.patch</filename>
            <type>text/plain</type>
            <size>5892</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3MDQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2QyNzU0OGYwZWUyZGEw
MzI0NjljOGU1NjE0MzE2YWM0YmZlMTgxYy4uMWM2Mzk4NTVkZjMwYWYxMTQxZGIwMWJiY2M2ODNm
OWVjOGI2ZGNjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA1LTE5ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBBdXRvbWF0aW9uOiBjaGFy
YWN0ZXJzIHByb2R1Y2VkIHdpdGggc2hpZnQgbW9kaWZpZXIgb24gUVdFUlRZIGtleWJvYXJkIHNo
b3VsZCBiZSBkZWxpdmVyZWQgYXMgc2hpZnQtZG93biwgY2hhci1kb3duLCBjaGFyLXVwLCBzaGlm
dC11cCBldmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3MjI5OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzIyNzc5ODg+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViRHJpdmVyIHRlc3RzIGV4
cGVjdCBzb21lIEFTQ0lJIGNoYXJhY3RlcnMgdG8gYmUgcHJvZHVjZWQgdXNpbmcgdGhlIHNoaWZ0
IGtleSwKKyAgICAgICAgcmVnYXJkbGVzcyBvZiB0aGUgYWN0dWFsIGtleWJvYXJkIGxheW91dC4g
RW1pdCBleHRyYSBldmVudHMgd2hlbiBzaW11bGF0aW5nIHRoZXNlCisgICAgICAgIGtleXN0cm9r
ZXMgaWYgdGhlIHNoaWZ0IGtleSBpcyBub3QgYWxyZWFkeSBwcmVzc2VkLgorCisgICAgICAgICog
VUlQcm9jZXNzL0F1dG9tYXRpb24vbWFjL1dlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tOgorICAg
ICAgICAoV2ViS2l0OjpjaGFyYWN0ZXJJc1Byb2R1Y2VkVXNpbmdTaGlmdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5U2VxdWVuY2Up
OgorCiAyMDE3LTA1LTE4ICBDbGF1ZGlvIFNhYXZlZHJhICA8Y3NhYXZlZHJhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW1dQRV0gVW5yZXZpZXdlZCBidWlsZCBmaXgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL21hYy9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL21hYy9XZWJBdXRvbWF0
aW9uU2Vzc2lvbk1hYy5tbQppbmRleCAxNmZjMTUwYzczNDdjNjYwMTljM2UyNDRmMDQ5M2U4NDhl
YjQ3YmQ3Li5hMTRhZGJjZTdlNTE2ZTNlMzNkZTk2Nzc3ZjFlOWJjOTAwNzdiNTZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlv
blNlc3Npb25NYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24v
bWFjL1dlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tCkBAIC00ODMsNiArNDgzLDY5IEBAIHZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTdHJva2UoV2ViUGFnZVBy
b3h5JiBwYWdlLCBJbnNwZWN0CiAgICAgc2VuZFN5bnRoZXNpemVkRXZlbnRzVG9QYWdlKHBhZ2Us
IGV2ZW50c1RvQmVTZW50LmdldCgpKTsKIH0KIAorc3RhdGljIEJPT0wgY2hhcmFjdGVySXNQcm9k
dWNlZFVzaW5nU2hpZnQoTlNTdHJpbmcgKmNoYXJhY3RlcnMpCit7CisgICAgQVNTRVJUKGNoYXJh
Y3RlcnMubGVuZ3RoID09IDEpOworCisgICAgLy8gUGVyIHRoZSBXZWJEcml2ZXIgc3BlY2lmaWNh
dGlvbiwga2V5c3Ryb2tlcyBhcmUgYXNzdW1lZCB0byBiZSBwcm9kdWNlZCBhIHN0YW5kYXJkIDEw
OC1rZXkgVVMga2V5Ym9hcmQgbGF5b3V0LgorICAgIC8vIElmIHRoaXMgaXMgbm8gbG9uZ2VyIHRo
ZSBjYXNlLCB0aGVuIHdlJ2xsIG5lZWQgdG8gdXNlIHN5c3RlbSBrZXlib2FyZCBTUEkgdG8gZGVj
b21wb3NlIG1vZGlmaWVycyBmcm9tIGtleXN0cm9rZXMuCisgICAgdW5pY2hhciBjID0gW2NoYXJh
Y3RlcnMgY2hhcmFjdGVyQXRJbmRleDowXTsKKyAgICBpZiAoYyA+IDEyOCkKKyAgICAgICAgcmV0
dXJuIE5POworCisgICAgc3dpdGNoIChjKSB7CisgICAgY2FzZSAnQSc6CisgICAgY2FzZSAnQic6
CisgICAgY2FzZSAnQyc6CisgICAgY2FzZSAnRSc6CisgICAgY2FzZSAnRic6CisgICAgY2FzZSAn
Ryc6CisgICAgY2FzZSAnSCc6CisgICAgY2FzZSAnSSc6CisgICAgY2FzZSAnSic6CisgICAgY2Fz
ZSAnSyc6CisgICAgY2FzZSAnTCc6CisgICAgY2FzZSAnTSc6CisgICAgY2FzZSAnTic6CisgICAg
Y2FzZSAnTyc6CisgICAgY2FzZSAnUCc6CisgICAgY2FzZSAnUSc6CisgICAgY2FzZSAnUic6Cisg
ICAgY2FzZSAnUyc6CisgICAgY2FzZSAnVCc6CisgICAgY2FzZSAnVSc6CisgICAgY2FzZSAnVic6
CisgICAgY2FzZSAnVyc6CisgICAgY2FzZSAnWCc6CisgICAgY2FzZSAnWSc6CisgICAgY2FzZSAn
Wic6CisgICAgY2FzZSAnfic6CisgICAgY2FzZSAnISc6CisgICAgY2FzZSAnQCc6CisgICAgY2Fz
ZSAnIyc6CisgICAgY2FzZSAnJCc6CisgICAgY2FzZSAnJSc6CisgICAgY2FzZSAnXic6CisgICAg
Y2FzZSAnJic6CisgICAgY2FzZSAnKic6CisgICAgY2FzZSAnKCc6CisgICAgY2FzZSAnKSc6Cisg
ICAgY2FzZSAnXyc6CisgICAgY2FzZSAnKyc6CisgICAgY2FzZSAneyc6CisgICAgY2FzZSAnfSc6
CisgICAgY2FzZSAnfCc6CisgICAgY2FzZSAnOic6CisgICAgY2FzZSAnIic6CisgICAgY2FzZSAn
PCc6CisgICAgY2FzZSAnPic6CisgICAgY2FzZSAnPyc6CisgICAgICAgIHJldHVybiBZRVM7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIE5POworICAgIH0KK30KKwogdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVNlcXVlbmNlKFdlYlBhZ2VQcm94eSYg
cGFnZSwgY29uc3QgU3RyaW5nJiBrZXlTZXF1ZW5jZSkKIHsKICAgICBhdXRvIGV2ZW50c1RvQmVT
ZW50ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CkBAIC01MDEsOCAr
NTY0LDIyIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlT
ZXF1ZW5jZShXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0CiAgICAgTlNQb2ludCBldmVudFBvc2l0
aW9uID0gTlNNYWtlUG9pbnQoMCwgd2luZG93LmZyYW1lLnNpemUuaGVpZ2h0KTsKIAogICAgIFt0
ZXh0IGVudW1lcmF0ZVN1YnN0cmluZ3NJblJhbmdlOk5TTWFrZVJhbmdlKDAsIHRleHQubGVuZ3Ro
KSBvcHRpb25zOk5TU3RyaW5nRW51bWVyYXRpb25CeUNvbXBvc2VkQ2hhcmFjdGVyU2VxdWVuY2Vz
IHVzaW5nQmxvY2s6XihOU1N0cmluZyAqc3Vic3RyaW5nLCBOU1JhbmdlIHN1YnN0cmluZ1Jhbmdl
LCBOU1JhbmdlIGVuY2xvc2luZ1JhbmdlLCBCT09MICpzdG9wKSB7Ci0gICAgICAgIFtldmVudHNU
b0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtl
eURvd24gbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1l
c3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgY2hh
cmFjdGVyczpzdWJzdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOnN1YnN0cmluZyBp
c0FSZXBlYXQ6Tk8ga2V5Q29kZTowXV07Ci0gICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmpl
Y3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwIGxvY2F0aW9uOmV2
ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3
aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6c3Vic3RyaW5n
IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpzdWJzdHJpbmcgaXNBUmVwZWF0Ok5PIGtleUNv
ZGU6MF1dOworICAgIAorICAgICAgICAvLyBGb3IgQVNDSUkgY2hhcmFjdGVycyB0aGF0IGFyZSBw
cm9kdWNlZCB1c2luZyBTaGlmdCBvbiBhIFVTLTEwOCBrZXkga2V5Ym9hcmQgbGF5b3V0LAorICAg
ICAgICAvLyBXZWJEcml2ZXIgZXhwZWN0cyB0aGVzZSB0byBiZSBkZWxpdmVyZWQgYXMgW3NoaWZ0
LWRvd24sIGtleS1kb3duLCBrZXktdXAsIHNoaWZ0LXVwXQorICAgICAgICAvLyBrZXlzdHJva2Vz
IHVubGVzcyB0aGUgc2hpZnQga2V5IGlzIGFscmVhZHkgcHJlc3NlZCBkb3duIGZyb20gYW4gZWFy
bGllciBpbnRlcmFjdGlvbi4KKyAgICAgICAgQk9PTCBzaGlmdEFscmVhZHlQcmVzc2VkID0gbW9k
aWZpZXJzICYgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OworICAgICAgICBCT09MIHNob3VsZFBy
ZXNzU2hpZnQgPSAhc2hpZnRBbHJlYWR5UHJlc3NlZCAmJiBzdWJzdHJpbmdSYW5nZS5sZW5ndGgg
PT0gMSAmJiBjaGFyYWN0ZXJJc1Byb2R1Y2VkVXNpbmdTaGlmdChzdWJzdHJpbmcpOworICAgICAg
ICBOU0V2ZW50TW9kaWZpZXJGbGFncyBtb2RpZmllcnNGb3JLZXlzdHJva2UgPSBzaG91bGRQcmVz
c1NoaWZ0ID8gbW9kaWZpZXJzIHwgTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0IDogbW9kaWZpZXJz
OworCisgICAgICAgIGlmIChzaG91bGRQcmVzc1NoaWZ0KQorICAgICAgICAgICAgW2V2ZW50c1Rv
QmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlRmxh
Z3NDaGFuZ2VkIGxvY2F0aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnNG
b3JLZXlzdHJva2UgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVy
IGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6QCIiIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpA
IiIgaXNBUmVwZWF0Ok5PIGtleUNvZGU6a1ZLX1NoaWZ0XV07CisKKyAgICAgICAgW2V2ZW50c1Rv
QmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5
RG93biBsb2NhdGlvbjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzRm9yS2V5
c3Ryb2tlIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250
ZXh0Om5pbCBjaGFyYWN0ZXJzOnN1YnN0cmluZyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6
c3Vic3RyaW5nIGlzQVJlcGVhdDpOTyBrZXlDb2RlOjBdXTsKKyAgICAgICAgW2V2ZW50c1RvQmVT
ZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5VXAg
bG9jYXRpb246ZXZlbnRQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVyc0ZvcktleXN0cm9r
ZSB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpu
aWwgY2hhcmFjdGVyczpzdWJzdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOnN1YnN0
cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTowXV07CisgICAgICAgIAorICAgICAgICBpZiAoc2hv
dWxkUHJlc3NTaGlmdCkKKyAgICAgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05T
RXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCBsb2NhdGlvbjpl
dmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAg
d2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOkAiIiBjaGFy
YWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6QCIiIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmtWS19TaGlm
dF1dOwogICAgIH1dOwogCiAgICAgc2VuZFN5bnRoZXNpemVkRXZlbnRzVG9QYWdlKHBhZ2UsIGV2
ZW50c1RvQmVTZW50LmdldCgpKTsK
</data>
<flag name="review"
          id="331805"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>