<?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>137719</bug_id>
          
          <creation_ts>2014-10-14 14:41:09 -0700</creation_ts>
          <short_desc>REGRESSION (r165356): Issues with Japanese text input</short_desc>
          <delta_ts>2014-12-09 14:21:07 -0800</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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=139459</see_also>
          <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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>darin</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1041688</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-14 14:41:09 -0700</bug_when>
    <thetext>This affects sync text input code path.

1. Kotoeri sometimes doesn&apos;t process the first keypress in a web page.
2. ATOK sometimes needs to consume a Return key, but it is passed down to a web page anyway (causing bad misbehavior on google.com).

This happens because we EditorState is now tracked incorrectly. There is an async message sent with old state, and then a sync message response with new state. But these are delivered out of order, so UI process ends up with an incorrect idea about input state. 

Yes, the incorrect data has ignoreCompositionSelectionChange set on it, but that&apos;s not sufficient for UI side heuristics to work well.

rdar://problem/18431952
rdar://problem/18483741</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041696</commentid>
    <comment_count>1</comment_count>
      <attachid>239827</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-14 14:56:33 -0700</bug_when>
    <thetext>Created attachment 239827
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041706</commentid>
    <comment_count>2</comment_count>
      <attachid>239827</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-10-14 15:44:31 -0700</bug_when>
    <thetext>Comment on attachment 239827
proposed fix

Any way to regression test this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041720</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-14 16:27:00 -0700</bug_when>
    <thetext>It&apos;s likely technically possible to test with an API test, as these drive testing from UI process side, however the complexity of such a test scares. More importantly, an API test would only test sync API, which is on its way out.

Committed &lt;http://trac.webkit.org/r174708&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239827</attachid>
            <date>2014-10-14 14:56:33 -0700</date>
            <delta_ts>2014-10-14 15:44:31 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>Japanese.txt</filename>
            <type>text/plain</type>
            <size>2277</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3NDcwMikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE0LTEwLTE0ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIxNjUz
NTYpOiBJc3N1ZXMgd2l0aCBKYXBhbmVzZSB0ZXh0IGlucHV0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzc3MTkKKyAgICAgICAgcmRhcjovL3Byb2Js
ZW0vMTg0MzE5NTIKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMTg0ODM3NDEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDogKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ2hhbmdlU2VsZWN0aW9uKToKKyAg
ICAgICAgSW4gc3luYyBjb2RlIHBhdGgsIGVuc3VyZSBjb25zaXN0ZW50IG1lc3NhZ2UgZGVsaXZl
cnkgb3JkZXIgYnkgYWRkaW5nCisgICAgICAgIGEgRGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0
aW5nRm9yU3luY1JlcGx5IGZsYWcuIFRoaXMgd2F5LCBkZWxheWVkCisgICAgICAgIEVkaXRvclN0
YXRlQ2hhbmdlZCBtZXNzYWdlcyB3b24ndCBjb25mdXNlIFVJIHByb2Nlc3MuCisKIDIwMTQtMTAt
MTQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgaXM8Pigp
IC8gZG93bmNhc3Q8PigpIGZvciBSZW5kZXJJbWFnZQpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMTc0NjU0KQorKysgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MzE3LDcgKzQzMTcsNyBAQCB2b2lkIFdlYlBhZ2U6OmNhbmNlbENvbXBvc2l0aW9uKCkK
IAogdm9pZCBXZWJQYWdlOjpkaWRDaGFuZ2VTZWxlY3Rpb24oKQogewotI2lmIChQTEFURk9STShN
QUMpICYmIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkpCisjaWYgUExBVEZPUk0oTUFDKSAm
JiBVU0UoQVNZTkNfTlNURVhUSU5QVVRDTElFTlQpCiAgICAgRnJhbWUmIGZyYW1lID0gbV9wYWdl
LT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKICAgICAvLyBBYmFuZG9u
IHRoZSBjdXJyZW50IGlubGluZSBpbnB1dCBzZXNzaW9uIGlmIHNlbGVjdGlvbiBjaGFuZ2VkIGZv
ciBhbnkgb3RoZXIgcmVhc29uIGJ1dCBhbiBpbnB1dCBtZXRob2QgZGlyZWN0IGFjdGlvbi4KICAg
ICAvLyBGSVhNRTogTWFueSBjaGFuZ2VzIHRoYXQgYWZmZWN0IGNvbXBvc2l0aW9uIG5vZGUgZG8g
bm90IGdvIHRocm91Z2ggZGlkQ2hhbmdlU2VsZWN0aW9uKCkuIFdlIG5lZWQgdG8gZG8gc29tZXRo
aW5nIHdoZW4gRE9NIG1hbmlwdWxhdGlvbiBhZmZlY3RzIHRoZSBjb21wb3NpdGlvbiwgYmVjYXVz
ZSBvdGhlcndpc2UgaW5wdXQgbWV0aG9kJ3MgaWRlYSBhYm91dCBpdCB3aWxsIGJlIGRpZmZlcmVu
dCBmcm9tIEVkaXRvcidzLgpAQCAtNDMyNiw4ICs0MzI2LDEwIEBAIHZvaWQgV2ViUGFnZTo6ZGlk
Q2hhbmdlU2VsZWN0aW9uKCkKICAgICAgICAgZnJhbWUuZWRpdG9yKCkuY2FuY2VsQ29tcG9zaXRp
b24oKTsKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDb21wb3NpdGlvbldh
c0NhbmNlbGVkKGVkaXRvclN0YXRlKCkpKTsKICAgICB9IGVsc2UKLSNlbmRpZgogICAgICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkVkaXRvclN0YXRlQ2hhbmdlZChlZGl0b3JTdGF0
ZSgpKSk7CisjZWxzZQorICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RWRpdG9yU3Rh
dGVDaGFuZ2VkKGVkaXRvclN0YXRlKCkpLCBwYWdlSUQoKSwgSVBDOjpEaXNwYXRjaE1lc3NhZ2VF
dmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOworI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1Mp
CiAgICAgbV9kcmF3aW5nQXJlYS0+c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsK
</data>
<flag name="review"
          id="264570"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>