Revert of [Clank IME] Make keyCode detection sensitive to autocomplete=on|off.
Reason for revert:
Probably the cause of a bug where characters are not properly deleted when
using a Samsung keyboard.
Original issue's description:
> [Clank IME] Make keyCode detection sensitive to autocomplete=on|off.
>
> Fixing Stable blocker for Clank IME.
>
> The old keyCode detection heuristics would emit KEYCODE_DEL when the last
> character of composition is deleted by backspace. This causes the bug where
> the composition gets reset (Japanese keyboard). We fix the the problem by
> emitting keyCode 229 when composition is updated, if autocomplete=on. If
> autocomplete=off then we can can emit the keyCode, provided that we have
> single-character commits. Due to unfortunate collision with
> https://codereview.chromium.org/834133004 , we have to to define constant
> textInputFlagAutocompleteOff for compatibility with trunk and Beta.
>
> The companion WebKit CL is https://codereview.chromium.org/797243003/
>
> BUG=422685
> Committed: https://crrev.com/1a8a145d5ea8289f1e527c3de95f233e4a659cde
> Cr-Commit-Position: refs/heads/master@{#311245}
Bug: 19363073
Change-Id: I25a945f797ffdb5959fd277ad8f86f149d79f8c1
diff --git a/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java b/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java
index a9d2d54..5082515 100644
--- a/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java
+++ b/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java
@@ -446,27 +446,16 @@
keyCode = -1;
}
- // If this is a single-character commit with no previous composition, then treat it as
- // a native KeyDown/KeyUp pair with no composition rather than a synthetic pair with
+ // If this is a commit with no previous composition, then treat it as a native
+ // KeyDown/KeyUp pair with no composition rather than a synthetic pair with
// composition below.
- if (keyCode > 0 && isCommit && mLastComposeText == null && textStr.length() == 1) {
+ if (keyCode > 0 && isCommit && mLastComposeText == null) {
mLastSyntheticKeyCode = keyCode;
return translateAndSendNativeEvents(keyEvent, 0)
&& translateAndSendNativeEvents(
KeyEvent.changeAction(keyEvent, KeyEvent.ACTION_UP), 0);
}
- // FIXME: Use WebTextInputFlags.AutocompleteOff. We need this hack to enable merge into
- // into Beta to fix http://crbug.com/422685 .
- final int textInputFlagAutocompleteOff = 1 << 1;
-
- // If we do not have autocomplete=off, then always send compose events rather than a
- // guessed keyCode. This addresses http://crbug.com/422685 .
- if ((mTextInputFlags & textInputFlagAutocompleteOff) == 0) {
- keyCode = COMPOSITION_KEY_CODE;
- modifiers = 0;
- }
-
// When typing, there is no issue sending KeyDown and KeyUp events around the
// composition event because those key events do nothing (other than call JS
// handlers). Typing does not cause changes outside of a KeyPress event which
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java b/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java
index a43001b..57cf958 100644
--- a/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java
+++ b/content/public/android/javatests/src/org/chromium/content/browser/input/ImeTest.java
@@ -47,7 +47,6 @@
"<br/><textarea id=\"textarea\" rows=\"4\" cols=\"20\"></textarea>" +
"<br/><p><span id=\"plain_text\">This is Plain Text One</span></p>" +
"</form></body></html>");
- private static final int COMPOSITION_KEY_CODE = 229;
private TestAdapterInputConnection mConnection;
private ImeAdapter mImeAdapter;
@@ -701,7 +700,7 @@
// H
expectUpdateStateCall(mConnection);
setComposingText(mConnection, "h", 1);
- assertEquals(COMPOSITION_KEY_CODE, mImeAdapter.mLastSyntheticKeyCode);
+ assertEquals(KeyEvent.KEYCODE_H, mImeAdapter.mLastSyntheticKeyCode);
// Simulate switch of input fields.
finishComposingText(mConnection);
@@ -709,7 +708,7 @@
// H
expectUpdateStateCall(mConnection);
setComposingText(mConnection, "h", 1);
- assertEquals(COMPOSITION_KEY_CODE, mImeAdapter.mLastSyntheticKeyCode);
+ assertEquals(KeyEvent.KEYCODE_H, mImeAdapter.mLastSyntheticKeyCode);
}
@SmallTest