// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package org.chromium.support_lib_boundary;

import android.app.PendingIntent;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebView;

import java.lang.reflect.InvocationHandler;

/**
 * Boundary interface for WebViewClientCompat.
 */
public interface WebViewClientBoundaryInterface extends FeatureFlagHolderBoundaryInterface {
    void onPageCommitVisible(WebView view, String url);
    void onReceivedError(WebView view, WebResourceRequest request,
            /* WebResourceError */ InvocationHandler error);
    void onReceivedHttpError(
            WebView view, WebResourceRequest request, WebResourceResponse errorResponse);
    void onSafeBrowsingHit(WebView view, WebResourceRequest request, int threatType,
            /* SafeBrowsingResponse */ InvocationHandler callback);
    boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request);
    boolean onWebAuthnIntent(WebView view, PendingIntent intent,
            /* WebAuthnCallbackBoundaryInterface */ InvocationHandler callback);
}
