Home | History | Annotate | Download | only in test
      1 // Copyright 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 package org.chromium.android_webview.test;
      6 
      7 import android.graphics.Bitmap;
      8 import android.graphics.Picture;
      9 import android.net.http.SslError;
     10 import android.os.Looper;
     11 import android.os.Message;
     12 import android.util.Log;
     13 import android.view.KeyEvent;
     14 import android.view.View;
     15 import android.webkit.ConsoleMessage;
     16 import android.webkit.GeolocationPermissions;
     17 import android.webkit.ValueCallback;
     18 import android.webkit.WebChromeClient;
     19 
     20 import org.chromium.android_webview.AwContentsClient;
     21 import org.chromium.android_webview.AwContentsClientBridge;
     22 import org.chromium.android_webview.AwHttpAuthHandler;
     23 import org.chromium.android_webview.AwWebResourceResponse;
     24 import org.chromium.android_webview.JsPromptResultReceiver;
     25 import org.chromium.android_webview.JsResultReceiver;
     26 import org.chromium.android_webview.permission.AwPermissionRequest;
     27 import org.chromium.base.ThreadUtils;
     28 
     29 import java.security.Principal;
     30 
     31 /**
     32  * As a convience for tests that only care about specefic callbacks, this class provides
     33  * empty implementations of all abstract methods.
     34  */
     35 public class NullContentsClient extends AwContentsClient {
     36 
     37     private static final String TAG = "NullContentsClient";
     38 
     39     public NullContentsClient() {
     40         this(ThreadUtils.getUiThreadLooper());
     41     }
     42 
     43     public NullContentsClient(Looper looper) {
     44         super(looper);  // "...beams are gonna blind me".
     45     }
     46 
     47     @Override
     48     public boolean shouldOverrideUrlLoading(String url) {
     49         return false;
     50     }
     51 
     52     @Override
     53     public void onUnhandledKeyEvent(KeyEvent event) {
     54     }
     55 
     56     @Override
     57     public void getVisitedHistory(ValueCallback<String[]> callback) {
     58     }
     59 
     60     @Override
     61     public void doUpdateVisitedHistory(String url, boolean isReload) {
     62     }
     63 
     64     @Override
     65     public void onProgressChanged(int progress) {
     66     }
     67 
     68     @Override
     69     public AwWebResourceResponse shouldInterceptRequest(
     70             AwContentsClient.ShouldInterceptRequestParams params) {
     71         return null;
     72     }
     73 
     74     @Override
     75     public boolean shouldOverrideKeyEvent(KeyEvent event) {
     76         return false;
     77     }
     78 
     79     @Override
     80     public void onLoadResource(String url) {
     81     }
     82 
     83     @Override
     84     public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
     85         return false;
     86     }
     87 
     88     @Override
     89     public void onReceivedHttpAuthRequest(AwHttpAuthHandler handler, String host, String realm) {
     90         handler.cancel();
     91     }
     92 
     93     @Override
     94     public void onReceivedSslError(ValueCallback<Boolean> callback, SslError error) {
     95         callback.onReceiveValue(false);
     96     }
     97 
     98     @Override
     99     public void onReceivedClientCertRequest(
    100             final AwContentsClientBridge.ClientCertificateRequestCallback callback,
    101             final String[] keyTypes, final Principal[] principals, final String host,
    102             final int port) {
    103         callback.proceed(null, null);
    104     }
    105 
    106     @Override
    107     public void onReceivedLoginRequest(String realm, String account, String args) {
    108     }
    109 
    110     @Override
    111     public void onGeolocationPermissionsShowPrompt(String origin,
    112             GeolocationPermissions.Callback callback) {
    113     }
    114 
    115     @Override
    116     public void onGeolocationPermissionsHidePrompt() {
    117     }
    118 
    119     @Override
    120     public void handleJsAlert(String url, String message, JsResultReceiver receiver) {
    121         Log.i(TAG, "handleJsAlert(" + url + ", " + message + ")");
    122         receiver.cancel();
    123     }
    124 
    125     @Override
    126     public void handleJsBeforeUnload(String url, String message, JsResultReceiver receiver) {
    127         Log.i(TAG, "handleJsBeforeUnload(" + url + ", " + message + ")");
    128         receiver.confirm();
    129     }
    130 
    131     @Override
    132     public void handleJsConfirm(String url, String message, JsResultReceiver receiver) {
    133         Log.i(TAG, "handleJsConfirm(" + url + ", " + message + ")");
    134         receiver.cancel();
    135     }
    136 
    137     @Override
    138     public void handleJsPrompt(
    139             String url, String message, String defaultValue, JsPromptResultReceiver receiver) {
    140         Log.i(TAG, "handleJsPrompt(" + url + ", " + message + ")");
    141         receiver.cancel();
    142     }
    143 
    144     @Override
    145     public void onFindResultReceived(int activeMatchOrdinal, int numberOfMatches,
    146             boolean isDoneCounting) {
    147     }
    148 
    149     @Override
    150     public void onNewPicture(Picture picture) {
    151     }
    152 
    153     @Override
    154     public void onPageStarted(String url) {
    155     }
    156 
    157     @Override
    158     public void onPageFinished(String url) {
    159     }
    160 
    161     @Override
    162     public void onReceivedError(int errorCode, String description, String failingUrl) {
    163     }
    164 
    165     @Override
    166     public void onFormResubmission(Message dontResend, Message resend) {
    167         dontResend.sendToTarget();
    168     }
    169 
    170     @Override
    171     public void onDownloadStart(String url,
    172                                 String userAgent,
    173                                 String contentDisposition,
    174                                 String mimeType,
    175                                 long contentLength) {
    176     }
    177 
    178     @Override
    179     public boolean onCreateWindow(boolean isDialog, boolean isUserGesture) {
    180         return false;
    181     }
    182 
    183     @Override
    184     public void onCloseWindow() {
    185     }
    186 
    187     @Override
    188     public void onRequestFocus() {
    189     }
    190 
    191     @Override
    192     public void onReceivedTouchIconUrl(String url, boolean precomposed) {
    193     }
    194 
    195     @Override
    196     public void onReceivedIcon(Bitmap bitmap) {
    197     }
    198 
    199     @Override
    200     public void onReceivedTitle(String title) {
    201     }
    202 
    203     @Override
    204     public void onShowCustomView(View view, WebChromeClient.CustomViewCallback callback) {
    205     }
    206 
    207     @Override
    208     public void onHideCustomView() {
    209     }
    210 
    211     @Override
    212     public void onScaleChangedScaled(float oldScale, float newScale) {
    213     }
    214 
    215     @Override
    216     protected View getVideoLoadingProgressView() {
    217         return null;
    218     }
    219 
    220     @Override
    221     public Bitmap getDefaultVideoPoster() {
    222         return null;
    223     }
    224 
    225     @Override
    226     public void onPermissionRequest(AwPermissionRequest awPermissionRequest) {
    227         awPermissionRequest.deny();
    228     }
    229 
    230     @Override
    231     public void onPermissionRequestCanceled(AwPermissionRequest awPermissionRequest) {
    232     }
    233 }
    234