Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(602)

Issue 1998783002: [IME] Fire 'compositionend' after 'textInput' event and all other DOM updates (Closed)

Created:
4 years, 7 months ago by chongz
Modified:
4 years, 7 months ago
CC:
blink-reviews, chromium-reviews
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[IME] Fire 'compositionend' after 'textInput' event and all other DOM updates Before CL Blink/Webkit fires 'textInput' after 'compositionend', and 'textInput's default handler will modify DOM. (violates spec) This CL cleans up code about events during composition, and only fire 'compositionend' event after 'textInput' event and all other DOM updates. This CL follows option b) in BUG=41945 Potential interop issue: Safari and Edge still fires 'textInput' after 'compositionend', so it might affect websites that gets IME input using shadow elements. Alternative Approach (option c in the bug description): Preserve the order but don't modify DOM in 'textInput' default handler. (matches Edge, but will affect websites with UA check) PS: There is another issue about Chinese IBus IME on Linux where the order seems non-fixable, will create a separate issue. SPEC=https://w3c.github.io/uievents/#compositionend BUG=41945 Committed: https://crrev.com/afce9d93e76f2ff81baaa088a4ea25f67d1a76b3 Cr-Commit-Position: refs/heads/master@{#395930}

Patch Set 1 #

Total comments: 9

Patch Set 2 : yosin's review #

Patch Set 3 : Add DCHECK for empty text, fix ImeTest.java #

Messages

Total messages: 21 (12 generated)
chongz
yosin@ can you take a look at this CL please? Thanks! Basically what I did ...
4 years, 7 months ago (2016-05-19 21:44:19 UTC) #7
yosin_UTC9
https://codereview.chromium.org/1998783002/diff/1/third_party/WebKit/Source/core/editing/InputMethodController.cpp File third_party/WebKit/Source/core/editing/InputMethodController.cpp (right): https://codereview.chromium.org/1998783002/diff/1/third_party/WebKit/Source/core/editing/InputMethodController.cpp#newcode77 third_party/WebKit/Source/core/editing/InputMethodController.cpp:77: CHECK(compositionType == TypingCommand::TextCompositionType::TextCompositionUpdate || compositionType == TypingCommand::TextCompositionType::TextCompositionConfirm); Please add ...
4 years, 7 months ago (2016-05-20 07:58:12 UTC) #8
chongz
yosin@ I've updated CL based on your comments, PTAL, thanks! Also I'm not sure how ...
4 years, 7 months ago (2016-05-20 17:44:48 UTC) #9
yosin_UTC9
lgtm https://codereview.chromium.org/1998783002/diff/1/third_party/WebKit/Source/core/editing/InputMethodController.cpp File third_party/WebKit/Source/core/editing/InputMethodController.cpp (right): https://codereview.chromium.org/1998783002/diff/1/third_party/WebKit/Source/core/editing/InputMethodController.cpp#newcode357 third_party/WebKit/Source/core/editing/InputMethodController.cpp:357: CHECK(!text.isEmpty()); On 2016/05/20 at 17:44:48, chongz wrote: > ...
4 years, 7 months ago (2016-05-23 04:57:28 UTC) #10
chongz
changwan@ can you take a look at ImeTest.java please? Thanks!
4 years, 7 months ago (2016-05-25 05:41:30 UTC) #13
Changwan Ryu
Imetest.java lgtm
4 years, 7 months ago (2016-05-25 05:55:27 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1998783002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1998783002/60001
4 years, 7 months ago (2016-05-25 13:59:27 UTC) #17
commit-bot: I haz the power
Committed patchset #3 (id:60001)
4 years, 7 months ago (2016-05-25 18:03:08 UTC) #19
commit-bot: I haz the power
4 years, 7 months ago (2016-05-25 18:04:54 UTC) #21
Message was sent while issue was closed.
Patchset 3 (id:??) landed as
https://crrev.com/afce9d93e76f2ff81baaa088a4ea25f67d1a76b3
Cr-Commit-Position: refs/heads/master@{#395930}

Powered by Google App Engine
This is Rietveld 408576698