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
19451e338c51e8c45efc0d21536dfae6f78f6d5e06Ignacio Sollaimport android.annotation.SystemApi;
203c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.content.res.Configuration;
21f119c5208f5f3c54a174086f585a609a222a3d2dHui Shuimport android.content.Intent;
223c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.graphics.Bitmap;
233c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.graphics.Canvas;
24a5408e619a0d9f4b516d76ee053da05a5d94227dJohn Reckimport android.graphics.Paint;
253c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.graphics.Picture;
263c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.graphics.Rect;
273c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.graphics.drawable.Drawable;
283c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.net.http.SslCertificate;
294c8093afe3da4f6d3b9a43510d0b6601aeadb582Selim Gurunimport android.net.Uri;
303c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.os.Bundle;
31e319dadaa9970ecfd1dd9dbfd455400153ba5c7bSelim Gurunimport android.os.Handler;
323c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.os.Message;
33da7d64225366b40dd10376116bbe19dd8c0b20dbSelim Gurunimport android.print.PrintDocumentAdapter;
34ecdce961ea1082508b5022fe0c12bf3578e7f34aHui Shuimport android.view.DragEvent;
353c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.view.KeyEvent;
363c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.view.MotionEvent;
373c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.view.View;
383c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.view.ViewGroup.LayoutParams;
393c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.view.accessibility.AccessibilityEvent;
403c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.view.accessibility.AccessibilityNodeInfo;
41e3f9071e0daef6e5fe38aa4d40aabd3716eb3e54Ben Murdochimport android.view.accessibility.AccessibilityNodeProvider;
423c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.view.inputmethod.EditorInfo;
433c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.view.inputmethod.InputConnection;
443c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.webkit.WebView.HitTestResult;
453c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport android.webkit.WebView.PictureListener;
46a8352f40316fb265c74d42e908eb30284259b47dTobias Sargeantimport android.webkit.WebView.VisualStateCallback;
47a8352f40316fb265c74d42e908eb30284259b47dTobias Sargeant
483c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
49926cf56676d760579573470c7848dbf119a86779John Reckimport java.io.BufferedWriter;
503c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport java.io.File;
513c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonimport java.util.Map;
523c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
533c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon/**
543c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * WebView backend provider interface: this interface is the abstract backend to a WebView
553c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * instance; each WebView object is bound to exactly one WebViewProvider object which implements
563c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * the runtime behavior of that WebView.
573c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon *
583c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * All methods must behave as per their namesake in {@link WebView}, unless otherwise noted.
593c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon *
603c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon * @hide Not part of the public API; only required by system implementors.
613c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon */
62451e338c51e8c45efc0d21536dfae6f78f6d5e06Ignacio Solla@SystemApi
633c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixonpublic interface WebViewProvider {
643c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    //-------------------------------------------------------------------------
653c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    // Main interface for backend provider of the WebView class.
663c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    //-------------------------------------------------------------------------
673c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    /**
683c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * Initialize this WebViewProvider instance. Called after the WebView has fully constructed.
693c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * @param javaScriptInterfaces is a Map of interface names, as keys, and
703c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * object implementing those interfaces, as values.
713c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * @param privateBrowsing If true the web view will be initialized in private / incognito mode.
723c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     */
733c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void init(Map<String, Object> javaScriptInterfaces,
743c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon            boolean privateBrowsing);
753c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
76c8694a082ab4870d9f148ac98a5e1b3b07d75cc0Paul Miller    // Deprecated - should never be called
773c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void setHorizontalScrollbarOverlay(boolean overlay);
783c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
79c8694a082ab4870d9f148ac98a5e1b3b07d75cc0Paul Miller    // Deprecated - should never be called
803c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void setVerticalScrollbarOverlay(boolean overlay);
813c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
82c8694a082ab4870d9f148ac98a5e1b3b07d75cc0Paul Miller    // Deprecated - should never be called
833c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public boolean overlayHorizontalScrollbar();
843c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
85c8694a082ab4870d9f148ac98a5e1b3b07d75cc0Paul Miller    // Deprecated - should never be called
863c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public boolean overlayVerticalScrollbar();
873c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
883c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public int getVisibleTitleHeight();
893c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
903c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public SslCertificate getCertificate();
913c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
923c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void setCertificate(SslCertificate certificate);
933c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
943c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void savePassword(String host, String username, String password);
953c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
963c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void setHttpAuthUsernamePassword(String host, String realm,
973c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon            String username, String password);
983c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
993c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public String[] getHttpAuthUsernamePassword(String host, String realm);
1003c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1013c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    /**
1023c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * See {@link WebView#destroy()}.
1033c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * As well as releasing the internal state and resources held by the implementation,
1043c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * the provider should null all references it holds on the WebView proxy class, and ensure
1053c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * no further method calls are made to it.
1063c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     */
1073c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void destroy();
1083c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1093c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void setNetworkAvailable(boolean networkUp);
1103c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1113c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public WebBackForwardList saveState(Bundle outState);
1123c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1133c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public boolean savePicture(Bundle b, final File dest);
1143c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1153c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public boolean restorePicture(Bundle b, File src);
1163c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1173c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public WebBackForwardList restoreState(Bundle inState);
1183c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1193c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void loadUrl(String url, Map<String, String> additionalHttpHeaders);
1203c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1213c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void loadUrl(String url);
1223c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1233c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void postUrl(String url, byte[] postData);
1243c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1253c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void loadData(String data, String mimeType, String encoding);
1263c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1273c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void loadDataWithBaseURL(String baseUrl, String data,
1283c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon            String mimeType, String encoding, String historyUrl);
1293c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
130a5cdd51cb7dc3acd608b67186bdef1d2a12bdbe7Ben Murdoch    public void evaluateJavaScript(String script, ValueCallback<String> resultCallback);
131a5cdd51cb7dc3acd608b67186bdef1d2a12bdbe7Ben Murdoch
1323c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void saveWebArchive(String filename);
1333c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1343c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void saveWebArchive(String basename, boolean autoname, ValueCallback<String> callback);
1353c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1363c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void stopLoading();
1373c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1383c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void reload();
1393c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1403c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public boolean canGoBack();
1413c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1423c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void goBack();
1433c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1443c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public boolean canGoForward();
1453c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1463c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void goForward();
1473c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1483c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public boolean canGoBackOrForward(int steps);
1493c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1503c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void goBackOrForward(int steps);
1513c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1523c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public boolean isPrivateBrowsingEnabled();
1533c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1543c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public boolean pageUp(boolean top);
1553c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1563c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public boolean pageDown(boolean bottom);
1573c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
158a8352f40316fb265c74d42e908eb30284259b47dTobias Sargeant    public void insertVisualStateCallback(long requestId, VisualStateCallback callback);
159a8352f40316fb265c74d42e908eb30284259b47dTobias Sargeant
1603c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void clearView();
1613c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1623c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public Picture capturePicture();
1633c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
16423a1af6f83bb51478689020890582f500c73e6baSelim Gurun    public PrintDocumentAdapter createPrintDocumentAdapter(String documentName);
1652167c0be56cc859e38f69df150747055d67b1ea0Selim Gurun
1663c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public float getScale();
1673c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1683c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void setInitialScale(int scaleInPercent);
1693c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1703c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void invokeZoomPicker();
1713c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1723c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public HitTestResult getHitTestResult();
1733c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1743c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void requestFocusNodeHref(Message hrefMsg);
1753c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1763c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void requestImageRef(Message msg);
1773c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1783c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public String getUrl();
1793c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1803c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public String getOriginalUrl();
1813c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1823c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public String getTitle();
1833c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1843c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public Bitmap getFavicon();
1853c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1863c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public String getTouchIconUrl();
1873c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1883c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public int getProgress();
1893c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1903c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public int getContentHeight();
1913c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1923c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public int getContentWidth();
1933c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1943c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void pauseTimers();
1953c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1963c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void resumeTimers();
1973c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
1983c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void onPause();
1993c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2003c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void onResume();
2013c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2023c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public boolean isPaused();
2033c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2043c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void freeMemory();
2053c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2063c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void clearCache(boolean includeDiskFiles);
2073c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2083c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void clearFormData();
2093c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2103c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void clearHistory();
2113c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2123c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void clearSslPreferences();
2133c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2143c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public WebBackForwardList copyBackForwardList();
2153c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
216d405a433e66a7bff086c5ba5653ae4268b2b994dVictoria Lease    public void setFindListener(WebView.FindListener listener);
217abeb6a791501151308d06db6aebb438e16c1a784Victoria Lease
2183c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void findNext(boolean forward);
2193c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2203c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public int findAll(String find);
2213c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
222abeb6a791501151308d06db6aebb438e16c1a784Victoria Lease    public void findAllAsync(String find);
223abeb6a791501151308d06db6aebb438e16c1a784Victoria Lease
2243c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public boolean showFindDialog(String text, boolean showIme);
2253c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2263c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void clearMatches();
2273c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2283c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void documentHasImages(Message response);
2293c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2303c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void setWebViewClient(WebViewClient client);
2313c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2323c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void setDownloadListener(DownloadListener listener);
2333c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2343c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void setWebChromeClient(WebChromeClient client);
2353c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2363c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void setPictureListener(PictureListener listener);
2373c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2383c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void addJavascriptInterface(Object obj, String interfaceName);
2393c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2403c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void removeJavascriptInterface(String interfaceName);
2413c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2424c8093afe3da4f6d3b9a43510d0b6601aeadb582Selim Gurun    public WebMessagePort[] createWebMessageChannel();
2434c8093afe3da4f6d3b9a43510d0b6601aeadb582Selim Gurun
2444c8093afe3da4f6d3b9a43510d0b6601aeadb582Selim Gurun    public void postMessageToMainFrame(WebMessage message, Uri targetOrigin);
2454c8093afe3da4f6d3b9a43510d0b6601aeadb582Selim Gurun
2463c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public WebSettings getSettings();
2473c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2483c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void setMapTrackballToArrowKeys(boolean setMap);
2493c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2503c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public void flingScroll(int vx, int vy);
2513c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2523c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public View getZoomControls();
2533c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2543c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public boolean canZoomIn();
2553c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2563c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public boolean canZoomOut();
2573c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2583ee06efef34b7f619b6b31b58447c64eda9fc0e7Marcin Kosiba    public boolean zoomBy(float zoomFactor);
2593ee06efef34b7f619b6b31b58447c64eda9fc0e7Marcin Kosiba
2603c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public boolean zoomIn();
2613c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2623c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    public boolean zoomOut();
2633c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
264926cf56676d760579573470c7848dbf119a86779John Reck    public void dumpViewHierarchyWithProperties(BufferedWriter out, int level);
265926cf56676d760579573470c7848dbf119a86779John Reck
266926cf56676d760579573470c7848dbf119a86779John Reck    public View findHierarchyView(String className, int hashCode);
267926cf56676d760579573470c7848dbf119a86779John Reck
2683c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    //-------------------------------------------------------------------------
26952c9f7f95083a9d041b9261522e929073cb52fd5Ben Murdoch    // Provider internal methods
2703c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    //-------------------------------------------------------------------------
2713c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2723c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    /**
2733c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * @return the ViewDelegate implementation. This provides the functionality to back all of
2743c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * the name-sake functions from the View and ViewGroup base classes of WebView.
2753c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     */
2763c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    /* package */ ViewDelegate getViewDelegate();
2773c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2783c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    /**
2793c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * @return a ScrollDelegate implementation. Normally this would be same object as is
2803c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * returned by getViewDelegate().
2813c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     */
2823c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    /* package */ ScrollDelegate getScrollDelegate();
2833c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
28452c9f7f95083a9d041b9261522e929073cb52fd5Ben Murdoch    /**
28552c9f7f95083a9d041b9261522e929073cb52fd5Ben Murdoch     * Only used by FindActionModeCallback to inform providers that the find dialog has
28652c9f7f95083a9d041b9261522e929073cb52fd5Ben Murdoch     * been dismissed.
28752c9f7f95083a9d041b9261522e929073cb52fd5Ben Murdoch     */
28852c9f7f95083a9d041b9261522e929073cb52fd5Ben Murdoch    public void notifyFindDialogDismissed();
28952c9f7f95083a9d041b9261522e929073cb52fd5Ben Murdoch
2903c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    //-------------------------------------------------------------------------
2913c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    // View / ViewGroup delegation methods
2923c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    //-------------------------------------------------------------------------
2933c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
2943c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    /**
2953c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * Provides mechanism for the name-sake methods declared in View and ViewGroup to be delegated
2963c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * into the WebViewProvider instance.
2973c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * NOTE For many of these methods, the WebView will provide a super.Foo() call before or after
2983c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * making the call into the provider instance. This is done for convenience in the common case
2993c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * of maintaining backward compatibility. For remaining super class calls (e.g. where the
3003c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * provider may need to only conditionally make the call based on some internal state) see the
3013c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     * {@link WebView.PrivateAccess} callback class.
3023c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon     */
3033c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    // TODO: See if the pattern of the super-class calls can be rationalized at all, and document
3043c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    // the remainder on the methods below.
3053c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    interface ViewDelegate {
3063c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public boolean shouldDelayChildPressedState();
3073c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
30850b26a5c27296ef20c3930213ece8a911ec85104Selim Gurun        public void onProvideVirtualStructure(android.view.ViewStructure structure);
3091b650cb6f99e0481ed20795ec19fc62bbf1191baSelim Gurun
310e3f9071e0daef6e5fe38aa4d40aabd3716eb3e54Ben Murdoch        public AccessibilityNodeProvider getAccessibilityNodeProvider();
311e3f9071e0daef6e5fe38aa4d40aabd3716eb3e54Ben Murdoch
3123e853fb1d27eede6f90ae8af164acdc310d472ceMarcin Kosiba        public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info);
3133c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3143e853fb1d27eede6f90ae8af164acdc310d472ceMarcin Kosiba        public void onInitializeAccessibilityEvent(AccessibilityEvent event);
3153c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3163e853fb1d27eede6f90ae8af164acdc310d472ceMarcin Kosiba        public boolean performAccessibilityAction(int action, Bundle arguments);
317448902d757bb5d5f0284a06b0193549f1e1f369falanv
3183c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public void setOverScrollMode(int mode);
3193c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3203c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public void setScrollBarStyle(int style);
3213c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3223c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public void onDrawVerticalScrollBar(Canvas canvas, Drawable scrollBar, int l, int t,
3233c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon                int r, int b);
3243c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3253c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY);
3263c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3273c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public void onWindowVisibilityChanged(int visibility);
3283c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3293c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public void onDraw(Canvas canvas);
3303c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3313c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public void setLayoutParams(LayoutParams layoutParams);
3323c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3333c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public boolean performLongClick();
3343c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3353c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public void onConfigurationChanged(Configuration newConfig);
3363c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3373c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public InputConnection onCreateInputConnection(EditorInfo outAttrs);
3383c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
339ecdce961ea1082508b5022fe0c12bf3578e7f34aHui Shu        public boolean onDragEvent(DragEvent event);
340ecdce961ea1082508b5022fe0c12bf3578e7f34aHui Shu
3413c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event);
3423c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3433c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public boolean onKeyDown(int keyCode, KeyEvent event);
3443c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3453c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public boolean onKeyUp(int keyCode, KeyEvent event);
3463c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3473c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public void onAttachedToWindow();
3483c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3493c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public void onDetachedFromWindow();
3503c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3513c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public void onVisibilityChanged(View changedView, int visibility);
3523c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3533c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public void onWindowFocusChanged(boolean hasWindowFocus);
3543c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3553c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect);
3563c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3573c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public boolean setFrame(int left, int top, int right, int bottom);
3583c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3593c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public void onSizeChanged(int w, int h, int ow, int oh);
3603c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3613c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public void onScrollChanged(int l, int t, int oldl, int oldt);
3623c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3633c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public boolean dispatchKeyEvent(KeyEvent event);
3643c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3653c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public boolean onTouchEvent(MotionEvent ev);
3663c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3673c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public boolean onHoverEvent(MotionEvent event);
3683c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3693c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public boolean onGenericMotionEvent(MotionEvent event);
3703c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3713c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public boolean onTrackballEvent(MotionEvent ev);
3723c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3733c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public boolean requestFocus(int direction, Rect previouslyFocusedRect);
3743c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3753c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public void onMeasure(int widthMeasureSpec, int heightMeasureSpec);
3763c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3773c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public boolean requestChildRectangleOnScreen(View child, Rect rect, boolean immediate);
3783c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3793c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public void setBackgroundColor(int color);
380a5408e619a0d9f4b516d76ee053da05a5d94227dJohn Reck
381a5408e619a0d9f4b516d76ee053da05a5d94227dJohn Reck        public void setLayerType(int layerType, Paint paint);
382e623e2448436d5496d5a28b7cec1b746ed0dc5e2Ben Murdoch
383e623e2448436d5496d5a28b7cec1b746ed0dc5e2Ben Murdoch        public void preDispatchDraw(Canvas canvas);
3847302f4f8f7d0e92fcdf0a068eab2b6a47810e926Ben Murdoch
3857302f4f8f7d0e92fcdf0a068eab2b6a47810e926Ben Murdoch        public void onStartTemporaryDetach();
3867302f4f8f7d0e92fcdf0a068eab2b6a47810e926Ben Murdoch
3877302f4f8f7d0e92fcdf0a068eab2b6a47810e926Ben Murdoch        public void onFinishTemporaryDetach();
388f119c5208f5f3c54a174086f585a609a222a3d2dHui Shu
389f119c5208f5f3c54a174086f585a609a222a3d2dHui Shu        public void onActivityResult(int requestCode, int resultCode, Intent data);
390e319dadaa9970ecfd1dd9dbfd455400153ba5c7bSelim Gurun
391e319dadaa9970ecfd1dd9dbfd455400153ba5c7bSelim Gurun        public Handler getHandler(Handler originalHandler);
392e319dadaa9970ecfd1dd9dbfd455400153ba5c7bSelim Gurun
393e319dadaa9970ecfd1dd9dbfd455400153ba5c7bSelim Gurun        public View findFocus(View originalFocusedView);
3943c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    }
3953c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
3963c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    interface ScrollDelegate {
3973c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        // These methods are declared protected in the ViewGroup base class. This interface
3983c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        // exists to promote them to public so they may be called by the WebView proxy class.
3993c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        // TODO: Combine into ViewDelegate?
4003c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        /**
4013c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon         * See {@link android.webkit.WebView#computeHorizontalScrollRange}
4023c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon         */
4033c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public int computeHorizontalScrollRange();
4043c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
4053c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        /**
4063c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon         * See {@link android.webkit.WebView#computeHorizontalScrollOffset}
4073c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon         */
4083c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public int computeHorizontalScrollOffset();
4093c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
4103c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        /**
4113c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon         * See {@link android.webkit.WebView#computeVerticalScrollRange}
4123c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon         */
4133c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public int computeVerticalScrollRange();
4143c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
4153c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        /**
4163c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon         * See {@link android.webkit.WebView#computeVerticalScrollOffset}
4173c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon         */
4183c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public int computeVerticalScrollOffset();
4193c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
4203c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        /**
4213c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon         * See {@link android.webkit.WebView#computeVerticalScrollExtent}
4223c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon         */
4233c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public int computeVerticalScrollExtent();
4243c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon
4253c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        /**
4263c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon         * See {@link android.webkit.WebView#computeScroll}
4273c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon         */
4283c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon        public void computeScroll();
4293c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon    }
4303c90952036a5ff7ddb2946c643f1a0bf1c31d53aJonathan Dixon}
431