New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 692387 link

Starred by 3 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 3
Type: Feature



Sign in to add a comment

updating Input field value by script should reset IME composition.

Reported by codedef...@gmail.com, Feb 15 2017

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36

Steps to reproduce the problem:
1. Open up https://jsfiddle.net/8v9usxts/6/
2. Switch to Japanse IME
3. Type 11 inside the input

What is the expected behavior?
11 should be displayed inside the input

What went wrong?
111 is displayed instead

Did this work before? N/A 

Chrome version: 56.0.2924.87  Channel: stable
OS Version: OS X 10.12.3
Flash Version: Shockwave Flash 24.0 r0

Tested and are working fine on Firefox and Safari

 

Comment 1 by rsesek@chromium.org, Feb 15 2017

Components: -UI Blink>Editing>IME
Cc: kavvaru@chromium.org
Labels: -Type-Bug -Pri-2 M-56 OS-Linux OS-Windows Pri-1 Type-Bug-Regression
Status: Untriaged (was: Unconfirmed)
Able to reproduce the issue on windows 7, Linux Ubuntu 14.04 and Mac 10.12.2 using chrome version 56.0.2924.87 and canary 58.0.3011.0.

This is regression issue broken in M56.Please find the bisect information as below
Narrow Bisect::
Good :: 56.0.2924.26 --  (build revision   433059)
Bad:: 56.0.2924.27  -- (build revsision  433059)

Unable to provide tool bisect as the good and bad builds are from branch builds.hence providing manual CL from the omahaproxy

Change Log::
https://chromium.googlesource.com/chromium/src/+log/56.0.2924.26..56.0.2924.27?pretty=fuller&n=10000

Unable to find the exact suspect from the above CL.Could any one from dev team please look into this issue.

Thanks,
Owner: yoichio@chromium.org
Status: Assigned (was: Untriaged)
Maybe this:
https://chromium.googlesource.com/chromium/src/+/57e20116f082592d8f4b101e9c76a70911982455

You can reproduce following simple html:

<input value="keep inputting here with IME" id="input"/>
<script>
setInterval(function() {
    input.value = "foo";
}, 2000);
</script>

The IME state shuould be reset.
Summary: updating Input field value by script should reset the Japanse IME popup (was: Input field value update should reset the Japanse IME popup)
Summary: updating Input field value by script should reset IME composition. (was: updating Input field value by script should reset the Japanse IME popup)
Owner: changwan@chromium.org
We may need to call TextInputManager::ImeCancelComposition from the renderer process.
Assigned to changwan

Comment 7 by shie...@kkvesper.jp, Apr 14 2017

Hi Chrome team, whats the status of this? This is a serious user input regression bug which causes data entry errors for our customers.
Cc: yosin@chromium.org aelias@chromium.org
Labels: M-59
Targeting M-59. I'm on it.
Cc: changwan@chromium.org
Owner: yoichio@chromium.org
Hmm... Actually, I think this was caused by SetComposition()'s return value change caused by https://codereview.chromium.org/2529803002, which is in the regression range. As long as SetComposition() returns false, we call ImeCancelComposition to the browser in RenderWidget::OnImeSetComposition().
I'm not the original author of the CL although I merged it.

yoichio@, do you have a cycle to handle this? I have other issues to target M59.

Reverting my suspicious CL(https://codereview.chromium.org/2529803002) didn't fix this
 though we can't revert the CL which fixes other P1.

Anyway, I investigate.
Though Android IME apps reset its state if selection changes,
 many desktop IMEs don't so we need to care.
Cc: yoichio@chromium.org
Owner: changwan@chromium.org
Although it may seem subtle, there are two different issues being discussed here:

1) https://jsfiddle.net/8v9usxts/6/
which I suspected was caused by return value change of SetComposition()

2) The example in #3.
whose support I intentionally removed in https://codereview.chromium.org/2370663002/
and being tracked in issue 681519.

And I think that's why the bisect ranges from #0 and #11 are different.

In any case, I need to polish up the composition cancellation workflow for issue 681519, so I'll look into this more. Thanks.

We should revive IME reset callback from Blink like that:
https://codereview.chromium.org/2828093003/
It's hard to agree that #14 is the right way to go because it's

1) Not complete: partial change in composition does not necessarily restart input.
2) Not sound: selection outside composition is technically valid on Android.
(see https://developer.android.com/reference/android/view/inputmethod/InputConnection.html#setComposingText(java.lang.CharSequence, int))

I'm thinking of observing composition range, while scoping out IME initiated changes.

Comment 16 by yosin@chromium.org, Apr 27 2017

Labels: -M-59

Comment 17 by yosin@chromium.org, Apr 27 2017

Labels: -M-56
Hmm.. I found a similar issue for Android, although it's an artificial one.

If you try to capitalize alphabets for the composition, Samsung keyboard reacts to the change somewhat terribly. And Google Keyboard does the same if you type fast.

http://jsbin.com/quvojawufi/edit?html,output

Comment 19 by yosin@chromium.org, May 11 2017

Labels: M-60

Comment 20 by yosin@chromium.org, May 25 2017

Labels: -Pri-1 -Type-Bug-Regression -M-60 Pri-3 Type-Feature
Lower to Pri-3, since a sample in #c1 should be done in composition event handler
instead of keyup event.

We should discuss this with w3c editing-tf to determine right behavior.

Sign in to add a comment