Add tests and stubs for the new sources and flow steps

This commit is contained in:
Tony Torralba
2022-03-25 11:44:54 +01:00
parent b678467e9d
commit 7ba5a032ce
47 changed files with 1322 additions and 1989 deletions

View File

@@ -81,17 +81,17 @@ private class WebkitSourceModels extends SourceModelCsv {
override predicate row(string row) {
row =
[
"android.webkit;WebResourceRequest;true;doUpdateVisitedHistory;;;Parameter[1];remote",
"android.webkit;WebResourceRequest;true;onLoadResource;;;Parameter[1];remote",
"android.webkit;WebResourceRequest;true;onPageCommitVisible;;;Parameter[1];remote",
"android.webkit;WebResourceRequest;true;onPageFinished;;;Parameter[1];remote",
"android.webkit;WebResourceRequest;true;onPageStarted;;;Parameter[1];remote",
"android.webkit;WebResourceRequest;true;onReceivedError;(WebView,int,String,String);;Parameter[3];remote",
"android.webkit;WebResourceRequest;true;onReceivedError;(WebView,WebResourceRequest,WebResourceError);;Parameter[1];remote",
"android.webkit;WebResourceRequest;true;onReceivedHttpError;;;Parameter[1];remote",
"android.webkit;WebResourceRequest;true;onSafeBrowsingHit;;;Parameter[1];remote",
"android.webkit;WebResourceRequest;true;shouldInterceptRequest;;;Parameter[1];remote",
"android.webkit;WebResourceRequest;true;shouldOverrideUrlLoading;;;Parameter[1];remote"
"android.webkit;WebViewClient;true;doUpdateVisitedHistory;;;Parameter[1];remote",
"android.webkit;WebViewClient;true;onLoadResource;;;Parameter[1];remote",
"android.webkit;WebViewClient;true;onPageCommitVisible;;;Parameter[1];remote",
"android.webkit;WebViewClient;true;onPageFinished;;;Parameter[1];remote",
"android.webkit;WebViewClient;true;onPageStarted;;;Parameter[1];remote",
"android.webkit;WebViewClient;true;onReceivedError;(WebView,int,String,String);;Parameter[3];remote",
"android.webkit;WebViewClient;true;onReceivedError;(WebView,WebResourceRequest,WebResourceError);;Parameter[1];remote",
"android.webkit;WebViewClient;true;onReceivedHttpError;;;Parameter[1];remote",
"android.webkit;WebViewClient;true;onSafeBrowsingHit;;;Parameter[1];remote",
"android.webkit;WebViewClient;true;shouldInterceptRequest;;;Parameter[1];remote",
"android.webkit;WebViewClient;true;shouldOverrideUrlLoading;;;Parameter[1];remote"
]
}
}

View File

