| Index: content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java
|
| 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 f7a58918b3430f378ce63b4fedd28a9195fa40cf..e45a463f20fb4104ff26b81f79b3d844da4fd8d2 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
|
| @@ -74,15 +74,22 @@ public class ImeAdapter {
|
| }
|
|
|
| private class DelayedDismissInput implements Runnable {
|
| - private final long mNativeImeAdapter;
|
| + private long mNativeImeAdapter;
|
|
|
| DelayedDismissInput(long nativeImeAdapter) {
|
| mNativeImeAdapter = nativeImeAdapter;
|
| }
|
|
|
| + // http://crbug.com/413744
|
| + void detach() {
|
| + mNativeImeAdapter = 0;
|
| + }
|
| +
|
| @Override
|
| public void run() {
|
| - attach(mNativeImeAdapter, sTextInputTypeNone, sTextInputFlagNone);
|
| + if (mNativeImeAdapter != 0) {
|
| + attach(mNativeImeAdapter, sTextInputTypeNone, sTextInputFlagNone);
|
| + }
|
| dismissInput(true);
|
| }
|
| }
|
| @@ -693,7 +700,10 @@ public class ImeAdapter {
|
|
|
| @CalledByNative
|
| void detach() {
|
| - if (mDismissInput != null) mHandler.removeCallbacks(mDismissInput);
|
| + if (mDismissInput != null) {
|
| + mHandler.removeCallbacks(mDismissInput);
|
| + mDismissInput.detach();
|
| + }
|
| mNativeImeAdapterAndroid = 0;
|
| mTextInputType = 0;
|
| }
|
|
|