Bug 137719 - REGRESSION (r165356): Issues with Japanese text input
Summary: REGRESSION (r165356): Issues with Japanese text input
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit2 (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Alexey Proskuryakov
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2014-10-14 14:41 PDT by Alexey Proskuryakov
Modified: 2014-12-09 14:21 PST (History)
2 users (show)

See Also:


Attachments
proposed fix (2.22 KB, patch)
2014-10-14 14:56 PDT, Alexey Proskuryakov
darin: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Proskuryakov 2014-10-14 14:41:09 PDT
This affects sync text input code path.

1. Kotoeri sometimes doesn'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's not sufficient for UI side heuristics to work well.

rdar://problem/18431952
rdar://problem/18483741
Comment 1 Alexey Proskuryakov 2014-10-14 14:56:33 PDT
Created attachment 239827 [details]
proposed fix
Comment 2 Darin Adler 2014-10-14 15:44:31 PDT
Comment on attachment 239827 [details]
proposed fix

Any way to regression test this?
Comment 3 Alexey Proskuryakov 2014-10-14 16:27:00 PDT
It'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 <http://trac.webkit.org/r174708>.