@@ -19,7 +19,7 @@ import java.util.List;
import java.util.Map;
// Test case generated by GenerateFlowTestCase.ql
public class Test {
public class ParcelTest {
Object source() { return null; }
void sink(Object o) { }

View File

@@ -0,0 +1,35 @@
package generatedtest;
import android.net.Uri;
import android.webkit.WebResourceRequest;
import java.util.Map;
// Test case generated by GenerateFlowTestCase.ql
public class WebResourceRequestTest {
Object source() {
return null;
}
void sink(Object o) {}
public void test() throws Exception {
{
// "android.webkit;WebResourceRequest;true;getRequestHeaders;;;Argument[-1];ReturnValue;taint"
Map out = null;
WebResourceRequest in = (WebResourceRequest) source();
out = in.getRequestHeaders();
sink(out); // $ hasTaintFlow
}
{
// "android.webkit;WebResourceRequest;true;getUrl;;;Argument[-1];ReturnValue;taint"
Uri out = null;
WebResourceRequest in = (WebResourceRequest) source();
out = in.getUrl();
sink(out); // $ hasTaintFlow
}
}
}

View File

@@ -4,7 +4,7 @@ import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class Test extends Activity {
public class OnActivityResult extends Activity {
void sink(Object o) {}

View File

@@ -4,7 +4,7 @@ import android.content.Intent;
import android.os.Bundle;
import androidx.fragment.app.FragmentTransaction;
public class TestActivityAndFragment extends Activity {
public class OnActivityResultActivityAndFragment extends Activity {
private TestFragment frag;

View File

@@ -4,7 +4,7 @@ import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
public class TestFragment extends Fragment {
public class OnActivityResultFragment extends Fragment {
void sink(Object o) {}

View File

@@ -5,7 +5,7 @@ import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
public class TestMissing extends Activity {
public class OnActivityResultMissing extends Activity {
void sink(Object o) {}

View File

@@ -4,7 +4,7 @@ import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class Safe extends Activity {
public class OnActivityResultSafe extends Activity {
void sink(Object o) {}

View File

@@ -4,7 +4,7 @@ import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class Safe2 extends Activity {
public class OnActivityResultSafe2 extends Activity {
void sink(Object o) {}

View File

@@ -0,0 +1,101 @@
import android.graphics.Bitmap;
import android.webkit.SafeBrowsingResponse;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebResourceError;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class WebViewSources {
private static void sink(Object o) {}
public static void test() {
new WebViewClient() {
// "android.webkit;WebViewClient;true;doUpdateVisitedHistory;;;Parameter[1];remote",
@Override
public void doUpdateVisitedHistory(WebView view, String url, boolean isReload) {
sink(url); // $ hasValueFlow
}
// "android.webkit;WebViewClient;true;onLoadResource;;;Parameter[1];remote",
@Override
public void onLoadResource(WebView view, String url) {
sink(url); // $ hasValueFlow
}
// "android.webkit;WebViewClient;true;onPageCommitVisible;;;Parameter[1];remote",
@Override
public void onPageCommitVisible(WebView view, String url) {
sink(url); // $ hasValueFlow
}
// "android.webkit;WebViewClient;true;onPageFinished;;;Parameter[1];remote",
@Override
public void onPageFinished(WebView view, String url) {
sink(url); // $ hasValueFlow
}
// "android.webkit;WebViewClient;true;onPageStarted;;;Parameter[1];remote",
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
sink(url); // $ hasValueFlow
}
// "android.webkit;WebViewClient;true;onReceivedError;(WebView,int,String,String);;Parameter[3];remote",
@Override
public void onReceivedError(WebView view, int errorCode, String description,
String failingUrl) {
sink(failingUrl); // $ hasValueFlow
}
// "android.webkit;WebViewClient;true;onReceivedError;(WebView,WebResourceRequest,WebResourceError);;Parameter[1];remote",
@Override
public void onReceivedError(WebView view, WebResourceRequest request,
WebResourceError error) {
sink(request); // $ hasValueFlow
}
// "android.webkit;WebViewClient;true;onReceivedHttpError;;;Parameter[1];remote",
@Override
public void onReceivedHttpError(WebView view, WebResourceRequest request,
WebResourceResponse errorResponse) {
sink(request); // $ hasValueFlow
}
// "android.webkit;WebViewClient;true;onSafeBrowsingHit;;;Parameter[1];remote",
@Override
public void onSafeBrowsingHit(WebView view, WebResourceRequest request, int threatType,
SafeBrowsingResponse callback) {
sink(request); // $ hasValueFlow
}
// "android.webkit;WebViewClient;true;shouldInterceptRequest;;;Parameter[1];remote",
@Override
public WebResourceResponse shouldInterceptRequest(WebView view,
WebResourceRequest request) {
sink(request); // $ hasValueFlow
return null;
}
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
sink(url); // $ hasValueFlow
return null;
}
// "android.webkit;WebViewClient;true;shouldOverrideUrlLoading;;;Parameter[1];remote"
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
sink(request); // $ hasValueFlow
return false;
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
sink(url); // $ hasValueFlow
return false;
}
};
}
}

View File

@@ -2,7 +2,10 @@
package android.content;
public interface ComponentCallbacks2 extends ComponentCallbacks {
import android.content.ComponentCallbacks;
public interface ComponentCallbacks2 extends ComponentCallbacks
{
static int TRIM_MEMORY_BACKGROUND = 0;
static int TRIM_MEMORY_COMPLETE = 0;
static int TRIM_MEMORY_MODERATE = 0;
@@ -10,6 +13,5 @@ public interface ComponentCallbacks2 extends ComponentCallbacks {
static int TRIM_MEMORY_RUNNING_LOW = 0;
static int TRIM_MEMORY_RUNNING_MODERATE = 0;
static int TRIM_MEMORY_UI_HIDDEN = 0;
void onTrimMemory(int p0);
}

View File

@@ -0,0 +1,34 @@
// Generated automatically from android.net.http.SslCertificate for testing purposes
package android.net.http;
import android.os.Bundle;
import java.security.cert.X509Certificate;
import java.util.Date;
public class SslCertificate
{
protected SslCertificate() {}
public Date getValidNotAfterDate(){ return null; }
public Date getValidNotBeforeDate(){ return null; }
public SslCertificate(String p0, String p1, Date p2, Date p3){}
public SslCertificate(String p0, String p1, String p2, String p3){}
public SslCertificate(X509Certificate p0){}
public SslCertificate.DName getIssuedBy(){ return null; }
public SslCertificate.DName getIssuedTo(){ return null; }
public String getValidNotAfter(){ return null; }
public String getValidNotBefore(){ return null; }
public String toString(){ return null; }
public X509Certificate getX509Certificate(){ return null; }
public class DName
{
protected DName() {}
public DName(String p0){}
public String getCName(){ return null; }
public String getDName(){ return null; }
public String getOName(){ return null; }
public String getUName(){ return null; }
}
public static Bundle saveState(SslCertificate p0){ return null; }
public static SslCertificate restoreState(Bundle p0){ return null; }
}

View File

@@ -0,0 +1,28 @@
// Generated automatically from android.net.http.SslError for testing purposes
package android.net.http;
import android.net.http.SslCertificate;
import java.security.cert.X509Certificate;
public class SslError
{
protected SslError() {}
public SslCertificate getCertificate(){ return null; }
public SslError(int p0, SslCertificate p1){}
public SslError(int p0, SslCertificate p1, String p2){}
public SslError(int p0, X509Certificate p1){}
public SslError(int p0, X509Certificate p1, String p2){}
public String getUrl(){ return null; }
public String toString(){ return null; }
public boolean addError(int p0){ return false; }
public boolean hasError(int p0){ return false; }
public int getPrimaryError(){ return 0; }
public static int SSL_DATE_INVALID = 0;
public static int SSL_EXPIRED = 0;
public static int SSL_IDMISMATCH = 0;
public static int SSL_INVALID = 0;
public static int SSL_MAX_ERROR = 0;
public static int SSL_NOTYETVALID = 0;
public static int SSL_UNTRUSTED = 0;
}

View File

@@ -0,0 +1,21 @@
// Generated automatically from android.print.PageRange for testing purposes
package android.print;
import android.os.Parcel;
import android.os.Parcelable;
public class PageRange implements Parcelable
{
protected PageRange() {}
public PageRange(int p0, int p1){}
public String toString(){ return null; }
public boolean equals(Object p0){ return false; }
public int describeContents(){ return 0; }
public int getEnd(){ return 0; }
public int getStart(){ return 0; }
public int hashCode(){ return 0; }
public static PageRange ALL_PAGES = null;
public static Parcelable.Creator<PageRange> CREATOR = null;
public void writeToParcel(Parcel p0, int p1){}
}

View File

@@ -0,0 +1,162 @@
// Generated automatically from android.print.PrintAttributes for testing purposes
package android.print;
import android.content.pm.PackageManager;
import android.os.Parcel;
import android.os.Parcelable;
public class PrintAttributes implements Parcelable
{
public PrintAttributes.Margins getMinMargins(){ return null; }
public PrintAttributes.MediaSize getMediaSize(){ return null; }
public PrintAttributes.Resolution getResolution(){ return null; }
public String toString(){ return null; }
public boolean equals(Object p0){ return false; }
public int describeContents(){ return 0; }
public int getColorMode(){ return 0; }
public int getDuplexMode(){ return 0; }
public int hashCode(){ return 0; }
public static Parcelable.Creator<PrintAttributes> CREATOR = null;
public static int COLOR_MODE_COLOR = 0;
public static int COLOR_MODE_MONOCHROME = 0;
public static int DUPLEX_MODE_LONG_EDGE = 0;
public static int DUPLEX_MODE_NONE = 0;
public static int DUPLEX_MODE_SHORT_EDGE = 0;
public void writeToParcel(Parcel p0, int p1){}
static public class Margins
{
protected Margins() {}
public Margins(int p0, int p1, int p2, int p3){}
public String toString(){ return null; }
public boolean equals(Object p0){ return false; }
public int getBottomMils(){ return 0; }
public int getLeftMils(){ return 0; }
public int getRightMils(){ return 0; }
public int getTopMils(){ return 0; }
public int hashCode(){ return 0; }
public static PrintAttributes.Margins NO_MARGINS = null;
}
static public class MediaSize
{
protected MediaSize() {}
public MediaSize(String p0, String p1, int p2, int p3){}
public PrintAttributes.MediaSize asLandscape(){ return null; }
public PrintAttributes.MediaSize asPortrait(){ return null; }
public String getId(){ return null; }
public String getLabel(PackageManager p0){ return null; }
public String toString(){ return null; }
public boolean equals(Object p0){ return false; }
public boolean isPortrait(){ return false; }
public int getHeightMils(){ return 0; }
public int getWidthMils(){ return 0; }
public int hashCode(){ return 0; }
public static PrintAttributes.MediaSize ANSI_C = null;
public static PrintAttributes.MediaSize ANSI_D = null;
public static PrintAttributes.MediaSize ANSI_E = null;
public static PrintAttributes.MediaSize ANSI_F = null;
public static PrintAttributes.MediaSize ISO_A0 = null;
public static PrintAttributes.MediaSize ISO_A1 = null;
public static PrintAttributes.MediaSize ISO_A10 = null;
public static PrintAttributes.MediaSize ISO_A2 = null;
public static PrintAttributes.MediaSize ISO_A3 = null;
public static PrintAttributes.MediaSize ISO_A4 = null;
public static PrintAttributes.MediaSize ISO_A5 = null;
public static PrintAttributes.MediaSize ISO_A6 = null;
public static PrintAttributes.MediaSize ISO_A7 = null;
public static PrintAttributes.MediaSize ISO_A8 = null;
public static PrintAttributes.MediaSize ISO_A9 = null;
public static PrintAttributes.MediaSize ISO_B0 = null;
public static PrintAttributes.MediaSize ISO_B1 = null;
public static PrintAttributes.MediaSize ISO_B10 = null;
public static PrintAttributes.MediaSize ISO_B2 = null;
public static PrintAttributes.MediaSize ISO_B3 = null;
public static PrintAttributes.MediaSize ISO_B4 = null;
public static PrintAttributes.MediaSize ISO_B5 = null;
public static PrintAttributes.MediaSize ISO_B6 = null;
public static PrintAttributes.MediaSize ISO_B7 = null;
public static PrintAttributes.MediaSize ISO_B8 = null;
public static PrintAttributes.MediaSize ISO_B9 = null;
public static PrintAttributes.MediaSize ISO_C0 = null;
public static PrintAttributes.MediaSize ISO_C1 = null;
public static PrintAttributes.MediaSize ISO_C10 = null;
public static PrintAttributes.MediaSize ISO_C2 = null;
public static PrintAttributes.MediaSize ISO_C3 = null;
public static PrintAttributes.MediaSize ISO_C4 = null;
public static PrintAttributes.MediaSize ISO_C5 = null;
public static PrintAttributes.MediaSize ISO_C6 = null;
public static PrintAttributes.MediaSize ISO_C7 = null;
public static PrintAttributes.MediaSize ISO_C8 = null;
public static PrintAttributes.MediaSize ISO_C9 = null;
public static PrintAttributes.MediaSize JIS_B0 = null;
public static PrintAttributes.MediaSize JIS_B1 = null;
public static PrintAttributes.MediaSize JIS_B10 = null;
public static PrintAttributes.MediaSize JIS_B2 = null;
public static PrintAttributes.MediaSize JIS_B3 = null;
public static PrintAttributes.MediaSize JIS_B4 = null;
public static PrintAttributes.MediaSize JIS_B5 = null;
public static PrintAttributes.MediaSize JIS_B6 = null;
public static PrintAttributes.MediaSize JIS_B7 = null;
public static PrintAttributes.MediaSize JIS_B8 = null;
public static PrintAttributes.MediaSize JIS_B9 = null;
public static PrintAttributes.MediaSize JIS_EXEC = null;
public static PrintAttributes.MediaSize JPN_CHOU2 = null;
public static PrintAttributes.MediaSize JPN_CHOU3 = null;
public static PrintAttributes.MediaSize JPN_CHOU4 = null;
public static PrintAttributes.MediaSize JPN_HAGAKI = null;
public static PrintAttributes.MediaSize JPN_KAHU = null;
public static PrintAttributes.MediaSize JPN_KAKU2 = null;
public static PrintAttributes.MediaSize JPN_OE_PHOTO_L = null;
public static PrintAttributes.MediaSize JPN_OUFUKU = null;
public static PrintAttributes.MediaSize JPN_YOU4 = null;
public static PrintAttributes.MediaSize NA_ARCH_A = null;
public static PrintAttributes.MediaSize NA_ARCH_B = null;
public static PrintAttributes.MediaSize NA_ARCH_C = null;
public static PrintAttributes.MediaSize NA_ARCH_D = null;
public static PrintAttributes.MediaSize NA_ARCH_E = null;
public static PrintAttributes.MediaSize NA_ARCH_E1 = null;
public static PrintAttributes.MediaSize NA_FOOLSCAP = null;
public static PrintAttributes.MediaSize NA_GOVT_LETTER = null;
public static PrintAttributes.MediaSize NA_INDEX_3X5 = null;
public static PrintAttributes.MediaSize NA_INDEX_4X6 = null;
public static PrintAttributes.MediaSize NA_INDEX_5X8 = null;
public static PrintAttributes.MediaSize NA_JUNIOR_LEGAL = null;
public static PrintAttributes.MediaSize NA_LEDGER = null;
public static PrintAttributes.MediaSize NA_LEGAL = null;
public static PrintAttributes.MediaSize NA_LETTER = null;
public static PrintAttributes.MediaSize NA_MONARCH = null;
public static PrintAttributes.MediaSize NA_QUARTO = null;
public static PrintAttributes.MediaSize NA_SUPER_B = null;
public static PrintAttributes.MediaSize NA_TABLOID = null;
public static PrintAttributes.MediaSize OM_DAI_PA_KAI = null;
public static PrintAttributes.MediaSize OM_JUURO_KU_KAI = null;
public static PrintAttributes.MediaSize OM_PA_KAI = null;
public static PrintAttributes.MediaSize PRC_1 = null;
public static PrintAttributes.MediaSize PRC_10 = null;
public static PrintAttributes.MediaSize PRC_16K = null;
public static PrintAttributes.MediaSize PRC_2 = null;
public static PrintAttributes.MediaSize PRC_3 = null;
public static PrintAttributes.MediaSize PRC_4 = null;
public static PrintAttributes.MediaSize PRC_5 = null;
public static PrintAttributes.MediaSize PRC_6 = null;
public static PrintAttributes.MediaSize PRC_7 = null;
public static PrintAttributes.MediaSize PRC_8 = null;
public static PrintAttributes.MediaSize PRC_9 = null;
public static PrintAttributes.MediaSize ROC_16K = null;
public static PrintAttributes.MediaSize ROC_8K = null;
public static PrintAttributes.MediaSize UNKNOWN_LANDSCAPE = null;
public static PrintAttributes.MediaSize UNKNOWN_PORTRAIT = null;
}
static public class Resolution
{
protected Resolution() {}
public Resolution(String p0, String p1, int p2, int p3){}
public String getId(){ return null; }
public String getLabel(){ return null; }
public String toString(){ return null; }
public boolean equals(Object p0){ return false; }
public int getHorizontalDpi(){ return 0; }
public int getVerticalDpi(){ return 0; }
public int hashCode(){ return 0; }
}
}

View File

@@ -0,0 +1,32 @@
// Generated automatically from android.print.PrintDocumentAdapter for testing purposes
package android.print;
import android.os.Bundle;
import android.os.CancellationSignal;
import android.os.ParcelFileDescriptor;
import android.print.PageRange;
import android.print.PrintAttributes;
import android.print.PrintDocumentInfo;
abstract public class PrintDocumentAdapter
{
abstract static public class LayoutResultCallback
{
public void onLayoutCancelled(){}
public void onLayoutFailed(CharSequence p0){}
public void onLayoutFinished(PrintDocumentInfo p0, boolean p1){}
}
abstract static public class WriteResultCallback
{
public void onWriteCancelled(){}
public void onWriteFailed(CharSequence p0){}
public void onWriteFinished(PageRange[] p0){}
}
public PrintDocumentAdapter(){}
public abstract void onLayout(PrintAttributes p0, PrintAttributes p1, CancellationSignal p2, PrintDocumentAdapter.LayoutResultCallback p3, Bundle p4);
public abstract void onWrite(PageRange[] p0, ParcelFileDescriptor p1, CancellationSignal p2, PrintDocumentAdapter.WriteResultCallback p3);
public static String EXTRA_PRINT_PREVIEW = null;
public void onFinish(){}
public void onStart(){}
}

View File

@@ -0,0 +1,25 @@
// Generated automatically from android.print.PrintDocumentInfo for testing purposes
package android.print;
import android.os.Parcel;
import android.os.Parcelable;
public class PrintDocumentInfo implements Parcelable
{
protected PrintDocumentInfo() {}
public String getName(){ return null; }
public String toString(){ return null; }
public boolean equals(Object p0){ return false; }
public int describeContents(){ return 0; }
public int getContentType(){ return 0; }
public int getPageCount(){ return 0; }
public int hashCode(){ return 0; }
public long getDataSize(){ return 0; }
public static Parcelable.Creator<PrintDocumentInfo> CREATOR = null;
public static int CONTENT_TYPE_DOCUMENT = 0;
public static int CONTENT_TYPE_PHOTO = 0;
public static int CONTENT_TYPE_UNKNOWN = 0;
public static int PAGE_COUNT_UNKNOWN = 0;
public void writeToParcel(Parcel p0, int p1){}
}

View File

@@ -3,11 +3,14 @@
package android.view.textclassifier;
import android.os.Bundle;
import android.os.LocaleList;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.Spannable;
import android.text.style.ClickableSpan;
import android.view.View;
import android.view.textclassifier.TextClassifier;
import java.time.ZonedDateTime;
import java.util.Collection;
import java.util.function.Function;
@@ -29,6 +32,19 @@ public class TextLinks implements Parcelable
public static int STATUS_NO_LINKS_FOUND = 0;
public static int STATUS_UNSUPPORTED_CHARACTER = 0;
public void writeToParcel(Parcel p0, int p1){}
static public class Request implements Parcelable
{
protected Request() {}
public Bundle getExtras(){ return null; }
public CharSequence getText(){ return null; }
public LocaleList getDefaultLocales(){ return null; }
public String getCallingPackageName(){ return null; }
public TextClassifier.EntityConfig getEntityConfig(){ return null; }
public ZonedDateTime getReferenceTime(){ return null; }
public int describeContents(){ return 0; }
public static Parcelable.Creator<TextLinks.Request> CREATOR = null;
public void writeToParcel(Parcel p0, int p1){}
}
static public class TextLink implements Parcelable
{
protected TextLink() {}

View File

@@ -0,0 +1,19 @@
// Generated automatically from android.webkit.ClientCertRequest for testing purposes
package android.webkit;
import java.security.Principal;
import java.security.PrivateKey;
import java.security.cert.X509Certificate;
abstract public class ClientCertRequest
{
public ClientCertRequest(){}
public abstract Principal[] getPrincipals();
public abstract String getHost();
public abstract String[] getKeyTypes();
public abstract int getPort();
public abstract void cancel();
public abstract void ignore();
public abstract void proceed(PrivateKey p0, X509Certificate[] p1);
}

View File

@@ -0,0 +1,19 @@
// Generated automatically from android.webkit.ConsoleMessage for testing purposes
package android.webkit;
public class ConsoleMessage
{
protected ConsoleMessage() {}
public ConsoleMessage(String p0, String p1, int p2, ConsoleMessage.MessageLevel p3){}
public ConsoleMessage.MessageLevel messageLevel(){ return null; }
public String message(){ return null; }
public String sourceId(){ return null; }
public int lineNumber(){ return 0; }
static public enum MessageLevel
{
DEBUG, ERROR, LOG, TIP, WARNING;
private MessageLevel() {}
}
}

View File

@@ -0,0 +1,9 @@
// Generated automatically from android.webkit.DownloadListener for testing purposes
package android.webkit;
public interface DownloadListener
{
void onDownloadStart(String p0, String p1, String p2, String p3, long p4);
}

View File

@@ -0,0 +1,20 @@
// Generated automatically from android.webkit.GeolocationPermissions for testing purposes
package android.webkit;
import android.webkit.ValueCallback;
import java.util.Set;
public class GeolocationPermissions
{
public static GeolocationPermissions getInstance(){ return null; }
public void allow(String p0){}
public void clear(String p0){}
public void clearAll(){}
public void getAllowed(String p0, ValueCallback<Boolean> p1){}
public void getOrigins(ValueCallback<Set<String>> p0){}
static public interface Callback
{
void invoke(String p0, boolean p1, boolean p2);
}
}

View File

@@ -0,0 +1,12 @@
// Generated automatically from android.webkit.HttpAuthHandler for testing purposes
package android.webkit;
import android.os.Handler;
public class HttpAuthHandler extends Handler
{
public boolean useHttpAuthUsernamePassword(){ return false; }
public void cancel(){}
public void proceed(String p0, String p1){}
}

View File

@@ -0,0 +1,10 @@
// Generated automatically from android.webkit.JsPromptResult for testing purposes
package android.webkit;
import android.webkit.JsResult;
public class JsPromptResult extends JsResult
{
public void confirm(String p0){}
}

View File

@@ -0,0 +1,10 @@
// Generated automatically from android.webkit.JsResult for testing purposes
package android.webkit;
public class JsResult
{
public final void cancel(){}
public final void confirm(){}
}

View File

@@ -0,0 +1,18 @@
// Generated automatically from android.webkit.PermissionRequest for testing purposes
package android.webkit;
import android.net.Uri;
abstract public class PermissionRequest
{
public PermissionRequest(){}
public abstract String[] getResources();
public abstract Uri getOrigin();
public abstract void deny();
public abstract void grant(String[] p0);
public static String RESOURCE_AUDIO_CAPTURE = null;
public static String RESOURCE_MIDI_SYSEX = null;
public static String RESOURCE_PROTECTED_MEDIA_ID = null;
public static String RESOURCE_VIDEO_CAPTURE = null;
}

View File

@@ -0,0 +1,11 @@
// Generated automatically from android.webkit.RenderProcessGoneDetail for testing purposes
package android.webkit;
abstract public class RenderProcessGoneDetail
{
public RenderProcessGoneDetail(){}
public abstract boolean didCrash();
public abstract int rendererPriorityAtExit();
}

View File

@@ -0,0 +1,12 @@
// Generated automatically from android.webkit.SafeBrowsingResponse for testing purposes
package android.webkit;
abstract public class SafeBrowsingResponse
{
public SafeBrowsingResponse(){}
public abstract void backToSafety(boolean p0);
public abstract void proceed(boolean p0);
public abstract void showInterstitial(boolean p0);
}

View File

@@ -0,0 +1,11 @@
// Generated automatically from android.webkit.SslErrorHandler for testing purposes
package android.webkit;
import android.os.Handler;
public class SslErrorHandler extends Handler
{
public void cancel(){}
public void proceed(){}
}

View File

@@ -0,0 +1,9 @@
// Generated automatically from android.webkit.ValueCallback for testing purposes
package android.webkit;
public interface ValueCallback<T>
{
void onReceiveValue(T p0);
}

View File

@@ -0,0 +1,16 @@
// Generated automatically from android.webkit.WebBackForwardList for testing purposes
package android.webkit;
import android.webkit.WebHistoryItem;
import java.io.Serializable;
abstract public class WebBackForwardList implements Cloneable, Serializable
{
protected abstract WebBackForwardList clone();
public WebBackForwardList(){}
public abstract WebHistoryItem getCurrentItem();
public abstract WebHistoryItem getItemAtIndex(int p0);
public abstract int getCurrentIndex();
public abstract int getSize();
}

View File

@@ -0,0 +1,67 @@
// Generated automatically from android.webkit.WebChromeClient for testing purposes
package android.webkit;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Message;
import android.view.View;
import android.webkit.ConsoleMessage;
import android.webkit.GeolocationPermissions;
import android.webkit.JsPromptResult;
import android.webkit.JsResult;
import android.webkit.PermissionRequest;
import android.webkit.ValueCallback;
import android.webkit.WebStorage;
import android.webkit.WebView;
public class WebChromeClient
{
abstract static public class FileChooserParams
{
public FileChooserParams(){}
public abstract CharSequence getTitle();
public abstract Intent createIntent();
public abstract String getFilenameHint();
public abstract String[] getAcceptTypes();
public abstract boolean isCaptureEnabled();
public abstract int getMode();
public static Uri[] parseResult(int p0, Intent p1){ return null; }
public static int MODE_OPEN = 0;
public static int MODE_OPEN_MULTIPLE = 0;
public static int MODE_SAVE = 0;
}
public Bitmap getDefaultVideoPoster(){ return null; }
public View getVideoLoadingProgressView(){ return null; }
public WebChromeClient(){}
public boolean onConsoleMessage(ConsoleMessage p0){ return false; }
public boolean onCreateWindow(WebView p0, boolean p1, boolean p2, Message p3){ return false; }
public boolean onJsAlert(WebView p0, String p1, String p2, JsResult p3){ return false; }
public boolean onJsBeforeUnload(WebView p0, String p1, String p2, JsResult p3){ return false; }
public boolean onJsConfirm(WebView p0, String p1, String p2, JsResult p3){ return false; }
public boolean onJsPrompt(WebView p0, String p1, String p2, String p3, JsPromptResult p4){ return false; }
public boolean onJsTimeout(){ return false; }
public boolean onShowFileChooser(WebView p0, ValueCallback<Uri[]> p1, WebChromeClient.FileChooserParams p2){ return false; }
public void getVisitedHistory(ValueCallback<String[]> p0){}
public void onCloseWindow(WebView p0){}
public void onConsoleMessage(String p0, int p1, String p2){}
public void onExceededDatabaseQuota(String p0, String p1, long p2, long p3, long p4, WebStorage.QuotaUpdater p5){}
public void onGeolocationPermissionsHidePrompt(){}
public void onGeolocationPermissionsShowPrompt(String p0, GeolocationPermissions.Callback p1){}
public void onHideCustomView(){}
public void onPermissionRequest(PermissionRequest p0){}
public void onPermissionRequestCanceled(PermissionRequest p0){}
public void onProgressChanged(WebView p0, int p1){}
public void onReachedMaxAppCacheSize(long p0, long p1, WebStorage.QuotaUpdater p2){}
public void onReceivedIcon(WebView p0, Bitmap p1){}
public void onReceivedTitle(WebView p0, String p1){}
public void onReceivedTouchIconUrl(WebView p0, String p1, boolean p2){}
public void onRequestFocus(WebView p0){}
public void onShowCustomView(View p0, WebChromeClient.CustomViewCallback p1){}
public void onShowCustomView(View p0, int p1, WebChromeClient.CustomViewCallback p2){}
static public interface CustomViewCallback
{
void onCustomViewHidden();
}
}

View File

@@ -0,0 +1,15 @@
// Generated automatically from android.webkit.WebHistoryItem for testing purposes
package android.webkit;
import android.graphics.Bitmap;
abstract public class WebHistoryItem implements Cloneable
{
protected abstract WebHistoryItem clone();
public WebHistoryItem(){}
public abstract Bitmap getFavicon();
public abstract String getOriginalUrl();
public abstract String getTitle();
public abstract String getUrl();
}

View File

@@ -0,0 +1,14 @@
// Generated automatically from android.webkit.WebMessage for testing purposes
package android.webkit;
import android.webkit.WebMessagePort;
public class WebMessage
{
protected WebMessage() {}
public String getData(){ return null; }
public WebMessage(String p0){}
public WebMessage(String p0, WebMessagePort[] p1){}
public WebMessagePort[] getPorts(){ return null; }
}

View File

@@ -0,0 +1,19 @@
// Generated automatically from android.webkit.WebMessagePort for testing purposes
package android.webkit;
import android.os.Handler;
import android.webkit.WebMessage;
abstract public class WebMessagePort
{
abstract static public class WebMessageCallback
{
public WebMessageCallback(){}
public void onMessage(WebMessagePort p0, WebMessage p1){}
}
public abstract void close();
public abstract void postMessage(WebMessage p0);
public abstract void setWebMessageCallback(WebMessagePort.WebMessageCallback p0);
public abstract void setWebMessageCallback(WebMessagePort.WebMessageCallback p0, Handler p1);
}

View File

@@ -0,0 +1,10 @@
// Generated automatically from android.webkit.WebResourceError for testing purposes
package android.webkit;
abstract public class WebResourceError
{
public abstract CharSequence getDescription();
public abstract int getErrorCode();
}

View File

@@ -1,72 +1,16 @@
/*
* Copyright (C) 2014 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Generated automatically from android.webkit.WebResourceRequest for testing purposes
package android.webkit;
import android.net.Uri;
import java.util.Map;
/**
* Encompasses parameters to the {@link WebViewClient#shouldInterceptRequest}
* method.
*/
public interface WebResourceRequest {
/**
* Gets the URL for which the resource request was made.
*
* @return the URL for which the resource request was made.
*/
Uri getUrl();
/**
* Gets whether the request was made for the main frame.
*
* @return whether the request was made for the main frame. Will be
* {@code false} for iframes, for example.
*/
boolean isForMainFrame();
/**
* Gets whether the request was a result of a server-side redirect.
*
* @return whether the request was a result of a server-side redirect.
*/
boolean isRedirect();
/**
* Gets whether a gesture (such as a click) was associated with the request. For
* security reasons in certain situations this method may return {@code false}
* even though the sequence of events which caused the request to be created was
* initiated by a user gesture.
*
* @return whether a gesture was associated with the request.
*/
boolean hasGesture();
/**
* Gets the method associated with the request, for example "GET".
*
* @return the method associated with the request.
*/
String getMethod();
/**
* Gets the headers associated with the request. These are represented as a
* mapping of header name to header value.
*
* @return the headers associated with the request.
*/
public interface WebResourceRequest
{
Map<String, String> getRequestHeaders();
}
String getMethod();
Uri getUrl();
boolean hasGesture();
boolean isForMainFrame();
boolean isRedirect();
}

View File

@@ -1,173 +1,24 @@
/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Generated automatically from android.webkit.WebResourceResponse for testing purposes
package android.webkit;
import java.io.InputStream;
import java.util.Map;
/**
* Encapsulates a resource response. Applications can return an instance of this
* class from {@link WebViewClient#shouldInterceptRequest} to provide a custom
* response when the WebView requests a particular resource.
*/
public class WebResourceResponse {
/**
* Constructs a resource response with the given MIME type, encoding, and input
* stream. Callers must implement {@link InputStream#read(byte[])
* InputStream.read(byte[])} for the input stream.
*
* @param mimeType the resource response's MIME type, for example text/html
* @param encoding the resource response's encoding
* @param data the input stream that provides the resource response's data.
* Must not be a StringBufferInputStream.
*/
public WebResourceResponse(String mimeType, String encoding, InputStream data) {
}
/**
* Constructs a resource response with the given parameters. Callers must
* implement {@link InputStream#read(byte[]) InputStream.read(byte[])} for the
* input stream.
*
* @param mimeType the resource response's MIME type, for example
* text/html
* @param encoding the resource response's encoding
* @param statusCode the status code needs to be in the ranges [100, 299],
* [400, 599]. Causing a redirect by specifying a 3xx
* code is not supported.
* @param reasonPhrase the phrase describing the status code, for example
* "OK". Must be non-empty.
* @param responseHeaders the resource response's headers represented as a
* mapping of header name -> header value.
* @param data the input stream that provides the resource response's
* data. Must not be a StringBufferInputStream.
*/
public WebResourceResponse(String mimeType, String encoding, int statusCode, String reasonPhrase,
Map<String, String> responseHeaders, InputStream data) {
}
/**
* Sets the resource response's MIME type, for example &quot;text/html&quot;.
*
* @param mimeType The resource response's MIME type
*/
public void setMimeType(String mimeType) {
}
/**
* Gets the resource response's MIME type.
*
* @return The resource response's MIME type
*/
public String getMimeType() {
return null;
}
/**
* Sets the resource response's encoding, for example &quot;UTF-8&quot;. This is
* used to decode the data from the input stream.
*
* @param encoding The resource response's encoding
*/
public void setEncoding(String encoding) {
}
/**
* Gets the resource response's encoding.
*
* @return The resource response's encoding
*/
public String getEncoding() {
return null;
}
/**
* Sets the resource response's status code and reason phrase.
*
* @param statusCode the status code needs to be in the ranges [100, 299],
* [400, 599]. Causing a redirect by specifying a 3xx code
* is not supported.
* @param reasonPhrase the phrase describing the status code, for example "OK".
* Must be non-empty.
*/
public void setStatusCodeAndReasonPhrase(int statusCode, String reasonPhrase) {
}
/**
* Gets the resource response's status code.
*
* @return The resource response's status code.
*/
public int getStatusCode() {
return -1;
}
/**
* Gets the description of the resource response's status code.
*
* @return The description of the resource response's status code.
*/
public String getReasonPhrase() {
return null;
}
/**
* Sets the headers for the resource response.
*
* @param headers Mapping of header name -> header value.
*/
public void setResponseHeaders(Map<String, String> headers) {
}
/**
* Gets the headers for the resource response.
*
* @return The headers for the resource response.
*/
public Map<String, String> getResponseHeaders() {
return null;
}
/**
* Sets the input stream that provides the resource response's data. Callers
* must implement {@link InputStream#read(byte[]) InputStream.read(byte[])}.
*
* @param data the input stream that provides the resource response's data. Must
* not be a StringBufferInputStream.
*/
public void setData(InputStream data) {
}
/**
* Gets the input stream that provides the resource response's data.
*
* @return The input stream that provides the resource response's data
*/
public InputStream getData() {
return null;
}
/**
* The internal version of the constructor that doesn't perform arguments
* checks.
*
* @hide
*/
public WebResourceResponse(boolean immutable, String mimeType, String encoding, int statusCode, String reasonPhrase,
Map<String, String> responseHeaders, InputStream data) {
}
}
public class WebResourceResponse
{
protected WebResourceResponse() {}
public InputStream getData(){ return null; }
public Map<String, String> getResponseHeaders(){ return null; }
public String getEncoding(){ return null; }
public String getMimeType(){ return null; }
public String getReasonPhrase(){ return null; }
public WebResourceResponse(String p0, String p1, InputStream p2){}
public WebResourceResponse(String p0, String p1, int p2, String p3, Map<String, String> p4, InputStream p5){}
public int getStatusCode(){ return 0; }
public void setData(InputStream p0){}
public void setEncoding(String p0){}
public void setMimeType(String p0){}
public void setResponseHeaders(Map<String, String> p0){}
public void setStatusCodeAndReasonPhrase(int p0, String p1){}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,21 @@
// Generated automatically from android.webkit.WebStorage for testing purposes
package android.webkit;
import android.webkit.ValueCallback;
import java.util.Map;
public class WebStorage
{
public static WebStorage getInstance(){ return null; }
public void deleteAllData(){}
public void deleteOrigin(String p0){}
public void getOrigins(ValueCallback<Map> p0){}
public void getQuotaForOrigin(String p0, ValueCallback<Long> p1){}
public void getUsageForOrigin(String p0, ValueCallback<Long> p1){}
public void setQuotaForOrigin(String p0, long p1){}
static public interface QuotaUpdater
{
void updateQuota(long p0);
}
}

View File

@@ -1,151 +1,259 @@
/*
* Copyright (C) 2008 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
// Generated automatically from android.webkit.WebView for testing purposes
package android.webkit;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Picture;
import android.graphics.Rect;
import android.net.Uri;
import android.net.http.SslCertificate;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.print.PrintDocumentAdapter;
import android.util.AttributeSet;
import android.util.LongSparseArray;
import android.util.SparseArray;
import android.view.DragEvent;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewStructure;
import android.view.ViewTreeObserver;
import android.view.WindowInsets;
import android.view.accessibility.AccessibilityNodeProvider;
import android.view.autofill.AutofillId;
import android.view.autofill.AutofillValue;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
import android.view.textclassifier.TextClassifier;
import android.view.translation.TranslationCapability;
import android.view.translation.ViewTranslationRequest;
import android.view.translation.ViewTranslationResponse;
import android.webkit.DownloadListener;
import android.webkit.ValueCallback;
import android.webkit.WebBackForwardList;
import android.webkit.WebChromeClient;
import android.webkit.WebMessage;
import android.webkit.WebMessagePort;
import android.webkit.WebSettings;
import android.webkit.WebViewClient;
import android.webkit.WebViewRenderProcess;
import android.webkit.WebViewRenderProcessClient;
import android.widget.AbsoluteLayout;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executor;
import java.util.function.Consumer;
public class WebView extends View {
public WebView(Context context) {
super(context);
public class WebView extends AbsoluteLayout implements ViewGroup.OnHierarchyChangeListener, ViewTreeObserver.OnGlobalFocusChangeListener
{
protected WebView() {}
abstract static public class VisualStateCallback
{
public VisualStateCallback(){}
public abstract void onComplete(long p0);
}
public void setHorizontalScrollbarOverlay(boolean overlay) {}
public void setVerticalScrollbarOverlay(boolean overlay) {}
public boolean overlayHorizontalScrollbar() {
return false;
protected int computeHorizontalScrollOffset(){ return 0; }
protected int computeHorizontalScrollRange(){ return 0; }
protected int computeVerticalScrollExtent(){ return 0; }
protected int computeVerticalScrollOffset(){ return 0; }
protected int computeVerticalScrollRange(){ return 0; }
protected void dispatchDraw(Canvas p0){}
protected void onAttachedToWindow(){}
protected void onConfigurationChanged(Configuration p0){}
protected void onDraw(Canvas p0){}
protected void onFocusChanged(boolean p0, int p1, Rect p2){}
protected void onMeasure(int p0, int p1){}
protected void onOverScrolled(int p0, int p1, boolean p2, boolean p3){}
protected void onScrollChanged(int p0, int p1, int p2, int p3){}
protected void onSizeChanged(int p0, int p1, int p2, int p3){}
protected void onVisibilityChanged(View p0, int p1){}
protected void onWindowVisibilityChanged(int p0){}
public AccessibilityNodeProvider getAccessibilityNodeProvider(){ return null; }
public Bitmap getFavicon(){ return null; }
public CharSequence getAccessibilityClassName(){ return null; }
public Handler getHandler(){ return null; }
public InputConnection onCreateInputConnection(EditorInfo p0){ return null; }
public Looper getWebViewLooper(){ return null; }
public Picture capturePicture(){ return null; }
public PrintDocumentAdapter createPrintDocumentAdapter(){ return null; }
public PrintDocumentAdapter createPrintDocumentAdapter(String p0){ return null; }
public SslCertificate getCertificate(){ return null; }
public String getOriginalUrl(){ return null; }
public String getTitle(){ return null; }
public String getUrl(){ return null; }
public String[] getHttpAuthUsernamePassword(String p0, String p1){ return null; }
public TextClassifier getTextClassifier(){ return null; }
public View findFocus(){ return null; }
public WebBackForwardList copyBackForwardList(){ return null; }
public WebBackForwardList restoreState(Bundle p0){ return null; }
public WebBackForwardList saveState(Bundle p0){ return null; }
public WebChromeClient getWebChromeClient(){ return null; }
public WebMessagePort[] createWebMessageChannel(){ return null; }
public WebSettings getSettings(){ return null; }
public WebView(Context p0){}
public WebView(Context p0, AttributeSet p1){}
public WebView(Context p0, AttributeSet p1, int p2){}
public WebView(Context p0, AttributeSet p1, int p2, boolean p3){}
public WebView(Context p0, AttributeSet p1, int p2, int p3){}
public WebView.HitTestResult getHitTestResult(){ return null; }
public WebViewClient getWebViewClient(){ return null; }
public WebViewRenderProcess getWebViewRenderProcess(){ return null; }
public WebViewRenderProcessClient getWebViewRenderProcessClient(){ return null; }
public WindowInsets onApplyWindowInsets(WindowInsets p0){ return null; }
public boolean canGoBack(){ return false; }
public boolean canGoBackOrForward(int p0){ return false; }
public boolean canGoForward(){ return false; }
public boolean canZoomIn(){ return false; }
public boolean canZoomOut(){ return false; }
public boolean dispatchKeyEvent(KeyEvent p0){ return false; }
public boolean getRendererPriorityWaivedWhenNotVisible(){ return false; }
public boolean isPrivateBrowsingEnabled(){ return false; }
public boolean isVisibleToUserForAutofill(int p0){ return false; }
public boolean onCheckIsTextEditor(){ return false; }
public boolean onDragEvent(DragEvent p0){ return false; }
public boolean onGenericMotionEvent(MotionEvent p0){ return false; }
public boolean onHoverEvent(MotionEvent p0){ return false; }
public boolean onKeyDown(int p0, KeyEvent p1){ return false; }
public boolean onKeyMultiple(int p0, int p1, KeyEvent p2){ return false; }
public boolean onKeyUp(int p0, KeyEvent p1){ return false; }
public boolean onTouchEvent(MotionEvent p0){ return false; }
public boolean onTrackballEvent(MotionEvent p0){ return false; }
public boolean overlayHorizontalScrollbar(){ return false; }
public boolean overlayVerticalScrollbar(){ return false; }
public boolean pageDown(boolean p0){ return false; }
public boolean pageUp(boolean p0){ return false; }
public boolean performLongClick(){ return false; }
public boolean requestChildRectangleOnScreen(View p0, Rect p1, boolean p2){ return false; }
public boolean requestFocus(int p0, Rect p1){ return false; }
public boolean shouldDelayChildPressedState(){ return false; }
public boolean showFindDialog(String p0, boolean p1){ return false; }
public boolean zoomIn(){ return false; }
public boolean zoomOut(){ return false; }
public float getScale(){ return 0; }
public int findAll(String p0){ return 0; }
public int getContentHeight(){ return 0; }
public int getProgress(){ return 0; }
public int getRendererRequestedPriority(){ return 0; }
public static ClassLoader getWebViewClassLoader(){ return null; }
public static PackageInfo getCurrentWebViewPackage(){ return null; }
public static String SCHEME_GEO = null;
public static String SCHEME_MAILTO = null;
public static String SCHEME_TEL = null;
public static String findAddress(String p0){ return null; }
public static Uri getSafeBrowsingPrivacyPolicyUrl(){ return null; }
public static int RENDERER_PRIORITY_BOUND = 0;
public static int RENDERER_PRIORITY_IMPORTANT = 0;
public static int RENDERER_PRIORITY_WAIVED = 0;
public static void clearClientCertPreferences(Runnable p0){}
public static void disableWebView(){}
public static void enableSlowWholeDocumentDraw(){}
public static void setDataDirectorySuffix(String p0){}
public static void setSafeBrowsingWhitelist(List<String> p0, ValueCallback<Boolean> p1){}
public static void setWebContentsDebuggingEnabled(boolean p0){}
public static void startSafeBrowsing(Context p0, ValueCallback<Boolean> p1){}
public void addJavascriptInterface(Object p0, String p1){}
public void autofill(SparseArray<AutofillValue> p0){}
public void clearCache(boolean p0){}
public void clearFormData(){}
public void clearHistory(){}
public void clearMatches(){}
public void clearSslPreferences(){}
public void clearView(){}
public void computeScroll(){}
public void destroy(){}
public void dispatchCreateViewTranslationRequest(Map<AutofillId, long[]> p0, int[] p1, TranslationCapability p2, List<ViewTranslationRequest> p3){}
public void documentHasImages(Message p0){}
public void evaluateJavascript(String p0, ValueCallback<String> p1){}
public void findAllAsync(String p0){}
public void findNext(boolean p0){}
public void flingScroll(int p0, int p1){}
public void freeMemory(){}
public void goBack(){}
public void goBackOrForward(int p0){}
public void goForward(){}
public void invokeZoomPicker(){}
public void loadData(String p0, String p1, String p2){}
public void loadDataWithBaseURL(String p0, String p1, String p2, String p3, String p4){}
public void loadUrl(String p0){}
public void loadUrl(String p0, Map<String, String> p1){}
public void onChildViewAdded(View p0, View p1){}
public void onChildViewRemoved(View p0, View p1){}
public void onCreateVirtualViewTranslationRequests(long[] p0, int[] p1, Consumer<ViewTranslationRequest> p2){}
public void onFinishTemporaryDetach(){}
public void onGlobalFocusChanged(View p0, View p1){}
public void onPause(){}
public void onProvideAutofillVirtualStructure(ViewStructure p0, int p1){}
public void onProvideContentCaptureStructure(ViewStructure p0, int p1){}
public void onProvideVirtualStructure(ViewStructure p0){}
public void onResume(){}
public void onStartTemporaryDetach(){}
public void onVirtualViewTranslationResponses(LongSparseArray<ViewTranslationResponse> p0){}
public void onWindowFocusChanged(boolean p0){}
public void pauseTimers(){}
public void postUrl(String p0, byte[] p1){}
public void postVisualStateCallback(long p0, WebView.VisualStateCallback p1){}
public void postWebMessage(WebMessage p0, Uri p1){}
public void reload(){}
public void removeJavascriptInterface(String p0){}
public void requestFocusNodeHref(Message p0){}
public void requestImageRef(Message p0){}
public void resumeTimers(){}
public void savePassword(String p0, String p1, String p2){}
public void saveWebArchive(String p0){}
public void saveWebArchive(String p0, boolean p1, ValueCallback<String> p2){}
public void setBackgroundColor(int p0){}
public void setCertificate(SslCertificate p0){}
public void setDownloadListener(DownloadListener p0){}
public void setFindListener(WebView.FindListener p0){}
public void setHorizontalScrollbarOverlay(boolean p0){}
public void setHttpAuthUsernamePassword(String p0, String p1, String p2, String p3){}
public void setInitialScale(int p0){}
public void setLayerType(int p0, Paint p1){}
public void setLayoutParams(ViewGroup.LayoutParams p0){}
public void setMapTrackballToArrowKeys(boolean p0){}
public void setNetworkAvailable(boolean p0){}
public void setOverScrollMode(int p0){}
public void setPictureListener(WebView.PictureListener p0){}
public void setRendererPriorityPolicy(int p0, boolean p1){}
public void setScrollBarStyle(int p0){}
public void setTextClassifier(TextClassifier p0){}
public void setVerticalScrollbarOverlay(boolean p0){}
public void setWebChromeClient(WebChromeClient p0){}
public void setWebViewClient(WebViewClient p0){}
public void setWebViewRenderProcessClient(Executor p0, WebViewRenderProcessClient p1){}
public void setWebViewRenderProcessClient(WebViewRenderProcessClient p0){}
public void stopLoading(){}
public void zoomBy(float p0){}
static public class HitTestResult
{
public String getExtra(){ return null; }
public int getType(){ return 0; }
public static int ANCHOR_TYPE = 0;
public static int EDIT_TEXT_TYPE = 0;
public static int EMAIL_TYPE = 0;
public static int GEO_TYPE = 0;
public static int IMAGE_ANCHOR_TYPE = 0;
public static int IMAGE_TYPE = 0;
public static int PHONE_TYPE = 0;
public static int SRC_ANCHOR_TYPE = 0;
public static int SRC_IMAGE_ANCHOR_TYPE = 0;
public static int UNKNOWN_TYPE = 0;
}
public boolean overlayVerticalScrollbar() {
return false;
static public interface FindListener
{
void onFindResultReceived(int p0, int p1, boolean p2);
}
public void savePassword(String host, String username, String password) {}
public void setHttpAuthUsernamePassword(String host, String realm, String username,
String password) {}
public String[] getHttpAuthUsernamePassword(String host, String realm) {
return null;
}
public void destroy() {}
public static void enablePlatformNotifications() {}
public static void disablePlatformNotifications() {}
public void loadUrl(String url) {}
public void loadData(String data, String mimeType, String encoding) {}
public void loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding,
String failUrl) {}
public void stopLoading() {}
public void reload() {}
public boolean canGoBack() {
return false;
}
public void goBack() {}
public boolean canGoForward() {
return false;
}
public void goForward() {}
public boolean canGoBackOrForward(int steps) {
return false;
}
public void goBackOrForward(int steps) {}
public boolean pageUp(boolean top) {
return false;
}
public boolean pageDown(boolean bottom) {
return false;
}
public void clearView() {}
public float getScale() {
return 0;
}
public void setInitialScale(int scaleInPercent) {}
public void invokeZoomPicker() {}
public String getUrl() {
return null;
}
public String getTitle() {
return null;
}
public int getProgress() {
return 0;
}
public int getContentHeight() {
return 0;
}
public void pauseTimers() {}
public void resumeTimers() {}
public void clearCache() {}
public void clearFormData() {}
public void clearHistory() {}
public void clearSslPreferences() {}
public static String findAddress(String addr) {
return null;
}
public void setWebViewClient(WebViewClient client) {}
public void addJavascriptInterface(Object obj, String interfaceName) {}
public View getZoomControls() {
return null;
}
public boolean zoomIn() {
return false;
}
public boolean zoomOut() {
return false;
}
public WebSettings getSettings() {
return null;
static public interface PictureListener
{
void onNewPicture(WebView p0, Picture p1);
}
}

View File

@@ -1,231 +1,66 @@
/*
* Copyright (C) 2008 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Generated automatically from android.webkit.WebViewClient for testing purposes
package android.webkit;
public class WebViewClient {
/**
* Give the host application a chance to take over the control when a new url is
* about to be loaded in the current WebView. If WebViewClient is not provided,
* by default WebView will ask Activity Manager to choose the proper handler for
* the url. If WebViewClient is provided, return {@code true} means the host
* application handles the url, while return {@code false} means the current
* WebView handles the url. This method is not called for requests using the
* POST "method".
*
* @param view The WebView that is initiating the callback.
* @param url The url to be loaded.
* @return {@code true} if the host application wants to leave the current
* WebView and handle the url itself, otherwise return {@code false}.
* @deprecated Use {@link #shouldOverrideUrlLoading(WebView, WebResourceRequest)
* shouldOverrideUrlLoading(WebView, WebResourceRequest)} instead.
*/
@Deprecated
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
/**
* Give the host application a chance to take over the control when a new url is
* about to be loaded in the current WebView. If WebViewClient is not provided,
* by default WebView will ask Activity Manager to choose the proper handler for
* the url. If WebViewClient is provided, return {@code true} means the host
* application handles the url, while return {@code false} means the current
* WebView handles the url.
*
* <p>
* Notes:
* <ul>
* <li>This method is not called for requests using the POST
* &quot;method&quot;.</li>
* <li>This method is also called for subframes with non-http schemes, thus it
* is strongly disadvised to unconditionally call
* {@link WebView#loadUrl(String)} with the request's url from inside the method
* and then return {@code true}, as this will make WebView to attempt loading a
* non-http url, and thus fail.</li>
* </ul>
*
* @param view The WebView that is initiating the callback.
* @param request Object containing the details of the request.
* @return {@code true} if the host application wants to leave the current
* WebView and handle the url itself, otherwise return {@code false}.
*/
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return false;
}
/**
* Notify the host application that a page has finished loading. This method is
* called only for main frame. When onPageFinished() is called, the rendering
* picture may not be updated yet. To get the notification for the new Picture,
* use {@link WebView.PictureListener#onNewPicture}.
*
* @param view The WebView that is initiating the callback.
* @param url The url of the page.
*/
public void onPageFinished(WebView view, String url) {
}
/**
* Notify the host application that the WebView will load the resource specified
* by the given url.
*
* @param view The WebView that is initiating the callback.
* @param url The url of the resource the WebView will load.
*/
public void onLoadResource(WebView view, String url) {
}
/**
* Notify the host application that {@link android.webkit.WebView} content left
* over from previous page navigations will no longer be drawn.
*
* <p>
* This callback can be used to determine the point at which it is safe to make
* a recycled {@link android.webkit.WebView} visible, ensuring that no stale
* content is shown. It is called at the earliest point at which it can be
* guaranteed that {@link WebView#onDraw} will no longer draw any content from
* previous navigations. The next draw will display either the
* {@link WebView#setBackgroundColor background color} of the {@link WebView},
* or some of the contents of the newly loaded page.
*
* <p>
* This method is called when the body of the HTTP response has started loading,
* is reflected in the DOM, and will be visible in subsequent draws. This
* callback occurs early in the document loading process, and as such you should
* expect that linked resources (for example, CSS and images) may not be
* available.
*
* <p>
* For more fine-grained notification of visual state updates, see
* {@link WebView#postVisualStateCallback}.
*
* <p>
* Please note that all the conditions and recommendations applicable to
* {@link WebView#postVisualStateCallback} also apply to this API.
*
* <p>
* This callback is only called for main frame navigations.
*
* @param view The {@link android.webkit.WebView} for which the navigation
* occurred.
* @param url The URL corresponding to the page navigation that triggered this
* callback.
*/
public void onPageCommitVisible(WebView view, String url) {
}
/**
* Notify the host application of a resource request and allow the application
* to return the data. If the return value is {@code null}, the WebView will
* continue to load the resource as usual. Otherwise, the return response and
* data will be used.
*
* <p>
* This callback is invoked for a variety of URL schemes (e.g.,
* {@code http(s):}, {@code
* data:}, {@code file:}, etc.), not only those schemes which send requests over
* the network. This is not called for {@code javascript:} URLs, {@code blob:}
* URLs, or for assets accessed via {@code file:///android_asset/} or
* {@code file:///android_res/} URLs.
*
* <p>
* In the case of redirects, this is only called for the initial resource URL,
* not any subsequent redirect URLs.
*
* <p class="note">
* <b>Note:</b> This method is called on a thread other than the UI thread so
* clients should exercise caution when accessing private data or the view
* system.
*
* <p class="note">
* <b>Note:</b> When Safe Browsing is enabled, these URLs still undergo Safe
* Browsing checks. If this is undesired, whitelist the URL with
* {@link WebView#setSafeBrowsingWhitelist} or ignore the warning with
* {@link #onSafeBrowsingHit}.
*
* @param view The {@link android.webkit.WebView} that is requesting the
* resource.
* @param url The raw url of the resource.
* @return A {@link android.webkit.WebResourceResponse} containing the response
* information or {@code null} if the WebView should load the resource
* itself.
* @deprecated Use {@link #shouldInterceptRequest(WebView, WebResourceRequest)
* shouldInterceptRequest(WebView, WebResourceRequest)} instead.
*/
@Deprecated
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
return null;
}
/**
* Notify the host application of a resource request and allow the application
* to return the data. If the return value is {@code null}, the WebView will
* continue to load the resource as usual. Otherwise, the return response and
* data will be used.
*
* <p>
* This callback is invoked for a variety of URL schemes (e.g.,
* {@code http(s):}, {@code
* data:}, {@code file:}, etc.), not only those schemes which send requests over
* the network. This is not called for {@code javascript:} URLs, {@code blob:}
* URLs, or for assets accessed via {@code file:///android_asset/} or
* {@code file:///android_res/} URLs.
*
* <p>
* In the case of redirects, this is only called for the initial resource URL,
* not any subsequent redirect URLs.
*
* <p class="note">
* <b>Note:</b> This method is called on a thread other than the UI thread so
* clients should exercise caution when accessing private data or the view
* system.
*
* <p class="note">
* <b>Note:</b> When Safe Browsing is enabled, these URLs still undergo Safe
* Browsing checks. If this is undesired, whitelist the URL with
* {@link WebView#setSafeBrowsingWhitelist} or ignore the warning with
* {@link #onSafeBrowsingHit}.
*
* @param view The {@link android.webkit.WebView} that is requesting the
* resource.
* @param request Object containing the details of the request.
* @return A {@link android.webkit.WebResourceResponse} containing the response
* information or {@code null} if the WebView should load the resource
* itself.
*/
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
return null;
}
/**
* Report an error to the host application. These errors are unrecoverable (i.e.
* the main resource is unavailable). The {@code errorCode} parameter
* corresponds to one of the {@code ERROR_*} constants.
*
* @param view The WebView that is initiating the callback.
* @param errorCode The error code corresponding to an ERROR_* value.
* @param description A String describing the error.
* @param failingUrl The url that failed to load.
* @deprecated Use
* {@link #onReceivedError(WebView, WebResourceRequest, WebResourceError)
* onReceivedError(WebView, WebResourceRequest, WebResourceError)}
* instead.
*/
@Deprecated
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
}
import android.graphics.Bitmap;
import android.net.http.SslError;
import android.os.Message;
import android.view.KeyEvent;
import android.webkit.ClientCertRequest;
import android.webkit.HttpAuthHandler;
import android.webkit.RenderProcessGoneDetail;
import android.webkit.SafeBrowsingResponse;
import android.webkit.SslErrorHandler;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebView;
public class WebViewClient
{
public WebResourceResponse shouldInterceptRequest(WebView p0, String p1){ return null; }
public WebResourceResponse shouldInterceptRequest(WebView p0, WebResourceRequest p1){ return null; }
public WebViewClient(){}
public boolean onRenderProcessGone(WebView p0, RenderProcessGoneDetail p1){ return false; }
public boolean shouldOverrideKeyEvent(WebView p0, KeyEvent p1){ return false; }
public boolean shouldOverrideUrlLoading(WebView p0, String p1){ return false; }
public boolean shouldOverrideUrlLoading(WebView p0, WebResourceRequest p1){ return false; }
public static int ERROR_AUTHENTICATION = 0;
public static int ERROR_BAD_URL = 0;
public static int ERROR_CONNECT = 0;
public static int ERROR_FAILED_SSL_HANDSHAKE = 0;
public static int ERROR_FILE = 0;
public static int ERROR_FILE_NOT_FOUND = 0;
public static int ERROR_HOST_LOOKUP = 0;
public static int ERROR_IO = 0;
public static int ERROR_PROXY_AUTHENTICATION = 0;
public static int ERROR_REDIRECT_LOOP = 0;
public static int ERROR_TIMEOUT = 0;
public static int ERROR_TOO_MANY_REQUESTS = 0;
public static int ERROR_UNKNOWN = 0;
public static int ERROR_UNSAFE_RESOURCE = 0;
public static int ERROR_UNSUPPORTED_AUTH_SCHEME = 0;
public static int ERROR_UNSUPPORTED_SCHEME = 0;
public static int SAFE_BROWSING_THREAT_BILLING = 0;
public static int SAFE_BROWSING_THREAT_MALWARE = 0;
public static int SAFE_BROWSING_THREAT_PHISHING = 0;
public static int SAFE_BROWSING_THREAT_UNKNOWN = 0;
public static int SAFE_BROWSING_THREAT_UNWANTED_SOFTWARE = 0;
public void doUpdateVisitedHistory(WebView p0, String p1, boolean p2){}
public void onFormResubmission(WebView p0, Message p1, Message p2){}
public void onLoadResource(WebView p0, String p1){}
public void onPageCommitVisible(WebView p0, String p1){}
public void onPageFinished(WebView p0, String p1){}
public void onPageStarted(WebView p0, String p1, Bitmap p2){}
public void onReceivedClientCertRequest(WebView p0, ClientCertRequest p1){}
public void onReceivedError(WebView p0, WebResourceRequest p1, WebResourceError p2){}
public void onReceivedError(WebView p0, int p1, String p2, String p3){}
public void onReceivedHttpAuthRequest(WebView p0, HttpAuthHandler p1, String p2, String p3){}
public void onReceivedHttpError(WebView p0, WebResourceRequest p1, WebResourceResponse p2){}
public void onReceivedLoginRequest(WebView p0, String p1, String p2, String p3){}
public void onReceivedSslError(WebView p0, SslErrorHandler p1, SslError p2){}
public void onSafeBrowsingHit(WebView p0, WebResourceRequest p1, int p2, SafeBrowsingResponse p3){}
public void onScaleChanged(WebView p0, float p1, float p2){}
public void onTooManyRedirects(WebView p0, Message p1, Message p2){}
public void onUnhandledKeyEvent(WebView p0, KeyEvent p1){}
}

View File

@@ -0,0 +1,10 @@
// Generated automatically from android.webkit.WebViewRenderProcess for testing purposes
package android.webkit;
abstract public class WebViewRenderProcess
{
public WebViewRenderProcess(){}
public abstract boolean terminate();
}

View File

@@ -0,0 +1,13 @@
// Generated automatically from android.webkit.WebViewRenderProcessClient for testing purposes
package android.webkit;
import android.webkit.WebView;
import android.webkit.WebViewRenderProcess;
abstract public class WebViewRenderProcessClient
{
public WebViewRenderProcessClient(){}
public abstract void onRenderProcessResponsive(WebView p0, WebViewRenderProcess p1);
public abstract void onRenderProcessUnresponsive(WebView p0, WebViewRenderProcess p1);
}

View File

@@ -0,0 +1,23 @@
// Generated automatically from android.widget.AbsoluteLayout for testing purposes
package android.widget;
import android.content.Context;
import android.util.AttributeSet;
import android.view.ViewGroup;
public class AbsoluteLayout extends ViewGroup
{
protected AbsoluteLayout() {}
protected ViewGroup.LayoutParams generateDefaultLayoutParams(){ return null; }
protected ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams p0){ return null; }
protected boolean checkLayoutParams(ViewGroup.LayoutParams p0){ return false; }
protected void onLayout(boolean p0, int p1, int p2, int p3, int p4){}
protected void onMeasure(int p0, int p1){}
public AbsoluteLayout(Context p0){}
public AbsoluteLayout(Context p0, AttributeSet p1){}
public AbsoluteLayout(Context p0, AttributeSet p1, int p2){}
public AbsoluteLayout(Context p0, AttributeSet p1, int p2, int p3){}
public ViewGroup.LayoutParams generateLayoutParams(AttributeSet p0){ return null; }
public boolean shouldDelayChildPressedState(){ return false; }
}