# Copyright 2021 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//build/config/android/rules.gni") import("//third_party/jni_zero/jni_zero.gni") generate_jni("jni_headers") { sources = [ "java/src/org/chromium/components/webauthn/Fido2Api.java", "java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java", "java/src/org/chromium/components/webauthn/InternalAuthenticator.java", "java/src/org/chromium/components/webauthn/WebauthnBrowserBridge.java", "java/src/org/chromium/components/webauthn/WebauthnFeatureMap.java", "java/src/org/chromium/components/webauthn/WebauthnModeProvider.java", "java/src/org/chromium/components/webauthn/cred_man/CredManSupportProvider.java", ] } java_cpp_enum("java_enums_srcjar") { sources = [ "//content/browser/webauth/authenticator_request_outcome_enums.h", "cred_man_support.h", "webauthn_client_android.h", "webauthn_mode.h", ] visibility = [ ":*" ] } android_library("java") { srcjar_deps = [ ":java_enums_srcjar", ":jni_headers", ] sources = [ "java/src/org/chromium/components/webauthn/AuthenticationContextProvider.java", "java/src/org/chromium/components/webauthn/AuthenticatorConstants.java", "java/src/org/chromium/components/webauthn/AuthenticatorErrorResponseCallback.java", "java/src/org/chromium/components/webauthn/AuthenticatorFactory.java", "java/src/org/chromium/components/webauthn/AuthenticatorImpl.java", "java/src/org/chromium/components/webauthn/Barrier.java", "java/src/org/chromium/components/webauthn/CreateConfirmationUiDelegate.java", "java/src/org/chromium/components/webauthn/Fido2Api.java", "java/src/org/chromium/components/webauthn/Fido2ApiCall.java", "java/src/org/chromium/components/webauthn/Fido2ApiCallHelper.java", "java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java", "java/src/org/chromium/components/webauthn/FidoIntentSender.java", "java/src/org/chromium/components/webauthn/GetMatchingCredentialIdsDelegate.java", "java/src/org/chromium/components/webauthn/GmsCoreGetCredentialsHelper.java", "java/src/org/chromium/components/webauthn/GmsCoreUtils.java", "java/src/org/chromium/components/webauthn/GpmBrowserOptionsHelper.java", "java/src/org/chromium/components/webauthn/IdentityCredentialsHelper.java", "java/src/org/chromium/components/webauthn/InternalAuthenticator.java", "java/src/org/chromium/components/webauthn/IsUvpaaResponseCallback.java", "java/src/org/chromium/components/webauthn/RecordOutcomeCallback.java", "java/src/org/chromium/components/webauthn/RequestMetrics.java", "java/src/org/chromium/components/webauthn/WebauthnBrowserBridge.java", "java/src/org/chromium/components/webauthn/WebauthnCredentialDetails.java", "java/src/org/chromium/components/webauthn/WebauthnFeatureMap.java", "java/src/org/chromium/components/webauthn/WebauthnFeatures.java", "java/src/org/chromium/components/webauthn/WebauthnLogger.java", "java/src/org/chromium/components/webauthn/WebauthnModeProvider.java", "java/src/org/chromium/components/webauthn/WebauthnRequestCallback.java", "java/src/org/chromium/components/webauthn/WebauthnRequestResponse.java", "java/src/org/chromium/components/webauthn/cred_man/AppCredManRequestDecorator.java", "java/src/org/chromium/components/webauthn/cred_man/BrowserCredManRequestDecorator.java", "java/src/org/chromium/components/webauthn/cred_man/CredManCreateCredentialRequestHelper.java", "java/src/org/chromium/components/webauthn/cred_man/CredManGetCredentialRequestHelper.java", "java/src/org/chromium/components/webauthn/cred_man/CredManHelper.java", "java/src/org/chromium/components/webauthn/cred_man/CredManMetricsHelper.java", "java/src/org/chromium/components/webauthn/cred_man/CredManRequestDecorator.java", "java/src/org/chromium/components/webauthn/cred_man/CredManSupportProvider.java", "java/src/org/chromium/components/webauthn/cred_man/CredManUiRecommender.java", "java/src/org/chromium/components/webauthn/cred_man/GpmCredManRequestDecorator.java", ] deps = [ "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", "$google_play_services_package:google_play_services_identity_credentials_java", "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", "//base:service_loader_java", "//base:tristate_java", "//base/version_info/android:version_constants_java", "//build/android:build_java", "//components/externalauth/android:java", "//components/password_manager/core/browser:password_manager_java_enums", "//components/ukm/android:java", "//content/public/android:content_java", "//content/public/common:common_java", "//mojo/public/java:bindings_java", "//mojo/public/java:system_java", "//mojo/public/mojom/base:base_java", "//net/android:net_java", "//services/device/public/java:device_feature_list_java", "//services/service_manager/public/java:service_manager_java", "//third_party/androidx:androidx_annotation_annotation_experimental_java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_core_core_java", "//third_party/blink/public/common:common_java", "//third_party/blink/public/mojom:authenticator_mojo_bindings_java", "//third_party/blink/public/mojom:credentialmanagement_mojo_bindings_java", "//third_party/jni_zero:jni_zero_java", "//ui/android:ui_no_recycler_view_java", "//url:gurl_java", "//url/mojom:url_mojom_gurl_java", "//url/mojom:url_mojom_origin_java", "//url/mojom:url_mojom_scheme_host_port_java", ] resources_package = "org.chromium.components.webauthn" } static_library("test_support") { testonly = true sources = [ "mock_webauthn_cred_man_delegate.cc", "mock_webauthn_cred_man_delegate.h", "stub_webauthn_client_android.cc", "stub_webauthn_client_android.h", "webauthn_cred_man_delegate_factory_test_api.h", ] deps = [ ":android", "//base", "//content/public/browser", "//testing/gmock", ] } android_library("test_support_java") { testonly = true sources = [ "java/src/org/chromium/components/webauthn/Fido2ApiTestHelper.java" ] deps = [ ":java", "//base:base_java_test_support", "//components/payments/content/android:feature_list_java", "//components/payments/mojom:mojom_java", "//content/public/android:content_java", "//mojo/public/mojom/base:base_java", "//third_party/android_deps:guava_android_java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/blink/public/mojom:authenticator_mojo_bindings_java", "//third_party/blink/public/mojom:credentialmanagement_mojo_bindings_java", "//third_party/jni_zero:jni_zero_java", "//third_party/junit", "//url:gurl_java", "//url/mojom:url_mojom_gurl_java", "//url/mojom:url_mojom_origin_java", ] } source_set("android") { sources = [ "cred_man_support.h", "fido2api_native_android.cc", "fido2credentialrequest_native_android.cc", "internal_authenticator_android.cc", "internal_authenticator_android.h", "webauthn_browser_bridge.cc", "webauthn_browser_bridge.h", "webauthn_client_android.cc", "webauthn_client_android.h", "webauthn_cred_man_delegate.cc", "webauthn_cred_man_delegate.h", "webauthn_cred_man_delegate_factory.cc", "webauthn_cred_man_delegate_factory.h", "webauthn_feature_map.cc", "webauthn_mode.h", "webauthn_mode_provider.cc", ] deps = [ ":jni_headers", "//base", "//components/cbor", "//components/ukm/android:ukm_recorder", "//components/webauthn:features", "//components/webauthn/core/browser", "//components/webauthn/json", "//content/public/browser", "//device/fido", "//third_party/blink/public/mojom:android_mojo_bindings_blink", "//third_party/boringssl", "//url", ] } source_set("unit_tests") { testonly = true sources = [ "webauthn_cred_man_delegate_factory_unittest.cc", "webauthn_cred_man_delegate_unittest.cc", ] deps = [ ":android", ":test_support", "//base/test:test_support", "//content/public/browser", "//content/test:test_support", "//testing/gmock", "//testing/gtest", ] } robolectric_library("junit") { sources = [ "junit/src/org/chromium/components/webauthn/AuthenticatorImplPasswordOnlyTest.java", "junit/src/org/chromium/components/webauthn/AuthenticatorImplTest.java", "junit/src/org/chromium/components/webauthn/BarrierTest.java", "junit/src/org/chromium/components/webauthn/Fido2ApiRobolectricTest.java", "junit/src/org/chromium/components/webauthn/Fido2CredentialRequestRobolectricTest.java", "junit/src/org/chromium/components/webauthn/GmsCoreGetCredentialsHelperRobolectricTest.java", "junit/src/org/chromium/components/webauthn/IdentityCredentialsHelperRobolectricTest.java", "junit/src/org/chromium/components/webauthn/WebauthnModeProviderRobolectricTest.java", "junit/src/org/chromium/components/webauthn/WebauthnRequestCallbackRobolectricTest.java", "junit/src/org/chromium/components/webauthn/cred_man/CredManCreateCredentialRequestHelperRobolectricTest.java", "junit/src/org/chromium/components/webauthn/cred_man/CredManGetCredentialRequestHelperRobolectricTest.java", "junit/src/org/chromium/components/webauthn/cred_man/CredManHelperRobolectricTest.java", "junit/src/org/chromium/components/webauthn/cred_man/GpmCredManRequestDecoratorRobolectricTest.java", "junit/src/org/chromium/components/webauthn/cred_man/ShadowCreateCredentialException.java", "junit/src/org/chromium/components/webauthn/cred_man/ShadowCreateCredentialRequest.java", "junit/src/org/chromium/components/webauthn/cred_man/ShadowCreateCredentialResponse.java", "junit/src/org/chromium/components/webauthn/cred_man/ShadowCredential.java", "junit/src/org/chromium/components/webauthn/cred_man/ShadowCredentialManager.java", "junit/src/org/chromium/components/webauthn/cred_man/ShadowCredentialOption.java", "junit/src/org/chromium/components/webauthn/cred_man/ShadowGetCredentialException.java", "junit/src/org/chromium/components/webauthn/cred_man/ShadowGetCredentialRequest.java", "junit/src/org/chromium/components/webauthn/cred_man/ShadowGetCredentialResponse.java", "junit/src/org/chromium/components/webauthn/cred_man/ShadowPrepareGetCredentialResponse.java", ] deps = [ ":java", ":test_support_java", "$google_play_services_package:google_play_services_identity_credentials_java", "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", "//base:tristate_java", "//components/password_manager/core/browser:password_manager_java_enums", "//components/payments/content/android:junit_test_support", "//components/ukm/android:java", "//content/public/android:content_java", "//mojo/public/mojom/base:base_java", "//net/android:net_java", "//services/device/public/java:device_feature_list_java", "//third_party/android_deps:guava_java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_test_core_java", "//third_party/androidx:androidx_test_runner_java", "//third_party/blink/public/common:common_java", "//third_party/blink/public/mojom:authenticator_mojo_bindings_java", "//third_party/blink/public/mojom:credentialmanagement_mojo_bindings_java", "//third_party/google-truth:google_truth_java", "//third_party/jni_zero:jni_zero_java", "//third_party/junit", "//third_party/mockito:mockito_java", "//ui/android:ui_java_test_support", "//ui/android:ui_no_recycler_view_java", "//url:gurl_java", ] }