Index: content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
index 57ab809bd675aee8f024ece1fc4140a0b09a2c2b..8aa15ab7ba5d47b92cd48f04eb10c44db05e29f9 100644 |
--- a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
@@ -59,10 +59,11 @@ import org.chromium.content.browser.accessibility.BrowserAccessibilityManager; |
import org.chromium.content.browser.accessibility.captioning.CaptioningBridgeFactory; |
import org.chromium.content.browser.accessibility.captioning.SystemCaptioningBridge; |
import org.chromium.content.browser.accessibility.captioning.TextTrackSettings; |
-import org.chromium.content.browser.input.AdapterInputConnection; |
+import org.chromium.content.browser.input.ChromiumBaseInputConnection; |
+import org.chromium.content.browser.input.ChromiumBaseInputConnectionFactory; |
import org.chromium.content.browser.input.GamepadList; |
import org.chromium.content.browser.input.ImeAdapter; |
-import org.chromium.content.browser.input.ImeAdapter.AdapterInputConnectionFactory; |
+import org.chromium.content.browser.input.InputConnectionHandlerFactory; |
import org.chromium.content.browser.input.InputMethodManagerWrapper; |
import org.chromium.content.browser.input.JoystickScrollProvider; |
import org.chromium.content.browser.input.PastePopupMenu; |
@@ -196,7 +197,7 @@ public class ContentViewCore implements |
* List of anchor views stored in the order in which they were acquired mapped |
* to their position. |
*/ |
- private Map<View, Position> mAnchorViews = new LinkedHashMap<View, Position>(); |
+ private final Map<View, Position> mAnchorViews = new LinkedHashMap<View, Position>(); |
ContentViewAndroidDelegate(ViewGroup containerView, RenderCoordinates renderCoordinates) { |
mRenderCoordinates = renderCoordinates; |
@@ -419,6 +420,11 @@ public class ContentViewCore implements |
* @see View#awakenScrollBars(int, boolean) |
*/ |
boolean super_awakenScrollBars(int startDelay, boolean invalidate); |
+ |
+ /** |
+ * @see View#getHandler() |
+ */ |
+ Handler super_getHandler(); |
} |
/** |
@@ -490,8 +496,8 @@ public class ContentViewCore implements |
// Only valid when focused on a text / password field. |
private ImeAdapter mImeAdapter; |
- private ImeAdapter.AdapterInputConnectionFactory mAdapterInputConnectionFactory; |
- private AdapterInputConnection mInputConnection; |
+ private ChromiumBaseInputConnectionFactory mInputConnectionFactory; |
+ private ChromiumBaseInputConnection mInputConnection; |
private InputMethodManagerWrapper mInputMethodManagerWrapper; |
// Lazily created paste popup menu, triggered either via long press in an |
@@ -585,7 +591,7 @@ public class ContentViewCore implements |
private int mPotentiallyActiveFlingCount; |
private SmartClipDataListener mSmartClipDataListener = null; |
- private ObserverList<ContainerViewObserver> mContainerViewObservers; |
+ private final ObserverList<ContainerViewObserver> mContainerViewObservers; |
// This holds the state of editable text (e.g. contents of <input>, contenteditable) of |
// a focused element. |
@@ -639,7 +645,7 @@ public class ContentViewCore implements |
public ContentViewCore(Context context) { |
mContext = context; |
- mAdapterInputConnectionFactory = new AdapterInputConnectionFactory(); |
+ mInputConnectionFactory = new ChromiumBaseInputConnectionFactory(); |
mInputMethodManagerWrapper = new InputMethodManagerWrapper(mContext); |
mRenderCoordinates = new RenderCoordinates(); |
@@ -738,8 +744,8 @@ public class ContentViewCore implements |
} |
@VisibleForTesting |
- public void setAdapterInputConnectionFactory(AdapterInputConnectionFactory factory) { |
- mAdapterInputConnectionFactory = factory; |
+ public void setInputConnectionFactory(ChromiumBaseInputConnectionFactory factory) { |
+ mInputConnectionFactory = factory; |
} |
@VisibleForTesting |
@@ -748,7 +754,7 @@ public class ContentViewCore implements |
} |
@VisibleForTesting |
- public AdapterInputConnection getInputConnectionForTest() { |
+ public ChromiumBaseInputConnection getInputConnectionForTest() { |
return mInputConnection; |
} |
@@ -1552,13 +1558,8 @@ public class ContentViewCore implements |
// enter fullscreen mode. |
outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_FULLSCREEN; |
} |
- mInputConnection = mAdapterInputConnectionFactory.get(mContainerView, mImeAdapter, |
- mEditable, outAttrs); |
- return mInputConnection; |
- } |
- |
- @VisibleForTesting |
- public AdapterInputConnection getAdapterInputConnectionForTest() { |
+ mInputConnection = |
+ mInputConnectionFactory.get(mContainerView, mImeAdapter, mEditable, outAttrs); |
return mInputConnection; |
} |
@@ -2393,8 +2394,11 @@ public class ContentViewCore implements |
nativeImeAdapterAndroid, textInputType, textInputFlags, showImeIfNeeded); |
if (mInputConnection != null) { |
- mInputConnection.updateState(text, selectionStart, selectionEnd, compositionStart, |
- compositionEnd, isNonImeChange); |
+ // TODO |
+ if (mImeAdapter.mInputConnection != null) { |
+ mImeAdapter.mInputConnection.updateState(text, selectionStart, selectionEnd, |
+ compositionStart, compositionEnd, isNonImeChange); |
+ } |
} |
if (mActionMode != null) mActionMode.invalidate(); |
@@ -3206,6 +3210,10 @@ public class ContentViewCore implements |
mContextualSearchClient = contextualSearchClient; |
} |
+ public Handler getHandler() { |
+ return InputConnectionHandlerFactory.getHandler(mContainerViewInternals.super_getHandler()); |
+ } |
+ |
private native long nativeInit(WebContents webContents, ViewAndroidDelegate viewAndroidDelegate, |
long windowAndroidPtr, HashSet<Object> retainedObjectSet); |
private static native ContentViewCore nativeFromWebContentsAndroid(WebContents webContents); |