blob: 00ef7f9a128c4c141a9c436e41e7e9d9597b60ee [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_WEBAUTHN_ANDROID_WEBAUTHN_BROWSER_BRIDGE_H_
#define COMPONENTS_WEBAUTHN_ANDROID_WEBAUTHN_BROWSER_BRIDGE_H_
#include "base/android/scoped_java_ref.h"
namespace webauthn {
class WebAuthnBrowserBridge {
public:
WebAuthnBrowserBridge(JNIEnv* env,
const base::android::JavaParamRef<jobject>& jbridge);
WebAuthnBrowserBridge(const WebAuthnBrowserBridge&) = delete;
WebAuthnBrowserBridge& operator=(const WebAuthnBrowserBridge&) = delete;
~WebAuthnBrowserBridge();
void OnCredentialsDetailsListReceived(
JNIEnv* env,
const base::android::JavaParamRef<jobject>&,
const base::android::JavaParamRef<jobjectArray>& credentials,
const base::android::JavaParamRef<jobject>& jframe_host,
jboolean is_conditional_request,
const base::android::JavaParamRef<jobject>& jgetAssertionCallback,
const base::android::JavaParamRef<jobject>& jhybridCallback) const;
void CleanupRequest(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& jframe_host) const;
void CleanupCredManRequest(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& jframe_host) const;
void OnCredManConditionalRequestPending(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& jframe_host,
jboolean jhas_results,
const base::android::JavaParamRef<jobject>& jfull_request_runnable);
void OnCredManUiClosed(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& jframe_host,
jboolean jsuccess);
void OnPasswordCredentialReceived(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& jframe_host,
const base::android::JavaParamRef<jstring>& jusername,
const base::android::JavaParamRef<jstring>& jpassword);
void Destroy(JNIEnv* env);
private:
// Java object that owns this WebAuthnBrowserBridge.
base::android::ScopedJavaGlobalRef<jobject> owner_;
};
} // namespace webauthn
#endif // COMPONENTS_WEBAUTHN_ANDROID_WEBAUTHN_BROWSER_BRIDGE_H_