# Copyright 2017 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") _jni_sources = [ "java/src/org/chromium/components/crash/CrashKeys.java", "java/src/org/chromium/components/crash/PureJavaExceptionHandler.java", "java/src/org/chromium/components/crash/browser/ChildProcessCrashObserver.java", "java/src/org/chromium/components/crash/browser/PackagePaths.java", "java/src/org/chromium/components/crash/browser/ProcessExitReasonFromSystem.java", ] generate_jni("jni_headers") { sources = _jni_sources } java_cpp_enum("java_enums_srcjar") { sources = [ "crash_keys_android.h" ] } android_library("java") { deps = [ "//base:base_java", "//base:jni_java", "//build/android:build_java", "//components/minidump_uploader:minidump_uploader_java", "//components/version_info/android:version_constants_java", "//content/public/android:content_main_dex_java", "//third_party/androidx:androidx_annotation_annotation_java", ] annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] srcjar_deps = [ ":java_enums_srcjar" ] sources = [ "java/src/org/chromium/components/crash/CustomAssertionHandler.java", "java/src/org/chromium/components/crash/LogcatCrashExtractor.java", "java/src/org/chromium/components/crash/MinidumpLogcatPrepender.java", "java/src/org/chromium/components/crash/NativeAndJavaSmartExceptionReporter.java", "java/src/org/chromium/components/crash/PureJavaExceptionReporter.java", ] sources += _jni_sources } robolectric_library("junit") { sources = [ "junit/src/org/chromium/components/crash/LogcatCrashExtractorTest.java", "junit/src/org/chromium/components/crash/PureJavaExceptionReporterTest.java", "junit/src/org/chromium/components/crash/anr/AnrCollectorTest.java", ] deps = [ ":anr_collector_java", ":anr_data_proto_java", ":java", "//base:base_java_test_support", "//base:base_junit_test_support", "//components/minidump_uploader:minidump_uploader_java_test_support", "//content/public/test/android:content_java_test_support", "//third_party/androidx:androidx_test_runner_java", "//third_party/junit", ] } source_set("crash_android") { sources = [ "crash_keys_android.cc", "crash_keys_android.h", "pure_java_exception_handler.cc", "pure_java_exception_handler.h", ] deps = [ ":jni_headers", "//base", "//components/crash/core/common:crash_key", ] } source_set("unit_tests") { testonly = true sources = [ "crash_keys_android_unittest.cc" ] deps = [ ":crash_android", "//components/crash/core/common:crash_key", "//testing/gtest", ] } _java_handler_jni_sources = [ "java/src/org/chromium/components/crash/browser/CrashpadMain.java" ] generate_jni("java_handler_jni_headers") { sources = _java_handler_jni_sources } android_library("handler_java") { deps = [ "//base:jni_java", "//build/android:build_java", ] annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] sources = _java_handler_jni_sources } static_library("crashpad_main") { sources = [ "crashpad_main.cc" ] deps = [ ":java_handler_jni_headers", "//base", "//third_party/crashpad/crashpad/client", "//third_party/crashpad/crashpad/handler", ] } source_set("anr_skipped_reason") { sources = [ "anr_skipped_reason.h" ] } java_cpp_enum("anr_skipped_reason_enum") { sources = [ "anr_skipped_reason.h" ] } proto_java_library("anr_data_proto_java") { proto_path = "." sources = [ "anr_data.proto" ] } android_library("anr_collector_java") { deps = [ ":anr_data_proto_java", "//base:base_java", "//third_party/androidx:androidx_annotation_annotation_java", ] srcjar_deps = [ ":anr_skipped_reason_enum" ] sources = [ "java/src/org/chromium/components/crash/anr/AnrCollector.java" ] }