Commit 9195b0a9 authored by Changwan Ryu's avatar Changwan Ryu Committed by Commit Bot

Expose onCheckIsTextEditor correctly through WebView object

View#onCheckIsTextEditor tells the framework whether the view object can
edit text or not.

We need to do plumbing work to ensure that WebView#onCheckIsTextEditor()
returns a correct value. This is a chromium side change.

Bug: 819420, b/74199870
Change-Id: Ifd93421b855f346d820af4d221863ce83b2e79e5
Reviewed-on: https://chromium-review.googlesource.com/952217
Commit-Queue: Changwan Ryu <changwan@chromium.org>
Reviewed-by: default avatarBo <boliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541296}
parent afed9717
...@@ -1516,7 +1516,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -1516,7 +1516,7 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
@Override @Override
public TextClassifier getTextClassifier() { public TextClassifier getTextClassifier() {
return (TextClassifier) mAwContents.getTextClassifier(); return mAwContents.getTextClassifier();
} }
@Override @Override
...@@ -2136,6 +2136,23 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate ...@@ -2136,6 +2136,23 @@ class WebViewChromium implements WebViewProvider, WebViewProvider.ScrollDelegate
mAwContents.onFinishTemporaryDetach(); mAwContents.onFinishTemporaryDetach();
} }
// TODO(changwan): override WebViewProvider.ViewDelegate method once the framework change has
// rolled in.
// (not called in O-MR1 and below)
// @Override
public boolean onCheckIsTextEditor() {
mFactory.startYourEngines(false);
if (checkNeedsPost()) {
return mFactory.runOnUiThreadBlocking(new Callable<Boolean>() {
@Override
public Boolean call() {
return onCheckIsTextEditor();
}
});
}
return mAwContents.onCheckIsTextEditor();
}
// WebViewProvider.ScrollDelegate implementation ---------------------------------------------- // WebViewProvider.ScrollDelegate implementation ----------------------------------------------
@Override @Override
......
...@@ -1965,6 +1965,13 @@ public class AwContents implements SmartClipProvider { ...@@ -1965,6 +1965,13 @@ public class AwContents implements SmartClipProvider {
mAwViewMethods.computeScroll(); mAwViewMethods.computeScroll();
} }
/**
* @see View#onCheckIsTextEditor()
*/
public boolean onCheckIsTextEditor() {
return mAwViewMethods.onCheckIsTextEditor();
}
/** /**
* @see android.webkit.WebView#stopLoading() * @see android.webkit.WebView#stopLoading()
*/ */
...@@ -3571,6 +3578,13 @@ public class AwContents implements SmartClipProvider { ...@@ -3571,6 +3578,13 @@ public class AwContents implements SmartClipProvider {
nativeOnComputeScroll(mNativeAwContents, AnimationUtils.currentAnimationTimeMillis()); nativeOnComputeScroll(mNativeAwContents, AnimationUtils.currentAnimationTimeMillis());
} }
@Override
public boolean onCheckIsTextEditor() {
return isDestroyedOrNoOperation(NO_WARN)
? false
: ImeAdapter.fromWebContents(mWebContents).onCheckIsTextEditor();
}
@Override @Override
public AccessibilityNodeProvider getAccessibilityNodeProvider() { public AccessibilityNodeProvider getAccessibilityNodeProvider() {
return isDestroyedOrNoOperation(WARN) return isDestroyedOrNoOperation(WARN)
......
...@@ -162,6 +162,11 @@ interface AwViewMethods { ...@@ -162,6 +162,11 @@ interface AwViewMethods {
*/ */
void computeScroll(); void computeScroll();
/**
* @see android.view.View#onCheckIsTextEditor
*/
boolean onCheckIsTextEditor();
/** /**
* @see android.view.View#getAccessibilityNodeProvider * @see android.view.View#getAccessibilityNodeProvider
*/ */
......
...@@ -176,6 +176,11 @@ class NullAwViewMethods implements AwViewMethods { ...@@ -176,6 +176,11 @@ class NullAwViewMethods implements AwViewMethods {
// Intentional no-op. // Intentional no-op.
} }
@Override
public boolean onCheckIsTextEditor() {
return false;
}
@Override @Override
public AccessibilityNodeProvider getAccessibilityNodeProvider() { public AccessibilityNodeProvider getAccessibilityNodeProvider() {
return null; return null;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment