Revert "Fix problem with accents caused by race condition."

This reverts commit b9ef84152bce335b4814175204744ea2d5b148b4, which
introduced a new issue with certain software IMEs in fields with
autocomplete="off". The accent issue is a longstanding bug and previous
WebView releases already contained it, so reverting this change does not
introduce a regression.

Bug: 19363073
diff --git a/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java b/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java
index 972c082..5b0f213 100644
--- a/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java
+++ b/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java
@@ -389,14 +389,6 @@
             return mImeAdapter.translateAndSendNativeEvents(event, NO_ACCENT);
         }
 
-        // Some keys we just want to pass events straight through.  This allows
-        // proper "repeating key" behavior with physical keyboards.
-        int eventKeyCode = event.getKeyCode();
-        if (eventKeyCode == KeyEvent.KEYCODE_DEL || eventKeyCode == KeyEvent.KEYCODE_FORWARD_DEL) {
-            mPendingAccent = 0;
-            return mImeAdapter.translateAndSendNativeEvents(event, NO_ACCENT);
-        }
-
         int unicodeChar = event.getUnicodeChar();
 
         // If this is a key-up, and backspace/del or if the key has a character representation,
@@ -435,6 +427,7 @@
                 return true;
             }
         }
+        mImeAdapter.translateAndSendNativeEvents(event, mPendingAccent);
 
         // Physical keyboards also have their events come through here though not
         // by BaseInputConnection.  In order to support "accent" key sequences
@@ -445,11 +438,9 @@
         // Copy class variable to local because class version may get indirectly
         // cleared by the deleteSurroundingText() call below.
         int pendingAccent = mPendingAccent;
-        int nextAccent = mPendingAccent;
 
         if ((unicodeChar & KeyCharacterMap.COMBINING_ACCENT) != 0) {
-            pendingAccent = NO_ACCENT;
-            nextAccent = unicodeChar & KeyCharacterMap.COMBINING_ACCENT_MASK;
+            pendingAccent = unicodeChar & KeyCharacterMap.COMBINING_ACCENT_MASK;
         } else if (pendingAccent != NO_ACCENT) {
             if (event.getAction() == KeyEvent.ACTION_DOWN) {
                 int combined = KeyEvent.getDeadChar(pendingAccent, unicodeChar);
@@ -463,18 +454,16 @@
                     // Previous accent doesn't combine with this character
                     // so assume both are completely independent.
                     pendingAccent = NO_ACCENT;
-                    nextAccent = NO_ACCENT;
                 }
             }
 
             if (event.getAction() == KeyEvent.ACTION_UP) {
                 // Forget accent after release of key being accented.
-                nextAccent = NO_ACCENT;
+                pendingAccent = NO_ACCENT;
             }
         }
 
-        mImeAdapter.translateAndSendNativeEvents(event, pendingAccent);
-        mPendingAccent = nextAccent;
+        mPendingAccent = pendingAccent;
         return true;
     }
 
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..398ba03 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
@@ -623,6 +623,7 @@
 
         // O  (accented key)
         dispatchKeyEvent(mConnection, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_O));
+        assertUpdateStateCall(mConnection, 1000);
         assertEquals("hi", mConnection.getTextBeforeCursor(9, 0));
         dispatchKeyEvent(mConnection, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_O));
         assertEquals("hiô", mConnection.getTextBeforeCursor(9, 0));