Bug 139504

Summary: REGRESSION (Async Text Input): Text input method state is not reset when reloading a page
Product: WebKit Reporter: Alexey Proskuryakov <ap>
Component: WebKit2Assignee: Alexey Proskuryakov <ap>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue
Priority: P2 Keywords: InRadar, Regression
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
proposed fix enrica: review+

Description Alexey Proskuryakov 2014-12-10 12:49:32 PST
* STEPS TO REPRODUCE
> SETUP
1. Launch System Preferences
2. Select "Keyboard" pref pane
3. Select "Input Sources" tab
4. Click "+" button to add an input source
5. Select Japanese and click "Add" button
> REPRODUCE
1. Launch Safari
2. Navigate to a webpage with fields (IE: https://accounts.google.com/Signup)
3. Set input method to Hiragana
4. Type in a field (IE: jaaka which produces じゃあか) and do not select a prediction
5. Refresh (⌘R) or click the refresh button
6. Click in any field and type a single character

* EXPECTED RESULTS
- Typed character should be entered in field

* ACTUAL RESULTS
- Typed character is appended to the end of the previously typed string


We lost the code to call -discardMarkedText in async text input code path (and before that, some of it got lost in <http://trac.webkit.org/changeset/150291>). That was intentional, but of course we do need to call it in this case, and also on navigation.

rdar://problem/19034674
Comment 1 Alexey Proskuryakov 2014-12-10 12:59:56 PST
Created attachment 243060 [details]
proposed fix
Comment 2 Alexey Proskuryakov 2014-12-11 09:23:10 PST
Committed <http://trac.webkit.org/r177152>.