Merge "Remove GET_NATIVE_VIEW from WebViewCore to reduce JNI."
diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java
index cb0c7a1b..14eb455 100644
--- a/core/java/android/webkit/WebViewCore.java
+++ b/core/java/android/webkit/WebViewCore.java
@@ -380,7 +380,7 @@
new WebStorage.QuotaUpdater() {
@Override
public void updateQuota(long quota) {
- nativeSetNewStorageLimit(quota);
+ nativeSetNewStorageLimit(mNativeClass, quota);
}
});
}
@@ -395,7 +395,7 @@
new WebStorage.QuotaUpdater() {
@Override
public void updateQuota(long quota) {
- nativeSetNewStorageLimit(quota);
+ nativeSetNewStorageLimit(mNativeClass, quota);
}
});
}
@@ -501,7 +501,7 @@
* Clear the picture set. To be called only on the WebCore thread.
*/
/* package */ void clearContent() {
- nativeClearContent();
+ nativeClearContent(mNativeClass);
}
//-------------------------------------------------------------------------
@@ -513,15 +513,16 @@
/**
* Empty the picture set.
*/
- private native void nativeClearContent();
+ private native void nativeClearContent(int nativeClass);
- private native void nativeContentInvalidateAll();
+ private native void nativeContentInvalidateAll(int nativeClass);
/**
* Redraw a portion of the picture set. The Point wh returns the
* width and height of the overall picture.
*/
- private native int nativeRecordContent(Region invalRegion, Point wh);
+ private native int nativeRecordContent(int nativeClass, Region invalRegion,
+ Point wh);
/**
* Update the layers' content
@@ -533,25 +534,27 @@
*/
private native void nativeNotifyAnimationStarted(int nativeClass);
- private native boolean nativeFocusBoundsChanged();
+ private native boolean nativeFocusBoundsChanged(int nativeClass);
/**
* Splits slow parts of the picture set. Called from the webkit thread after
* WebView.nativeDraw() returns content to be split.
*/
- private native void nativeSplitContent(int content);
+ private native void nativeSplitContent(int nativeClass, int content);
- private native boolean nativeKey(int keyCode, int unichar,
- int repeatCount, boolean isShift, boolean isAlt, boolean isSym,
- boolean isDown);
+ private native boolean nativeKey(int nativeClass, int keyCode,
+ int unichar, int repeatCount, boolean isShift, boolean isAlt,
+ boolean isSym, boolean isDown);
- private native void nativeClick(int framePtr, int nodePtr, boolean fake);
+ private native void nativeClick(int nativeClass, int framePtr, int nodePtr,
+ boolean fake);
- private native void nativeSendListBoxChoices(boolean[] choices, int size);
+ private native void nativeSendListBoxChoices(int nativeClass,
+ boolean[] choices, int size);
- private native void nativeSendListBoxChoice(int choice);
+ private native void nativeSendListBoxChoice(int nativeClass, int choice);
- private native void nativeCloseIdleConnections();
+ private native void nativeCloseIdleConnections(int nativeClass);
/* Tell webkit what its width and height are, for the purposes
of layout/line-breaking. These coordinates are in document space,
@@ -561,75 +564,84 @@
fixed size, textWrapWidth can be different from width with zooming.
should this be called nativeSetViewPortSize?
*/
- private native void nativeSetSize(int width, int height, int textWrapWidth,
- float scale, int screenWidth, int screenHeight, int anchorX,
- int anchorY, boolean ignoreHeight);
+ private native void nativeSetSize(int nativeClass, int width, int height,
+ int textWrapWidth, float scale, int screenWidth, int screenHeight,
+ int anchorX, int anchorY, boolean ignoreHeight);
- private native int nativeGetContentMinPrefWidth();
+ private native int nativeGetContentMinPrefWidth(int nativeClass);
// Start: functions that deal with text editing
private native void nativeReplaceTextfieldText(
- int oldStart, int oldEnd, String replace, int newStart, int newEnd,
- int textGeneration);
+ int nativeClass, int oldStart, int oldEnd, String replace,
+ int newStart, int newEnd, int textGeneration);
- private native void passToJs(int gen,
- String currentText, int keyCode, int keyValue, boolean down,
- boolean cap, boolean fn, boolean sym);
+ private native void passToJs(int nativeClass,
+ int gen, String currentText, int keyCode, int keyValue,
+ boolean down, boolean cap, boolean fn, boolean sym);
- private native void nativeSetFocusControllerActive(boolean active);
+ private native void nativeSetFocusControllerActive(int nativeClass,
+ boolean active);
- private native void nativeSaveDocumentState(int frame);
+ private native void nativeSaveDocumentState(int nativeClass, int frame);
- private native void nativeMoveFocus(int framePtr, int nodePointer);
- private native void nativeMoveMouse(int framePtr, int x, int y);
+ private native void nativeMoveFocus(int nativeClass, int framePtr,
+ int nodePointer);
+ private native void nativeMoveMouse(int nativeClass, int framePtr, int x,
+ int y);
- private native void nativeMoveMouseIfLatest(int moveGeneration,
- int framePtr, int x, int y);
+ private native void nativeMoveMouseIfLatest(int nativeClass,
+ int moveGeneration, int framePtr, int x, int y);
- private native String nativeRetrieveHref(int x, int y);
- private native String nativeRetrieveAnchorText(int x, int y);
- private native String nativeRetrieveImageSource(int x, int y);
- private native void nativeStopPaintingCaret();
- private native void nativeTouchUp(int touchGeneration,
- int framePtr, int nodePtr, int x, int y);
+ private native String nativeRetrieveHref(int nativeClass, int x, int y);
+ private native String nativeRetrieveAnchorText(int nativeClass,
+ int x, int y);
+ private native String nativeRetrieveImageSource(int nativeClass,
+ int x, int y);
+ private native void nativeStopPaintingCaret(int nativeClass);
+ private native void nativeTouchUp(int nativeClass,
+ int touchGeneration, int framePtr, int nodePtr, int x, int y);
- private native boolean nativeHandleTouchEvent(int action, int[] idArray,
- int[] xArray, int[] yArray, int count, int actionIndex, int metaState);
+ private native boolean nativeHandleTouchEvent(int nativeClass, int action,
+ int[] idArray, int[] xArray, int[] yArray, int count,
+ int actionIndex, int metaState);
- private native void nativeUpdateFrameCache();
+ private native void nativeUpdateFrameCache(int nativeClass);
- private native void nativeSetBackgroundColor(int color);
+ private native void nativeSetBackgroundColor(int nativeClass, int color);
- private native void nativeDumpDomTree(boolean useFile);
+ private native void nativeDumpDomTree(int nativeClass, boolean useFile);
- private native void nativeDumpRenderTree(boolean useFile);
+ private native void nativeDumpRenderTree(int nativeClass, boolean useFile);
- private native void nativeDumpNavTree();
+ private native void nativeDumpNavTree(int nativeClass);
- private native void nativeSetJsFlags(String flags);
+ private native void nativeSetJsFlags(int nativeClass, String flags);
/**
* Delete text from start to end in the focused textfield. If there is no
* focus, or if start == end, silently fail. If start and end are out of
* order, swap them.
- * @param start Beginning of selection to delete.
- * @param end End of selection to delete.
- * @param textGeneration Text generation number when delete was pressed.
+ * @param nativeClass Pointer to the C++ WebViewCore object mNativeClass
+ * @param start Beginning of selection to delete.
+ * @param end End of selection to delete.
+ * @param textGeneration Text generation number when delete was pressed.
*/
- private native void nativeDeleteSelection(int start, int end,
- int textGeneration);
+ private native void nativeDeleteSelection(int nativeClass, int start,
+ int end, int textGeneration);
/**
* Set the selection to (start, end) in the focused textfield. If start and
* end are out of order, swap them.
- * @param start Beginning of selection.
- * @param end End of selection.
+ * @param nativeClass Pointer to the C++ WebViewCore object mNativeClass
+ * @param start Beginning of selection.
+ * @param end End of selection.
*/
- private native void nativeSetSelection(int start, int end);
+ private native void nativeSetSelection(int nativeClass, int start, int end);
// Register a scheme to be treated as local scheme so that it can access
// local asset files for resources
- private native void nativeRegisterURLSchemeAsLocal(String scheme);
+ private native void nativeRegisterURLSchemeAsLocal(int nativeClass,
+ String scheme);
/*
* Inform webcore that the user has decided whether to allow or deny new
@@ -637,34 +649,39 @@
* the main thread should wake up now.
* @param limit Is the new quota for an origin or new app cache max size.
*/
- private native void nativeSetNewStorageLimit(long limit);
+ private native void nativeSetNewStorageLimit(int nativeClass, long limit);
/**
* Provide WebCore with a Geolocation permission state for the specified
* origin.
+ * @param nativeClass Pointer to the C++ WebViewCore object mNativeClass
* @param origin The origin for which Geolocation permissions are provided.
* @param allow Whether Geolocation permissions are allowed.
* @param remember Whether this decision should be remembered beyond the
* life of the current page.
*/
- private native void nativeGeolocationPermissionsProvide(String origin, boolean allow, boolean remember);
+ private native void nativeGeolocationPermissionsProvide(int nativeClass,
+ String origin, boolean allow, boolean remember);
/**
* Provide WebCore with the previously visted links from the history database
+ * @param nativeClass TODO
*/
- private native void nativeProvideVisitedHistory(String[] history);
+ private native void nativeProvideVisitedHistory(int nativeClass,
+ String[] history);
/**
* Modifies the current selection.
*
* Note: Accessibility support.
- *
+ * @param nativeClass Pointer to the C++ WebViewCore object mNativeClass
* @param direction The direction in which to alter the selection.
* @param granularity The granularity of the selection modification.
*
* @return The selection string.
*/
- private native String nativeModifySelection(int direction, int granularity);
+ private native String nativeModifySelection(int nativeClass, int direction,
+ int granularity);
// EventHub for processing messages
private final EventHub mEventHub;
@@ -1129,14 +1146,14 @@
break;
case REVEAL_SELECTION:
- nativeRevealSelection();
+ nativeRevealSelection(mNativeClass);
break;
case REQUEST_LABEL:
if (mWebView != null) {
int nodePointer = msg.arg2;
- String label = nativeRequestLabel(msg.arg1,
- nodePointer);
+ String label = nativeRequestLabel(mNativeClass,
+ msg.arg1, nodePointer);
if (label != null && label.length() > 0) {
Message.obtain(mWebView.mPrivateHandler,
WebView.RETURN_LABEL, nodePointer,
@@ -1146,7 +1163,7 @@
break;
case UPDATE_FRAME_CACHE_IF_LOADING:
- nativeUpdateFrameCacheIfLoading();
+ nativeUpdateFrameCacheIfLoading(mNativeClass);
break;
case SCROLL_TEXT_INPUT:
@@ -1156,7 +1173,7 @@
} else {
xPercent = ((Float) msg.obj).floatValue();
}
- nativeScrollFocusedTextInput(xPercent, msg.arg2);
+ nativeScrollFocusedTextInput(mNativeClass, xPercent, msg.arg2);
break;
case LOAD_URL: {
@@ -1191,7 +1208,8 @@
!scheme.startsWith("ftp") &&
!scheme.startsWith("about") &&
!scheme.startsWith("javascript")) {
- nativeRegisterURLSchemeAsLocal(scheme);
+ nativeRegisterURLSchemeAsLocal(mNativeClass,
+ scheme);
}
}
}
@@ -1200,7 +1218,7 @@
loadParams.mMimeType,
loadParams.mEncoding,
loadParams.mHistoryUrl);
- nativeContentInvalidateAll();
+ nativeContentInvalidateAll(mNativeClass);
break;
case STOP_LOADING:
@@ -1229,11 +1247,11 @@
break;
case FAKE_CLICK:
- nativeClick(msg.arg1, msg.arg2, true);
+ nativeClick(mNativeClass, msg.arg1, msg.arg2, true);
break;
case CLICK:
- nativeClick(msg.arg1, msg.arg2, false);
+ nativeClick(mNativeClass, msg.arg1, msg.arg2, false);
break;
case VIEW_SIZE_CHANGED: {
@@ -1244,14 +1262,14 @@
// note: these are in document coordinates
// (inv-zoom)
Point pt = (Point) msg.obj;
- nativeSetScrollOffset(msg.arg1, msg.arg2 == 1,
- pt.x, pt.y);
+ nativeSetScrollOffset(mNativeClass, msg.arg1,
+ msg.arg2 == 1, pt.x, pt.y);
break;
case SET_GLOBAL_BOUNDS:
Rect r = (Rect) msg.obj;
- nativeSetGlobalBounds(r.left, r.top, r.width(),
- r.height());
+ nativeSetGlobalBounds(mNativeClass, r.left, r.top,
+ r.width(), r.height());
break;
case GO_BACK_FORWARD:
@@ -1280,7 +1298,7 @@
WebViewWorker.getHandler().sendEmptyMessage(
WebViewWorker.MSG_PAUSE_CACHE_TRANSACTION);
} else {
- nativeCloseIdleConnections();
+ nativeCloseIdleConnections(mNativeClass);
}
break;
@@ -1294,16 +1312,16 @@
break;
case ON_PAUSE:
- nativePause();
+ nativePause(mNativeClass);
break;
case ON_RESUME:
- nativeResume();
+ nativeResume(mNativeClass);
break;
case FREE_MEMORY:
clearCache(false);
- nativeFreeMemory();
+ nativeFreeMemory(mNativeClass);
break;
case SET_NETWORK_STATE:
@@ -1336,9 +1354,9 @@
case REPLACE_TEXT:
ReplaceTextData rep = (ReplaceTextData) msg.obj;
- nativeReplaceTextfieldText(msg.arg1, msg.arg2,
- rep.mReplace, rep.mNewStart, rep.mNewEnd,
- rep.mTextGeneration);
+ nativeReplaceTextfieldText(mNativeClass, msg.arg1,
+ msg.arg2, rep.mReplace, rep.mNewStart,
+ rep.mNewEnd, rep.mTextGeneration);
break;
case PASS_TO_JS: {
@@ -1347,19 +1365,19 @@
int keyCode = evt.getKeyCode();
int keyValue = evt.getUnicodeChar();
int generation = msg.arg1;
- passToJs(generation,
+ passToJs(mNativeClass,
+ generation,
jsData.mCurrentText,
keyCode,
keyValue,
- evt.isDown(),
- evt.isShiftPressed(), evt.isAltPressed(),
- evt.isSymPressed());
+ evt.isDown(), evt.isShiftPressed(),
+ evt.isAltPressed(), evt.isSymPressed());
break;
}
case SAVE_DOCUMENT_STATE: {
CursorData cDat = (CursorData) msg.obj;
- nativeSaveDocumentState(cDat.mFrame);
+ nativeSaveDocumentState(mNativeClass, cDat.mFrame);
break;
}
@@ -1368,7 +1386,7 @@
// FIXME: This will not work for connections currently in use, as
// they cache the certificate responses. See http://b/5324235.
SslCertLookupTable.getInstance().clear();
- nativeCloseIdleConnections();
+ nativeCloseIdleConnections(mNativeClass);
} else {
Network.getInstance(mContext).clearUserSslPrefTable();
}
@@ -1377,10 +1395,12 @@
case TOUCH_UP:
TouchUpData touchUpData = (TouchUpData) msg.obj;
if (touchUpData.mNativeLayer != 0) {
- nativeScrollLayer(touchUpData.mNativeLayer,
+ nativeScrollLayer(mNativeClass,
+ touchUpData.mNativeLayer,
touchUpData.mNativeLayerRect);
}
- nativeTouchUp(touchUpData.mMoveGeneration,
+ nativeTouchUp(mNativeClass,
+ touchUpData.mMoveGeneration,
touchUpData.mFrame, touchUpData.mNode,
touchUpData.mX, touchUpData.mY);
break;
@@ -1395,11 +1415,13 @@
yArray[c] = ted.mPoints[c].y;
}
if (ted.mNativeLayer != 0) {
- nativeScrollLayer(ted.mNativeLayer,
- ted.mNativeLayerRect);
+ nativeScrollLayer(mNativeClass,
+ ted.mNativeLayer, ted.mNativeLayerRect);
}
- ted.mNativeResult = nativeHandleTouchEvent(ted.mAction, ted.mIds,
- xArray, yArray, count, ted.mActionIndex, ted.mMetaState);
+ ted.mNativeResult = nativeHandleTouchEvent(
+ mNativeClass, ted.mAction, ted.mIds, xArray,
+ yArray, count, ted.mActionIndex,
+ ted.mMetaState);
Message.obtain(
mWebView.mPrivateHandler,
WebView.PREVENT_TOUCH_ID,
@@ -1410,7 +1432,7 @@
}
case SET_ACTIVE:
- nativeSetFocusControllerActive(msg.arg1 == 1);
+ nativeSetFocusControllerActive(mNativeClass, msg.arg1 == 1);
break;
case ADD_JS_INTERFACE:
@@ -1436,39 +1458,39 @@
case SET_MOVE_FOCUS:
CursorData focusData = (CursorData) msg.obj;
- nativeMoveFocus(focusData.mFrame, focusData.mNode);
+ nativeMoveFocus(mNativeClass, focusData.mFrame, focusData.mNode);
break;
case SET_MOVE_MOUSE:
CursorData cursorData = (CursorData) msg.obj;
- nativeMoveMouse(cursorData.mFrame,
- cursorData.mX, cursorData.mY);
+ nativeMoveMouse(mNativeClass,
+ cursorData.mFrame, cursorData.mX, cursorData.mY);
break;
case SET_MOVE_MOUSE_IF_LATEST:
CursorData cData = (CursorData) msg.obj;
- nativeMoveMouseIfLatest(cData.mMoveGeneration,
- cData.mFrame,
- cData.mX, cData.mY);
+ nativeMoveMouseIfLatest(mNativeClass,
+ cData.mMoveGeneration,
+ cData.mFrame, cData.mX, cData.mY);
if (msg.arg1 == 1) {
- nativeStopPaintingCaret();
+ nativeStopPaintingCaret(mNativeClass);
}
break;
case REQUEST_CURSOR_HREF: {
Message hrefMsg = (Message) msg.obj;
hrefMsg.getData().putString("url",
- nativeRetrieveHref(msg.arg1, msg.arg2));
+ nativeRetrieveHref(mNativeClass, msg.arg1, msg.arg2));
hrefMsg.getData().putString("title",
- nativeRetrieveAnchorText(msg.arg1, msg.arg2));
+ nativeRetrieveAnchorText(mNativeClass, msg.arg1, msg.arg2));
hrefMsg.getData().putString("src",
- nativeRetrieveImageSource(msg.arg1, msg.arg2));
+ nativeRetrieveImageSource(mNativeClass, msg.arg1, msg.arg2));
hrefMsg.sendToTarget();
break;
}
case UPDATE_CACHE_AND_TEXT_ENTRY:
- nativeUpdateFrameCache();
+ nativeUpdateFrameCache(mNativeClass);
// FIXME: this should provide a minimal rectangle
if (mWebView != null) {
mWebView.postInvalidate();
@@ -1486,17 +1508,18 @@
case DELETE_SELECTION:
TextSelectionData deleteSelectionData
= (TextSelectionData) msg.obj;
- nativeDeleteSelection(deleteSelectionData.mStart,
- deleteSelectionData.mEnd, msg.arg1);
+ nativeDeleteSelection(mNativeClass,
+ deleteSelectionData.mStart, deleteSelectionData.mEnd, msg.arg1);
break;
case SET_SELECTION:
- nativeSetSelection(msg.arg1, msg.arg2);
+ nativeSetSelection(mNativeClass, msg.arg1, msg.arg2);
break;
case MODIFY_SELECTION:
- String modifiedSelectionString = nativeModifySelection(msg.arg1,
- msg.arg2);
+ String modifiedSelectionString =
+ nativeModifySelection(mNativeClass, msg.arg1,
+ msg.arg2);
mWebView.mPrivateHandler.obtainMessage(WebView.SELECTION_STRING_CHANGED,
modifiedSelectionString).sendToTarget();
break;
@@ -1509,36 +1532,36 @@
for (int c = 0; c < choicesSize; c++) {
choicesArray[c] = choices.get(c);
}
- nativeSendListBoxChoices(choicesArray,
- choicesSize);
+ nativeSendListBoxChoices(mNativeClass,
+ choicesArray, choicesSize);
break;
case SINGLE_LISTBOX_CHOICE:
- nativeSendListBoxChoice(msg.arg1);
+ nativeSendListBoxChoice(mNativeClass, msg.arg1);
break;
case SET_BACKGROUND_COLOR:
- nativeSetBackgroundColor(msg.arg1);
+ nativeSetBackgroundColor(mNativeClass, msg.arg1);
break;
case DUMP_DOMTREE:
- nativeDumpDomTree(msg.arg1 == 1);
+ nativeDumpDomTree(mNativeClass, msg.arg1 == 1);
break;
case DUMP_RENDERTREE:
- nativeDumpRenderTree(msg.arg1 == 1);
+ nativeDumpRenderTree(mNativeClass, msg.arg1 == 1);
break;
case DUMP_NAVTREE:
- nativeDumpNavTree();
+ nativeDumpNavTree(mNativeClass);
break;
case SET_JS_FLAGS:
- nativeSetJsFlags((String)msg.obj);
+ nativeSetJsFlags(mNativeClass, (String)msg.obj);
break;
case CONTENT_INVALIDATE_ALL:
- nativeContentInvalidateAll();
+ nativeContentInvalidateAll(mNativeClass);
break;
case SAVE_WEBARCHIVE:
@@ -1553,12 +1576,12 @@
case GEOLOCATION_PERMISSIONS_PROVIDE:
GeolocationPermissionsData data =
(GeolocationPermissionsData) msg.obj;
- nativeGeolocationPermissionsProvide(data.mOrigin,
- data.mAllow, data.mRemember);
+ nativeGeolocationPermissionsProvide(mNativeClass,
+ data.mOrigin, data.mAllow, data.mRemember);
break;
case SPLIT_PICTURE_SET:
- nativeSplitContent(msg.arg1);
+ nativeSplitContent(mNativeClass, msg.arg1);
mWebView.mPrivateHandler.obtainMessage(
WebView.REPLACE_BASE_CONTENT, msg.arg1, 0);
mSplitPictureIsScheduled = false;
@@ -1576,15 +1599,15 @@
break;
case POPULATE_VISITED_LINKS:
- nativeProvideVisitedHistory((String[])msg.obj);
+ nativeProvideVisitedHistory(mNativeClass, (String[])msg.obj);
break;
case VALID_NODE_BOUNDS: {
MotionUpData motionUpData = (MotionUpData) msg.obj;
if (!nativeValidNodeAndBounds(
- motionUpData.mFrame, motionUpData.mNode,
- motionUpData.mBounds)) {
- nativeUpdateFrameCache();
+ mNativeClass, motionUpData.mFrame,
+ motionUpData.mNode, motionUpData.mBounds)) {
+ nativeUpdateFrameCache(mNativeClass);
}
Message message = mWebView.mPrivateHandler
.obtainMessage(WebView.DO_MOTION_UP,
@@ -1595,11 +1618,11 @@
}
case HIDE_FULLSCREEN:
- nativeFullScreenPluginHidden(msg.arg1);
+ nativeFullScreenPluginHidden(mNativeClass, msg.arg1);
break;
case PLUGIN_SURFACE_READY:
- nativePluginSurfaceReady();
+ nativePluginSurfaceReady(mNativeClass);
break;
case NOTIFY_ANIMATION_STARTED:
@@ -1618,11 +1641,11 @@
case GET_TOUCH_HIGHLIGHT_RECTS:
TouchHighlightData d = (TouchHighlightData) msg.obj;
if (d.mNativeLayer != 0) {
- nativeScrollLayer(d.mNativeLayer,
- d.mNativeLayerRect);
+ nativeScrollLayer(mNativeClass,
+ d.mNativeLayer, d.mNativeLayerRect);
}
ArrayList<Rect> rects = nativeGetTouchHighlightRects
- (d.mX, d.mY, d.mSlop);
+ (mNativeClass, d.mX, d.mY, d.mSlop);
mWebView.mPrivateHandler.obtainMessage(
WebView.SET_TOUCH_HIGHLIGHT_RECTS, rects)
.sendToTarget();
@@ -1633,7 +1656,7 @@
break;
case AUTOFILL_FORM:
- nativeAutoFillForm(msg.arg1);
+ nativeAutoFillForm(mNativeClass, msg.arg1);
mWebView.mPrivateHandler.obtainMessage(WebView.AUTOFILL_COMPLETE, null)
.sendToTarget();
break;
@@ -1854,9 +1877,9 @@
unicodeChar = evt.getCharacters().codePointAt(0);
}
- if (!nativeKey(keyCode, unicodeChar, evt.getRepeatCount(), evt.isShiftPressed(),
- evt.isAltPressed(), evt.isSymPressed(),
- isDown) && keyCode != KeyEvent.KEYCODE_ENTER) {
+ if (!nativeKey(mNativeClass, keyCode, unicodeChar, evt.getRepeatCount(),
+ evt.isShiftPressed(), evt.isAltPressed(),
+ evt.isSymPressed(), isDown) && keyCode != KeyEvent.KEYCODE_ENTER) {
if (keyCode >= KeyEvent.KEYCODE_DPAD_UP
&& keyCode <= KeyEvent.KEYCODE_DPAD_RIGHT) {
if (DebugFlags.WEB_VIEW_CORE) {
@@ -1902,9 +1925,9 @@
float ratio = (heightWidthRatio > 0) ? heightWidthRatio : (float) h / w;
height = Math.round(ratio * width);
}
- nativeSetSize(width, height, textwrapWidth, scale, w,
- data.mActualViewHeight > 0 ? data.mActualViewHeight : h,
- data.mAnchorX, data.mAnchorY, data.mIgnoreHeight);
+ int screenHeight = data.mActualViewHeight > 0 ? data.mActualViewHeight : h;
+ nativeSetSize(mNativeClass, width, height, textwrapWidth, scale,
+ w, screenHeight, data.mAnchorX, data.mAnchorY, data.mIgnoreHeight);
// Remember the current width and height
boolean needInvalidate = (mCurrentViewWidth == 0);
mCurrentViewWidth = w;
@@ -2040,7 +2063,8 @@
mDrawIsScheduled = false;
DrawData draw = new DrawData();
if (DebugFlags.WEB_VIEW_CORE) Log.v(LOGTAG, "webkitDraw start");
- draw.mBaseLayer = nativeRecordContent(draw.mInvalRegion, draw.mContentSize);
+ draw.mBaseLayer = nativeRecordContent(mNativeClass, draw.mInvalRegion,
+ draw.mContentSize);
if (draw.mBaseLayer == 0) {
if (mWebView != null && !mWebView.isPaused()) {
if (DebugFlags.WEB_VIEW_CORE) Log.v(LOGTAG, "webkitDraw abort, resending draw message");
@@ -2056,14 +2080,14 @@
private void webkitDraw(DrawData draw) {
if (mWebView != null) {
- draw.mFocusSizeChanged = nativeFocusBoundsChanged();
+ draw.mFocusSizeChanged = nativeFocusBoundsChanged(mNativeClass);
draw.mViewSize = new Point(mCurrentViewWidth, mCurrentViewHeight);
if (mSettings.getUseWideViewPort()) {
draw.mMinPrefWidth = Math.max(
mViewportWidth == -1 ? WebView.DEFAULT_VIEWPORT_WIDTH
: (mViewportWidth == 0 ? mCurrentViewWidth
: mViewportWidth),
- nativeGetContentMinPrefWidth());
+ nativeGetContentMinPrefWidth(mNativeClass));
}
if (mInitialViewState != null) {
draw.mViewState = mInitialViewState;
@@ -2114,7 +2138,7 @@
Log.w(LOGTAG, "Cannot pauseUpdatePicture, core destroyed or not initialized!");
return;
}
- core.nativeSetIsPaused(true);
+ core.nativeSetIsPaused(core.mNativeClass, true);
core.mDrawIsPaused = true;
}
}
@@ -2132,7 +2156,7 @@
Log.w(LOGTAG, "Cannot resumeUpdatePicture, core destroyed!");
return;
}
- core.nativeSetIsPaused(false);
+ core.nativeSetIsPaused(core.mNativeClass, false);
core.mDrawIsPaused = false;
// always redraw on resume to reenable gif animations
core.mDrawIsScheduled = false;
@@ -2256,7 +2280,7 @@
return mWebView;
}
- private native void setViewportSettingsFromNative();
+ private native void setViewportSettingsFromNative(int nativeClass);
// called by JNI
private void didFirstLayout(boolean standardLoad) {
@@ -2301,7 +2325,7 @@
return;
}
// set the viewport settings from WebKit
- setViewportSettingsFromNative();
+ setViewportSettingsFromNative(mNativeClass);
// clamp initial scale
if (mViewportInitialScale > 0) {
@@ -2615,18 +2639,22 @@
WebView.FIND_AGAIN).sendToTarget();
}
- private native void nativeUpdateFrameCacheIfLoading();
- private native void nativeRevealSelection();
- private native String nativeRequestLabel(int framePtr, int nodePtr);
+ private native void nativeUpdateFrameCacheIfLoading(int nativeClass);
+ private native void nativeRevealSelection(int nativeClass);
+ private native String nativeRequestLabel(int nativeClass, int framePtr,
+ int nodePtr);
/**
* Scroll the focused textfield to (xPercent, y) in document space
*/
- private native void nativeScrollFocusedTextInput(float xPercent, int y);
+ private native void nativeScrollFocusedTextInput(int nativeClass,
+ float xPercent, int y);
// these must be in document space (i.e. not scaled/zoomed).
- private native void nativeSetScrollOffset(int gen, boolean sendScrollEvent, int dx, int dy);
+ private native void nativeSetScrollOffset(int nativeClass, int gen,
+ boolean sendScrollEvent, int dx, int dy);
- private native void nativeSetGlobalBounds(int x, int y, int w, int h);
+ private native void nativeSetGlobalBounds(int nativeClass, int x, int y,
+ int w, int h);
// called by JNI
private void requestListBox(String[] array, int[] enabledArray,
@@ -2861,18 +2889,18 @@
return mDeviceOrientationService;
}
- private native void nativeSetIsPaused(boolean isPaused);
- private native void nativePause();
- private native void nativeResume();
- private native void nativeFreeMemory();
- private native void nativeFullScreenPluginHidden(int npp);
- private native void nativePluginSurfaceReady();
- private native boolean nativeValidNodeAndBounds(int frame, int node,
- Rect bounds);
+ private native void nativeSetIsPaused(int nativeClass, boolean isPaused);
+ private native void nativePause(int nativeClass);
+ private native void nativeResume(int nativeClass);
+ private native void nativeFreeMemory(int nativeClass);
+ private native void nativeFullScreenPluginHidden(int nativeClass, int npp);
+ private native void nativePluginSurfaceReady(int nativeClass);
+ private native boolean nativeValidNodeAndBounds(int nativeClass, int frame,
+ int node, Rect bounds);
- private native ArrayList<Rect> nativeGetTouchHighlightRects(int x, int y,
- int slop);
+ private native ArrayList<Rect> nativeGetTouchHighlightRects(int nativeClass,
+ int x, int y, int slop);
- private native void nativeAutoFillForm(int queryId);
- private native void nativeScrollLayer(int layer, Rect rect);
+ private native void nativeAutoFillForm(int nativeClass, int queryId);
+ private native void nativeScrollLayer(int nativeClass, int layer, Rect rect);
}