| # 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/config.gni") |
| import("//build/config/android/rules.gni") |
| import("//third_party/jni_zero/jni_zero.gni") |
| } |
| import("//components/optimization_guide/features.gni") |
| import("//testing/libfuzzer/fuzzer_test.gni") |
| |
| static_library("internal") { |
| #TODO(crbug.com/347191610): Refactor code to eliminate visibility |
| #requirement below for `visited_url_ranking`. |
| visibility = [ |
| ":*", |
| "//chrome/browser", |
| "//chrome/browser/segmentation_platform:*", |
| "//chrome/test:*", |
| "//components/segmentation_platform/embedder/*", |
| "//components/visited_url_ranking/internal/*", |
| "//ios/chrome/browser/segmentation_platform/model:*", |
| ] |
| |
| sources = [ |
| "config_parser.cc", |
| "config_parser.h", |
| "constants.cc", |
| "constants.h", |
| "data_collection/training_data_cache.cc", |
| "data_collection/training_data_cache.h", |
| "data_collection/training_data_collector.cc", |
| "data_collection/training_data_collector.h", |
| "data_collection/training_data_collector_impl.cc", |
| "data_collection/training_data_collector_impl.h", |
| "database/cached_result_provider.cc", |
| "database/cached_result_provider.h", |
| "database/cached_result_writer.cc", |
| "database/cached_result_writer.h", |
| "database/client_result_prefs.cc", |
| "database/client_result_prefs.h", |
| "database/config_holder.cc", |
| "database/config_holder.h", |
| "database/database_maintenance.h", |
| "database/database_maintenance_impl.cc", |
| "database/database_maintenance_impl.h", |
| "database/segment_info_cache.cc", |
| "database/segment_info_cache.h", |
| "database/segment_info_database.cc", |
| "database/segment_info_database.h", |
| "database/signal_database.h", |
| "database/signal_database_impl.cc", |
| "database/signal_database_impl.h", |
| "database/signal_key.cc", |
| "database/signal_key.h", |
| "database/signal_key_internal.cc", |
| "database/signal_key_internal.h", |
| "database/signal_sample_view.cc", |
| "database/signal_sample_view.h", |
| "database/signal_storage_config.cc", |
| "database/signal_storage_config.h", |
| "database/storage_service.cc", |
| "database/storage_service.h", |
| "database/ukm_database.cc", |
| "database/ukm_database.h", |
| "database/ukm_database_backend.cc", |
| "database/ukm_database_backend.h", |
| "database/ukm_database_impl.cc", |
| "database/ukm_database_impl.h", |
| "database/ukm_metrics_table.cc", |
| "database/ukm_metrics_table.h", |
| "database/ukm_types.cc", |
| "database/ukm_types.h", |
| "database/ukm_url_table.cc", |
| "database/ukm_url_table.h", |
| "database/uma_metrics_table.cc", |
| "database/uma_metrics_table.h", |
| "database_client_impl.cc", |
| "database_client_impl.h", |
| "dummy_segmentation_platform_service.cc", |
| "dummy_segmentation_platform_service.h", |
| "dummy_ukm_data_manager.cc", |
| "dummy_ukm_data_manager.h", |
| "execution/execution_request.cc", |
| "execution/execution_request.h", |
| "execution/model_execution_status.h", |
| "execution/model_executor.h", |
| "execution/model_executor_impl.cc", |
| "execution/model_executor_impl.h", |
| "execution/model_manager.h", |
| "execution/model_manager_impl.cc", |
| "execution/model_manager_impl.h", |
| "execution/processing/custom_input_processor.cc", |
| "execution/processing/custom_input_processor.h", |
| "execution/processing/feature_aggregator.h", |
| "execution/processing/feature_aggregator_impl.cc", |
| "execution/processing/feature_aggregator_impl.h", |
| "execution/processing/feature_list_query_processor.cc", |
| "execution/processing/feature_list_query_processor.h", |
| "execution/processing/feature_processor_state.cc", |
| "execution/processing/feature_processor_state.h", |
| "execution/processing/processing_utils.cc", |
| "execution/processing/processing_utils.h", |
| "execution/processing/query_processor.h", |
| "execution/processing/sql_feature_processor.cc", |
| "execution/processing/sql_feature_processor.h", |
| "execution/processing/sync_device_info_observer.cc", |
| "execution/processing/sync_device_info_observer.h", |
| "execution/processing/uma_feature_processor.cc", |
| "execution/processing/uma_feature_processor.h", |
| "local_state_helper_impl.cc", |
| "local_state_helper_impl.h", |
| "logging.cc", |
| "logging.h", |
| "metadata/metadata_utils.cc", |
| "metadata/metadata_utils.h", |
| "metadata/metadata_writer.cc", |
| "metadata/metadata_writer.h", |
| "metrics/field_trial_recorder.cc", |
| "metrics/field_trial_recorder.h", |
| "migration/adaptive_toolbar_migration.cc", |
| "migration/adaptive_toolbar_migration.h", |
| "migration/binary_classifier_migration.cc", |
| "migration/binary_classifier_migration.h", |
| "migration/migration_test_utils.cc", |
| "migration/migration_test_utils.h", |
| "migration/prefs_migrator.cc", |
| "migration/prefs_migrator.h", |
| "migration/result_migration_utils.cc", |
| "migration/result_migration_utils.h", |
| "platform_options.cc", |
| "platform_options.h", |
| "post_processor/post_processor.cc", |
| "post_processor/post_processor.h", |
| "scheduler/execution_service.cc", |
| "scheduler/execution_service.h", |
| "scheduler/model_execution_scheduler.h", |
| "scheduler/model_execution_scheduler_impl.cc", |
| "scheduler/model_execution_scheduler_impl.h", |
| "segment_id_convertor.cc", |
| "segment_id_convertor.h", |
| "segmentation_platform_service_impl.cc", |
| "segmentation_platform_service_impl.h", |
| "segmentation_ukm_helper.cc", |
| "segmentation_ukm_helper.h", |
| "selection/experimental_group_recorder.cc", |
| "selection/experimental_group_recorder.h", |
| "selection/request_dispatcher.cc", |
| "selection/request_dispatcher.h", |
| "selection/request_handler.cc", |
| "selection/request_handler.h", |
| "selection/result_refresh_manager.cc", |
| "selection/result_refresh_manager.h", |
| "selection/segment_result_provider.cc", |
| "selection/segment_result_provider.h", |
| "selection/segment_score_provider.cc", |
| "selection/segment_score_provider.h", |
| "selection/segment_selector.h", |
| "selection/segment_selector_impl.cc", |
| "selection/segment_selector_impl.h", |
| "selection/segmentation_result_prefs.cc", |
| "selection/segmentation_result_prefs.h", |
| "selection/selection_utils.cc", |
| "selection/selection_utils.h", |
| "service_proxy_impl.cc", |
| "service_proxy_impl.h", |
| "signals/histogram_signal_handler.cc", |
| "signals/histogram_signal_handler.h", |
| "signals/history_delegate_impl.cc", |
| "signals/history_delegate_impl.h", |
| "signals/history_service_observer.cc", |
| "signals/history_service_observer.h", |
| "signals/signal_filter_processor.cc", |
| "signals/signal_filter_processor.h", |
| "signals/signal_handler.cc", |
| "signals/signal_handler.h", |
| "signals/ukm_config.cc", |
| "signals/ukm_config.h", |
| "signals/ukm_observer.cc", |
| "signals/ukm_observer.h", |
| "signals/url_signal_handler.cc", |
| "signals/url_signal_handler.h", |
| "signals/user_action_signal_handler.cc", |
| "signals/user_action_signal_handler.h", |
| "stats.cc", |
| "stats.h", |
| "ukm_data_manager.h", |
| "ukm_data_manager_impl.cc", |
| "ukm_data_manager_impl.h", |
| ] |
| |
| deps = [ |
| "//components/database_utils:database_utils", |
| "//components/history/core/browser:browser", |
| "//components/keyed_service/core", |
| "//components/leveldb_proto", |
| "//components/prefs", |
| "//components/segmentation_platform/internal/proto", |
| "//components/segmentation_platform/public/proto", |
| "//components/sync_device_info", |
| "//components/ukm:ukm_recorder", |
| "//services/metrics/public/cpp:metrics_cpp", |
| "//services/metrics/public/cpp:ukm_builders", |
| "//sql:sql", |
| "//url:url", |
| ] |
| |
| public_deps = [ |
| "//base", |
| "//components/optimization_guide/proto:optimization_guide_proto", |
| "//components/segmentation_platform/public", |
| ] |
| |
| if (is_android) { |
| sources += [ |
| "android/execution/processing/custom_device_utils.cc", |
| "android/execution/processing/custom_device_utils.h", |
| "android/segmentation_platform_service_android.cc", |
| "android/segmentation_platform_service_android.h", |
| ] |
| |
| deps += [ ":jni_headers" ] |
| } |
| } |
| |
| if (build_with_tflite_lib) { |
| static_library("optimization_guide_segmentation_handler") { |
| sources = [ |
| "execution/optimization_guide/optimization_guide_segmentation_model_handler.cc", |
| "execution/optimization_guide/optimization_guide_segmentation_model_handler.h", |
| "execution/optimization_guide/optimization_guide_segmentation_model_provider.cc", |
| "execution/optimization_guide/optimization_guide_segmentation_model_provider.h", |
| "execution/optimization_guide/segmentation_model_executor.cc", |
| "execution/optimization_guide/segmentation_model_executor.h", |
| ] |
| deps = [ |
| ":internal", |
| "//base", |
| "//components/optimization_guide/core", |
| "//components/segmentation_platform/internal/proto", |
| "//components/segmentation_platform/public", |
| ] |
| } |
| } |
| |
| source_set("unit_tests") { |
| testonly = true |
| |
| visibility = [ "//components/segmentation_platform:unit_tests" ] |
| |
| # IMPORTANT NOTE: When adding new tests, also remember to update the list of |
| # tests in //components/segmentation_platform/components_unittests.filter |
| sources = [ |
| "config_parser_unittest.cc", |
| "data_collection/training_data_cache_unittest.cc", |
| "data_collection/training_data_collector_impl_unittest.cc", |
| "database/cached_result_provider_unittest.cc", |
| "database/cached_result_writer_unittest.cc", |
| "database/client_result_prefs_unittest.cc", |
| "database/database_maintenance_impl_unittest.cc", |
| "database/mock_signal_database.cc", |
| "database/mock_signal_database.h", |
| "database/mock_signal_storage_config.cc", |
| "database/mock_signal_storage_config.h", |
| "database/mock_ukm_database.cc", |
| "database/mock_ukm_database.h", |
| "database/segment_info_cache_unittest.cc", |
| "database/segment_info_database_unittest.cc", |
| "database/signal_database_impl_unittest.cc", |
| "database/signal_key_internal_unittest.cc", |
| "database/signal_key_unittest.cc", |
| "database/signal_sample_view_unittest.cc", |
| "database/signal_storage_config_unittest.cc", |
| "database/test_segment_info_database.cc", |
| "database/test_segment_info_database.h", |
| "database/ukm_database_backend_unittest.cc", |
| "database/ukm_database_test_utils.cc", |
| "database/ukm_database_test_utils.h", |
| "database/ukm_metrics_table_unittest.cc", |
| "database/ukm_url_table_unittest.cc", |
| "database/uma_metrics_table_unittest.cc", |
| "database_client_impl_unittest.cc", |
| "dummy_segmentation_platform_service_unittest.cc", |
| "execution/model_executor_impl_unittest.cc", |
| "execution/model_manager_impl_unittest.cc", |
| "execution/processing/custom_input_processor_unittest.cc", |
| "execution/processing/feature_aggregator_impl_unittest.cc", |
| "execution/processing/feature_list_query_processor_unittest.cc", |
| "execution/processing/mock_feature_aggregator.cc", |
| "execution/processing/mock_feature_aggregator.h", |
| "execution/processing/mock_feature_list_query_processor.cc", |
| "execution/processing/mock_feature_list_query_processor.h", |
| "execution/processing/query_processor.h", |
| "execution/processing/sql_feature_processor_unittest.cc", |
| "execution/processing/sync_device_info_observer_unittest.cc", |
| "execution/processing/uma_feature_processor_unittest.cc", |
| "metadata/metadata_utils_unittest.cc", |
| "metrics/field_trial_recorder_unittest.cc", |
| "migration/prefs_migrator_unittest.cc", |
| "migration/result_migration_utils_unittest.cc", |
| "mock_ukm_data_manager.cc", |
| "mock_ukm_data_manager.h", |
| "post_processor/post_processing_test_utils.cc", |
| "post_processor/post_processing_test_utils.h", |
| "post_processor/post_processor_unittest.cc", |
| "scheduler/model_execution_scheduler_unittest.cc", |
| "segmentation_platform_service_impl_unittest.cc", |
| "segmentation_platform_service_test_base.cc", |
| "segmentation_platform_service_test_base.h", |
| "segmentation_ukm_helper_unittest.cc", |
| "selection/request_dispatcher_unittest.cc", |
| "selection/request_handler_unittest.cc", |
| "selection/result_refresh_manager_unittest.cc", |
| "selection/segment_result_provider_unittest.cc", |
| "selection/segment_score_provider_unittest.cc", |
| "selection/segment_selector_unittest.cc", |
| "selection/segmentation_result_prefs_unittest.cc", |
| "selection/selection_utils_unittest.cc", |
| "service_proxy_impl_unittest.cc", |
| "signals/histogram_signal_handler_unittest.cc", |
| "signals/history_delegate_impl_unittest.cc", |
| "signals/mock_histogram_signal_handler.cc", |
| "signals/mock_histogram_signal_handler.h", |
| "signals/mock_user_action_signal_handler.cc", |
| "signals/mock_user_action_signal_handler.h", |
| "signals/signal_filter_processor_unittest.cc", |
| "signals/ukm_config_unittest.cc", |
| "signals/ukm_observer_unittest.cc", |
| "signals/url_signal_handler_unittest.cc", |
| "signals/user_action_signal_handler_unittest.cc", |
| "stats_unittest.cc", |
| "ukm_data_manager_impl_unittest.cc", |
| ] |
| |
| deps = [ |
| ":internal", |
| ":test_support", |
| "//base", |
| "//base/test:test_support", |
| "//components/history/core/browser:browser", |
| "//components/history/core/test", |
| "//components/leveldb_proto:test_support", |
| "//components/optimization_guide/core", |
| "//components/optimization_guide/core:test_support", |
| "//components/prefs", |
| "//components/prefs:test_support", |
| "//components/segmentation_platform/internal/proto", |
| "//components/segmentation_platform/public", |
| "//components/sync_device_info", |
| "//components/sync_device_info:test_support", |
| "//components/ukm:test_support", |
| "//services/metrics/public/cpp:metrics_cpp", |
| "//services/metrics/public/cpp:ukm_builders", |
| "//sql:sql", |
| "//sql:test_support", |
| "//testing/gmock", |
| "//testing/gtest", |
| "//url:url", |
| ] |
| |
| if (build_with_tflite_lib) { |
| # IMPORTANT NOTE: When adding new tests, also remember to update the list of |
| # tests in //components/segmentation_platform/components_unittests.filter |
| sources += [ |
| "execution/optimization_guide/optimization_guide_segmentation_model_provider_unittest.cc", |
| "execution/optimization_guide/segmentation_model_executor_unittest.cc", |
| ] |
| deps += [ |
| ":optimization_guide_segmentation_handler", |
| ":unit_tests_bundle_data", |
| ] |
| } |
| } |
| |
| source_set("test_support") { |
| testonly = true |
| sources = [ |
| "execution/mock_model_provider.cc", |
| "execution/mock_model_provider.h", |
| ] |
| deps = [ |
| "//base", |
| "//components/segmentation_platform/public:public", |
| "//testing/gmock", |
| "//testing/gtest", |
| ] |
| } |
| |
| bundle_data("unit_tests_bundle_data") { |
| visibility = [ ":unit_tests" ] |
| testonly = true |
| sources = [ "//components/test/data/segmentation_platform/adder.tflite" ] |
| outputs = [ "{{bundle_resources_dir}}/" + |
| "{{source_root_relative_dir}}/{{source_file_part}}" ] |
| } |
| |
| if (is_android) { |
| android_library("internal_java") { |
| visibility = [ |
| ":javatests", |
| "//chrome/android:chrome_all_java", |
| ] |
| srcjar_deps = [ ":jni_headers" ] |
| sources = [ |
| "android/java/src/org/chromium/components/segmentation_platform/SegmentationPlatformServiceImpl.java", |
| "android/java/src/org/chromium/components/segmentation_platform/execution/processing/CustomDeviceUtils.java", |
| ] |
| |
| deps = [ |
| "//base:base_java", |
| "//build/android:build_java", |
| "//components/optimization_guide/proto:optimization_guide_proto_java", |
| "//components/segmentation_platform/public:public_java", |
| "//third_party/jni_zero:jni_zero_java", |
| ] |
| } |
| |
| generate_jni("jni_headers") { |
| visibility = [ |
| ":*", |
| "//chrome/browser", |
| ] |
| |
| sources = [ |
| "android/java/src/org/chromium/components/segmentation_platform/SegmentationPlatformServiceImpl.java", |
| "android/java/src/org/chromium/components/segmentation_platform/execution/processing/CustomDeviceUtils.java", |
| ] |
| } |
| } |
| |
| fuzzer_test("segmentation_platform_config_parser_fuzzer") { |
| deps = [ ":internal" ] |
| sources = [ "config_parser_fuzzer.cc" ] |
| } |