13c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon/* 23c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * Copyright (C) 2012 The Android Open Source Project 33c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * 43c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * Licensed under the Apache License, Version 2.0 (the "License"); 53c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * you may not use this file except in compliance with the License. 63c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * You may obtain a copy of the License at 73c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * 83c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * http://www.apache.org/licenses/LICENSE-2.0 93c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * 103c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * Unless required by applicable law or agreed to in writing, software 113c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * distributed under the License is distributed on an "AS IS" BASIS, 123c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * See the License for the specific language governing permissions and 143c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * limitations under the License. 153c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon */ 163c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 173c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonpackage android.webkit; 183c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 19cf49a23b3c3028776a238ac10331e7bc64f94842Tima Vaisburdimport android.annotation.NonNull; 20cf49a23b3c3028776a238ac10331e7bc64f94842Tima Vaisburdimport android.annotation.Nullable; 21451e338c51e8c45efc0d21536dfae6f78f6d5e06Ignacio Sollaimport android.annotation.SystemApi; 223c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.content.res.Configuration; 23f119c5208f5f3c54a174086f585a609a222a3d2dHui Shuimport android.content.Intent; 243c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.graphics.Bitmap; 253c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.graphics.Canvas; 26a5408e619a0d9f4b516d76ee053da05a5d94227dJohn Reckimport android.graphics.Paint; 273c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.graphics.Picture; 283c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.graphics.Rect; 293c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.graphics.drawable.Drawable; 303c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.net.http.SslCertificate; 314c8093afe3da4f6d3b9a43510d0b6601aeadb582Selim Gurunimport android.net.Uri; 323c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.os.Bundle; 33e319dadaa9970ecfd1dd9dbfd455400153ba5c7bSelim Gurunimport android.os.Handler; 343c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.os.Message; 35da7d64225366b40dd10376116bbe19dd8c0b20dbSelim Gurunimport android.print.PrintDocumentAdapter; 36a5717331d1120324728d1aa79fb902b9945afa02Tao Baiimport android.util.SparseArray; 37ecdce961ea1082508b5022fe0c12bf3578e7f34aHui Shuimport android.view.DragEvent; 383c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.view.KeyEvent; 393c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.view.MotionEvent; 403c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.view.View; 413c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.view.ViewGroup.LayoutParams; 423c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.view.accessibility.AccessibilityEvent; 433c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.view.accessibility.AccessibilityNodeInfo; 44e3f9071e0daef6e5fe38aa4d40aabd3716eb3e54Ben Murdochimport android.view.accessibility.AccessibilityNodeProvider; 45a5717331d1120324728d1aa79fb902b9945afa02Tao Baiimport android.view.autofill.AutofillValue; 463c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.view.inputmethod.EditorInfo; 473c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.view.inputmethod.InputConnection; 48cf49a23b3c3028776a238ac10331e7bc64f94842Tima Vaisburdimport android.view.textclassifier.TextClassifier; 493c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.webkit.WebView.HitTestResult; 503c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.webkit.WebView.PictureListener; 51a8352f40316fb265c74d42e908eb30284259b47dTobias Sargeantimport android.webkit.WebView.VisualStateCallback; 52a8352f40316fb265c74d42e908eb30284259b47dTobias Sargeant 533c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 54926cf56676d760579573470c7848dbf119a86779John Reckimport java.io.BufferedWriter; 553c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport java.io.File; 563c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport java.util.Map; 573c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 583c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon/** 593c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * WebView backend provider interface: this interface is the abstract backend to a WebView 603c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * instance; each WebView object is bound to exactly one WebViewProvider object which implements 613c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * the runtime behavior of that WebView. 623c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * 633c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * All methods must behave as per their namesake in {@link WebView}, unless otherwise noted. 643c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * 653c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * @hide Not part of the public API; only required by system implementors. 663c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon */ 67451e338c51e8c45efc0d21536dfae6f78f6d5e06Ignacio Solla@SystemApi 683c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonpublic interface WebViewProvider { 693c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon //------------------------------------------------------------------------- 703c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon // Main interface for backend provider of the WebView class. 713c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon //------------------------------------------------------------------------- 723c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon /** 733c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * Initialize this WebViewProvider instance. Called after the WebView has fully constructed. 743c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * @param javaScriptInterfaces is a Map of interface names, as keys, and 753c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * object implementing those interfaces, as values. 763c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * @param privateBrowsing If true the web view will be initialized in private / incognito mode. 773c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon */ 783c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void init(Map<String, Object> javaScriptInterfaces, 793c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon boolean privateBrowsing); 803c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 81c8694a082ab4870d9f148ac98a5e1b3b07d75cc0Paul Miller // Deprecated - should never be called 823c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void setHorizontalScrollbarOverlay(boolean overlay); 833c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 84c8694a082ab4870d9f148ac98a5e1b3b07d75cc0Paul Miller // Deprecated - should never be called 853c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void setVerticalScrollbarOverlay(boolean overlay); 863c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 87c8694a082ab4870d9f148ac98a5e1b3b07d75cc0Paul Miller // Deprecated - should never be called 883c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean overlayHorizontalScrollbar(); 893c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 90c8694a082ab4870d9f148ac98a5e1b3b07d75cc0Paul Miller // Deprecated - should never be called 913c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean overlayVerticalScrollbar(); 923c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 933c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public int getVisibleTitleHeight(); 943c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 953c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public SslCertificate getCertificate(); 963c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 973c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void setCertificate(SslCertificate certificate); 983c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 993c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void savePassword(String host, String username, String password); 1003c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1013c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void setHttpAuthUsernamePassword(String host, String realm, 1023c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon String username, String password); 1033c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1043c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public String[] getHttpAuthUsernamePassword(String host, String realm); 1053c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1063c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon /** 1073c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * See {@link WebView#destroy()}. 1083c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * As well as releasing the internal state and resources held by the implementation, 1093c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * the provider should null all references it holds on the WebView proxy class, and ensure 1103c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * no further method calls are made to it. 1113c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon */ 1123c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void destroy(); 1133c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1143c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void setNetworkAvailable(boolean networkUp); 1153c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1163c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public WebBackForwardList saveState(Bundle outState); 1173c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1183c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean savePicture(Bundle b, final File dest); 1193c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1203c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean restorePicture(Bundle b, File src); 1213c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1223c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public WebBackForwardList restoreState(Bundle inState); 1233c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1243c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void loadUrl(String url, Map<String, String> additionalHttpHeaders); 1253c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1263c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void loadUrl(String url); 1273c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1283c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void postUrl(String url, byte[] postData); 1293c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1303c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void loadData(String data, String mimeType, String encoding); 1313c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1323c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void loadDataWithBaseURL(String baseUrl, String data, 1333c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon String mimeType, String encoding, String historyUrl); 1343c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 135a5cdd51cb7dc3acd608b67186bdef1d2a12bdbe7Ben Murdoch public void evaluateJavaScript(String script, ValueCallback<String> resultCallback); 136a5cdd51cb7dc3acd608b67186bdef1d2a12bdbe7Ben Murdoch 1373c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void saveWebArchive(String filename); 1383c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1393c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void saveWebArchive(String basename, boolean autoname, ValueCallback<String> callback); 1403c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1413c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void stopLoading(); 1423c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1433c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void reload(); 1443c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1453c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean canGoBack(); 1463c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1473c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void goBack(); 1483c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1493c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean canGoForward(); 1503c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1513c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void goForward(); 1523c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1533c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean canGoBackOrForward(int steps); 1543c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1553c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void goBackOrForward(int steps); 1563c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1573c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean isPrivateBrowsingEnabled(); 1583c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1593c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean pageUp(boolean top); 1603c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1613c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean pageDown(boolean bottom); 1623c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 163a8352f40316fb265c74d42e908eb30284259b47dTobias Sargeant public void insertVisualStateCallback(long requestId, VisualStateCallback callback); 164a8352f40316fb265c74d42e908eb30284259b47dTobias Sargeant 1653c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void clearView(); 1663c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1673c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public Picture capturePicture(); 1683c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 16923a1af6f83bb51478689020890582f500c73e6baSelim Gurun public PrintDocumentAdapter createPrintDocumentAdapter(String documentName); 1702167c0be56cc859e38f69df150747055d67b1ea0Selim Gurun 1713c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public float getScale(); 1723c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1733c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void setInitialScale(int scaleInPercent); 1743c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1753c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void invokeZoomPicker(); 1763c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1773c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public HitTestResult getHitTestResult(); 1783c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1793c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void requestFocusNodeHref(Message hrefMsg); 1803c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1813c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void requestImageRef(Message msg); 1823c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1833c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public String getUrl(); 1843c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1853c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public String getOriginalUrl(); 1863c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1873c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public String getTitle(); 1883c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1893c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public Bitmap getFavicon(); 1903c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1913c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public String getTouchIconUrl(); 1923c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1933c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public int getProgress(); 1943c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1953c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public int getContentHeight(); 1963c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1973c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public int getContentWidth(); 1983c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 1993c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void pauseTimers(); 2003c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2013c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void resumeTimers(); 2023c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2033c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void onPause(); 2043c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2053c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void onResume(); 2063c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2073c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean isPaused(); 2083c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2093c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void freeMemory(); 2103c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2113c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void clearCache(boolean includeDiskFiles); 2123c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2133c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void clearFormData(); 2143c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2153c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void clearHistory(); 2163c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2173c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void clearSslPreferences(); 2183c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2193c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public WebBackForwardList copyBackForwardList(); 2203c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 221d405a433e66a7bff086c5ba5653ae4268b2b994dVictoria Lease public void setFindListener(WebView.FindListener listener); 222abeb6a791501151308d06db6aebb438e16c1a784Victoria Lease 2233c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void findNext(boolean forward); 2243c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2253c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public int findAll(String find); 2263c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 227abeb6a791501151308d06db6aebb438e16c1a784Victoria Lease public void findAllAsync(String find); 228abeb6a791501151308d06db6aebb438e16c1a784Victoria Lease 2293c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean showFindDialog(String text, boolean showIme); 2303c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2313c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void clearMatches(); 2323c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2333c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void documentHasImages(Message response); 2343c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2353c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void setWebViewClient(WebViewClient client); 2363c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2376e585844a0d8c4a559e3aa3b4a4050d7e9eda422Nate Fischer public WebViewClient getWebViewClient(); 2386e585844a0d8c4a559e3aa3b4a4050d7e9eda422Nate Fischer 2393c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void setDownloadListener(DownloadListener listener); 2403c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2413c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void setWebChromeClient(WebChromeClient client); 2423c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2436e585844a0d8c4a559e3aa3b4a4050d7e9eda422Nate Fischer public WebChromeClient getWebChromeClient(); 2446e585844a0d8c4a559e3aa3b4a4050d7e9eda422Nate Fischer 2453c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void setPictureListener(PictureListener listener); 2463c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2473c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void addJavascriptInterface(Object obj, String interfaceName); 2483c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2493c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void removeJavascriptInterface(String interfaceName); 2503c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2514c8093afe3da4f6d3b9a43510d0b6601aeadb582Selim Gurun public WebMessagePort[] createWebMessageChannel(); 2524c8093afe3da4f6d3b9a43510d0b6601aeadb582Selim Gurun 2534c8093afe3da4f6d3b9a43510d0b6601aeadb582Selim Gurun public void postMessageToMainFrame(WebMessage message, Uri targetOrigin); 2544c8093afe3da4f6d3b9a43510d0b6601aeadb582Selim Gurun 2553c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public WebSettings getSettings(); 2563c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2573c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void setMapTrackballToArrowKeys(boolean setMap); 2583c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2593c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void flingScroll(int vx, int vy); 2603c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2613c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public View getZoomControls(); 2623c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2633c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean canZoomIn(); 2643c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2653c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean canZoomOut(); 2663c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2673ee06efef34b7f619b6b31b58447c64eda9fc0e7Marcin Kosiba public boolean zoomBy(float zoomFactor); 2683ee06efef34b7f619b6b31b58447c64eda9fc0e7Marcin Kosiba 2693c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean zoomIn(); 2703c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2713c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean zoomOut(); 2723c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 273926cf56676d760579573470c7848dbf119a86779John Reck public void dumpViewHierarchyWithProperties(BufferedWriter out, int level); 274926cf56676d760579573470c7848dbf119a86779John Reck 275926cf56676d760579573470c7848dbf119a86779John Reck public View findHierarchyView(String className, int hashCode); 276926cf56676d760579573470c7848dbf119a86779John Reck 277d10e4af0988b478f57dd90196ee105a94129a93bTobias Sargeant public void setRendererPriorityPolicy(int rendererRequestedPriority, boolean waivedWhenNotVisible); 278d10e4af0988b478f57dd90196ee105a94129a93bTobias Sargeant 279d10e4af0988b478f57dd90196ee105a94129a93bTobias Sargeant public int getRendererRequestedPriority(); 280d10e4af0988b478f57dd90196ee105a94129a93bTobias Sargeant 281d10e4af0988b478f57dd90196ee105a94129a93bTobias Sargeant public boolean getRendererPriorityWaivedWhenNotVisible(); 282d10e4af0988b478f57dd90196ee105a94129a93bTobias Sargeant 283cf49a23b3c3028776a238ac10331e7bc64f94842Tima Vaisburd @SuppressWarnings("unused") 284cf49a23b3c3028776a238ac10331e7bc64f94842Tima Vaisburd public default void setTextClassifier(@Nullable TextClassifier textClassifier) {} 285cf49a23b3c3028776a238ac10331e7bc64f94842Tima Vaisburd 286cf49a23b3c3028776a238ac10331e7bc64f94842Tima Vaisburd @NonNull 287cf49a23b3c3028776a238ac10331e7bc64f94842Tima Vaisburd public default TextClassifier getTextClassifier() { return TextClassifier.NO_OP; } 288cf49a23b3c3028776a238ac10331e7bc64f94842Tima Vaisburd 2893c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon //------------------------------------------------------------------------- 29052c9f7f95083a9d041b9261522e929073cb52fd5Ben Murdoch // Provider internal methods 2913c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon //------------------------------------------------------------------------- 2923c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2933c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon /** 2943c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * @return the ViewDelegate implementation. This provides the functionality to back all of 2953c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * the name-sake functions from the View and ViewGroup base classes of WebView. 2963c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon */ 2973c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon /* package */ ViewDelegate getViewDelegate(); 2983c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 2993c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon /** 3003c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * @return a ScrollDelegate implementation. Normally this would be same object as is 3013c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * returned by getViewDelegate(). 3023c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon */ 3033c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon /* package */ ScrollDelegate getScrollDelegate(); 3043c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 30552c9f7f95083a9d041b9261522e929073cb52fd5Ben Murdoch /** 30652c9f7f95083a9d041b9261522e929073cb52fd5Ben Murdoch * Only used by FindActionModeCallback to inform providers that the find dialog has 30752c9f7f95083a9d041b9261522e929073cb52fd5Ben Murdoch * been dismissed. 30852c9f7f95083a9d041b9261522e929073cb52fd5Ben Murdoch */ 30952c9f7f95083a9d041b9261522e929073cb52fd5Ben Murdoch public void notifyFindDialogDismissed(); 31052c9f7f95083a9d041b9261522e929073cb52fd5Ben Murdoch 3113c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon //------------------------------------------------------------------------- 3123c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon // View / ViewGroup delegation methods 3133c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon //------------------------------------------------------------------------- 3143c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3153c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon /** 3163c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * Provides mechanism for the name-sake methods declared in View and ViewGroup to be delegated 3173c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * into the WebViewProvider instance. 3183c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * NOTE For many of these methods, the WebView will provide a super.Foo() call before or after 3193c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * making the call into the provider instance. This is done for convenience in the common case 3203c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * of maintaining backward compatibility. For remaining super class calls (e.g. where the 3213c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * provider may need to only conditionally make the call based on some internal state) see the 3223c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * {@link WebView.PrivateAccess} callback class. 3233c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon */ 3243c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon // TODO: See if the pattern of the super-class calls can be rationalized at all, and document 3253c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon // the remainder on the methods below. 3263c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon interface ViewDelegate { 3273c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean shouldDelayChildPressedState(); 3283c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 32950b26a5c27296ef20c3930213ece8a911ec85104Selim Gurun public void onProvideVirtualStructure(android.view.ViewStructure structure); 3301b650cb6f99e0481ed20795ec19fc62bbf1191baSelim Gurun 3311ca634a544a47193dd9e57f9b3eb3e42ab0dbbf1Felipe Leme @SuppressWarnings("unused") 332640f30a7763b0a4b80c767acb84c740aac04768bFelipe Leme public default void onProvideAutofillVirtualStructure(android.view.ViewStructure structure, 3331ca634a544a47193dd9e57f9b3eb3e42ab0dbbf1Felipe Leme int flags) { 3341ca634a544a47193dd9e57f9b3eb3e42ab0dbbf1Felipe Leme } 3351ca634a544a47193dd9e57f9b3eb3e42ab0dbbf1Felipe Leme 336a5717331d1120324728d1aa79fb902b9945afa02Tao Bai @SuppressWarnings("unused") 337a5717331d1120324728d1aa79fb902b9945afa02Tao Bai public default void autofill(SparseArray<AutofillValue>values) { 338a5717331d1120324728d1aa79fb902b9945afa02Tao Bai } 339a5717331d1120324728d1aa79fb902b9945afa02Tao Bai 340e3f9071e0daef6e5fe38aa4d40aabd3716eb3e54Ben Murdoch public AccessibilityNodeProvider getAccessibilityNodeProvider(); 341e3f9071e0daef6e5fe38aa4d40aabd3716eb3e54Ben Murdoch 3423e853fb1d27eede6f90ae8af164acdc310d472ceMarcin Kosiba public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info); 3433c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3443e853fb1d27eede6f90ae8af164acdc310d472ceMarcin Kosiba public void onInitializeAccessibilityEvent(AccessibilityEvent event); 3453c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3463e853fb1d27eede6f90ae8af164acdc310d472ceMarcin Kosiba public boolean performAccessibilityAction(int action, Bundle arguments); 347448902d757bb5d5f0284a06b0193549f1e1f369falanv 3483c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void setOverScrollMode(int mode); 3493c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3503c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void setScrollBarStyle(int style); 3513c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3523c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void onDrawVerticalScrollBar(Canvas canvas, Drawable scrollBar, int l, int t, 3533c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon int r, int b); 3543c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3553c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY); 3563c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3573c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void onWindowVisibilityChanged(int visibility); 3583c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3593c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void onDraw(Canvas canvas); 3603c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3613c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void setLayoutParams(LayoutParams layoutParams); 3623c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3633c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean performLongClick(); 3643c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3653c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void onConfigurationChanged(Configuration newConfig); 3663c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3673c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public InputConnection onCreateInputConnection(EditorInfo outAttrs); 3683c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 369ecdce961ea1082508b5022fe0c12bf3578e7f34aHui Shu public boolean onDragEvent(DragEvent event); 370ecdce961ea1082508b5022fe0c12bf3578e7f34aHui Shu 3713c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event); 3723c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3733c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean onKeyDown(int keyCode, KeyEvent event); 3743c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3753c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean onKeyUp(int keyCode, KeyEvent event); 3763c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3773c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void onAttachedToWindow(); 3783c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3793c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void onDetachedFromWindow(); 3803c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 381134752b47128466b11d399de388d8aa3f7266683Tima Vaisburd public default void onMovedToDisplay(int displayId, Configuration config) {} 382134752b47128466b11d399de388d8aa3f7266683Tima Vaisburd 3833c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void onVisibilityChanged(View changedView, int visibility); 3843c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3853c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void onWindowFocusChanged(boolean hasWindowFocus); 3863c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3873c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect); 3883c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3893c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean setFrame(int left, int top, int right, int bottom); 3903c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3913c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void onSizeChanged(int w, int h, int ow, int oh); 3923c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3933c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void onScrollChanged(int l, int t, int oldl, int oldt); 3943c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3953c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean dispatchKeyEvent(KeyEvent event); 3963c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3973c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean onTouchEvent(MotionEvent ev); 3983c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 3993c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean onHoverEvent(MotionEvent event); 4003c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 4013c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean onGenericMotionEvent(MotionEvent event); 4023c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 4033c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean onTrackballEvent(MotionEvent ev); 4043c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 4053c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean requestFocus(int direction, Rect previouslyFocusedRect); 4063c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 4073c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void onMeasure(int widthMeasureSpec, int heightMeasureSpec); 4083c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 4093c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public boolean requestChildRectangleOnScreen(View child, Rect rect, boolean immediate); 4103c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 4113c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void setBackgroundColor(int color); 412a5408e619a0d9f4b516d76ee053da05a5d94227dJohn Reck 413a5408e619a0d9f4b516d76ee053da05a5d94227dJohn Reck public void setLayerType(int layerType, Paint paint); 414e623e2448436d5496d5a28b7cec1b746ed0dc5e2Ben Murdoch 415e623e2448436d5496d5a28b7cec1b746ed0dc5e2Ben Murdoch public void preDispatchDraw(Canvas canvas); 4167302f4f8f7d0e92fcdf0a068eab2b6a47810e926Ben Murdoch 4177302f4f8f7d0e92fcdf0a068eab2b6a47810e926Ben Murdoch public void onStartTemporaryDetach(); 4187302f4f8f7d0e92fcdf0a068eab2b6a47810e926Ben Murdoch 4197302f4f8f7d0e92fcdf0a068eab2b6a47810e926Ben Murdoch public void onFinishTemporaryDetach(); 420f119c5208f5f3c54a174086f585a609a222a3d2dHui Shu 421f119c5208f5f3c54a174086f585a609a222a3d2dHui Shu public void onActivityResult(int requestCode, int resultCode, Intent data); 422e319dadaa9970ecfd1dd9dbfd455400153ba5c7bSelim Gurun 423e319dadaa9970ecfd1dd9dbfd455400153ba5c7bSelim Gurun public Handler getHandler(Handler originalHandler); 424e319dadaa9970ecfd1dd9dbfd455400153ba5c7bSelim Gurun 425e319dadaa9970ecfd1dd9dbfd455400153ba5c7bSelim Gurun public View findFocus(View originalFocusedView); 4263c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon } 4273c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 4283c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon interface ScrollDelegate { 4293c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon // These methods are declared protected in the ViewGroup base class. This interface 4303c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon // exists to promote them to public so they may be called by the WebView proxy class. 4313c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon // TODO: Combine into ViewDelegate? 4323c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon /** 4333c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * See {@link android.webkit.WebView#computeHorizontalScrollRange} 4343c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon */ 4353c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public int computeHorizontalScrollRange(); 4363c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 4373c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon /** 4383c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * See {@link android.webkit.WebView#computeHorizontalScrollOffset} 4393c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon */ 4403c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public int computeHorizontalScrollOffset(); 4413c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 4423c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon /** 4433c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * See {@link android.webkit.WebView#computeVerticalScrollRange} 4443c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon */ 4453c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public int computeVerticalScrollRange(); 4463c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 4473c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon /** 4483c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * See {@link android.webkit.WebView#computeVerticalScrollOffset} 4493c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon */ 4503c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public int computeVerticalScrollOffset(); 4513c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 4523c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon /** 4533c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * See {@link android.webkit.WebView#computeVerticalScrollExtent} 4543c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon */ 4553c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public int computeVerticalScrollExtent(); 4563c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon 4573c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon /** 4583c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * See {@link android.webkit.WebView#computeScroll} 4593c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon */ 4603c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon public void computeScroll(); 4613c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon } 4623c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon} 463