# 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. if (is_android) { import("//build/config/android/rules.gni") } import("//components/optimization_guide/features.gni") import("//mojo/public/tools/bindings/mojom.gni") static_library("browser") { sources = [ "autofill_annotations_provider.cc", "autofill_annotations_provider.h", "media_transcript_provider.cc", "media_transcript_provider.h", "page_content_image_extractor.cc", "page_content_image_extractor.h", "page_content_metadata_observer.cc", "page_content_metadata_observer.h", "page_content_proto_provider.cc", "page_content_proto_provider.h", "page_content_proto_util.cc", "page_content_proto_util.h", "page_text_dump_result.cc", "page_text_dump_result.h", "page_text_observer.cc", "page_text_observer.h", ] public_deps = [ "//base", "//components/optimization_guide:machine_learning_tflite_buildflags", "//components/optimization_guide:optimization_guide_buildflags", "//components/optimization_guide/content/mojom:mojo_interfaces", "//components/optimization_guide/core", "//components/optimization_guide/core:page_content", "//components/optimization_guide/proto:optimization_guide_proto", "//content/public/browser", "//content/public/common", "//services/metrics/public/cpp:metrics_cpp", "//services/metrics/public/cpp:ukm_builders", "//services/network/public/cpp", ] configs += [ "//build/config/compiler:wexit_time_destructors" ] if (is_android) { sources += [ "page_content_proto_provider_bridge.cc" ] public_deps += [ "android:jni_headers" ] } } source_set("page_context_eligibility_api") { public = [ "page_context_eligibility_api.h" ] sources = [ "page_context_eligibility_api.cc" ] } static_library("page_context_eligibility") { public = [ "page_context_eligibility.h", "page_context_eligibility_observer.h", ] sources = [ "page_context_eligibility.cc", "page_context_eligibility_observer.cc", ] public_deps = [ ":browser", ":page_context_eligibility_api", "//base", "//components/optimization_guide/core:optimization_guide_library_holder", ] # On desktop, the internal library is built as a runtime data dependency. # On Android, it is packaged into the Chrome APK/bundle via loadable_modules # and dynamically loaded at runtime by OptimizationGuideLibraryHolder. if (build_with_internal_optimization_guide && !is_android) { data_deps = [ "//components/optimization_guide/internal:optimization_guide_internal", ] } } source_set("test_support") { testonly = true sources = [ "mock_autofill_annotations_provider.cc", "mock_autofill_annotations_provider.h", "mock_media_transcript_provider.cc", "mock_media_transcript_provider.h", "no_response_ai_page_content_agent.cc", "no_response_ai_page_content_agent.h", "page_content_test_utils.cc", "page_content_test_utils.h", ] public_deps = [ ":browser", "//base", "//content/public/browser", "//mojo/public/cpp/bindings", "//services/service_manager/public/cpp", "//testing/gmock", ] } source_set("unit_tests") { _configs = configs configs = [] configs = [ "//third_party/tflite:tflite_shim_config" ] + _configs testonly = true sources = [ "media_transcript_provider_unittest.cc", "page_content_proto_util_unittest.cc", "page_context_eligibility_observer_unittest.cc", "page_context_eligibility_unittest.cc", "page_text_dump_result_unittest.cc", "page_text_observer_unittest.cc", ] deps = [ ":browser", ":page_context_eligibility", ":test_support", "//components/optimization_guide/core:test_support", "//content/test:test_support", "//testing/gmock", "//testing/gtest", "//third_party/tflite", "//third_party/tflite:tflite_public_headers", "//third_party/tflite_support", "//third_party/tflite_support:tflite_support_proto", ] }