# Copyright 2024 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") } static_library("internal") { visibility = [ ":*", "//chrome/browser/visited_url_ranking:*", "//chrome/test:*", "//ios/chrome/browser/visited_url_ranking/model:*", ] sources = [ "history_url_visit_data_fetcher.cc", "history_url_visit_data_fetcher.h", "session_url_visit_data_fetcher.cc", "session_url_visit_data_fetcher.h", "transformer/bookmarks_url_visit_aggregates_transformer.cc", "transformer/bookmarks_url_visit_aggregates_transformer.h", "transformer/default_app_url_visit_aggregates_transformer.cc", "transformer/default_app_url_visit_aggregates_transformer.h", "transformer/history_url_visit_aggregates_browser_type_transformer.cc", "transformer/history_url_visit_aggregates_browser_type_transformer.h", "transformer/history_url_visit_aggregates_categories_transformer.cc", "transformer/history_url_visit_aggregates_categories_transformer.h", "transformer/history_url_visit_aggregates_visibility_score_transformer.cc", "transformer/history_url_visit_aggregates_visibility_score_transformer.h", "transformer/recency_filter_transformer.cc", "transformer/recency_filter_transformer.h", "transformer/url_visit_aggregates_segmentation_metrics_transformer.cc", "transformer/url_visit_aggregates_segmentation_metrics_transformer.h", "visited_url_ranking_service_impl.cc", "visited_url_ranking_service_impl.h", ] #TODO(crbug.com/347191610): Refactor code to eliminate visibility #requirement below for `embedder/default_model`. deps = [ "//base", "//components/bookmarks/browser", "//components/history/core/browser", "//components/segmentation_platform/embedder/default_model", "//components/segmentation_platform/internal", "//components/segmentation_platform/public", "//components/sessions", "//components/strings", "//components/sync_sessions", "//components/url_deduplication", "//components/visited_url_ranking/public", "//ui/base", "//url", ] } static_library("internal_url_grouping") { visibility = [ ":*", "//chrome/browser/prefs:impl", "//chrome/browser/visited_url_ranking:*", ] sources = [ "url_grouping/group_suggestions_manager.cc", "url_grouping/group_suggestions_manager.h", "url_grouping/group_suggestions_service_impl.cc", "url_grouping/group_suggestions_service_impl.h", "url_grouping/group_suggestions_tracker.cc", "url_grouping/group_suggestions_tracker.h", "url_grouping/grouping_heuristics.cc", "url_grouping/grouping_heuristics.h", "url_grouping/tab_event_tracker_impl.cc", "url_grouping/tab_event_tracker_impl.h", "url_grouping/tab_events_visit_transformer.cc", "url_grouping/tab_events_visit_transformer.h", ] deps = [ "//base", "//components/prefs", "//components/segmentation_platform/public", "//components/visited_url_ranking/public", "//services/metrics/public/cpp:metrics_cpp", "//services/metrics/public/cpp:ukm_builders", "//ui/base", ] if (is_android) { sources += [ "url_grouping/android/group_suggestions_service_android.cc", "url_grouping/android/group_suggestions_service_android.h", ] deps += [ ":jni_headers", "//components/visited_url_ranking/public:jni_headers", "//url", ] } } source_set("test_support") { testonly = true sources = [ "transformer/transformer_test_support.cc", "transformer/transformer_test_support.h", "url_grouping/mock_suggestions_delegate.cc", "url_grouping/mock_suggestions_delegate.h", ] deps = [ "//base", "//base/test:test_support", "//components/history/core/browser", "//components/visited_url_ranking/public", "//testing/gmock", "//testing/gtest", ] } source_set("unit_tests") { testonly = true sources = [ "history_url_visit_data_fetcher_unittest.cc", "session_url_visit_data_fetcher_unittest.cc", "transformer/bookmarks_url_visit_aggregates_transformer_unittest.cc", "transformer/default_app_url_visit_aggregates_transformer_unittest.cc", "transformer/history_url_visit_aggregates_browser_type_transformer_unittest.cc", "transformer/history_url_visit_aggregates_categories_transformer_unittest.cc", "transformer/history_url_visit_aggregates_visibility_score_transformer_unittest.cc", "transformer/recency_filter_transformer_unittest.cc", "transformer/url_visit_aggregates_segmentation_metrics_transformer_unittest.cc", "url_grouping/group_suggestions_manager_unittest.cc", "url_grouping/group_suggestions_service_impl_unittest.cc", "url_grouping/group_suggestions_tracker_unittest.cc", "url_grouping/grouping_heuristics_unittest.cc", "url_grouping/tab_event_tracker_impl_unittest.cc", "url_grouping/tab_events_visit_transformer_unittest.cc", "visited_url_ranking_service_impl_unittest.cc", ] if (is_android) { sources += [ "url_grouping/android/group_suggestions_service_android_unittest.cc" ] } deps = [ ":internal", ":internal_url_grouping", ":test_support", "//base", "//base/test:test_support", "//components/bookmarks/browser", "//components/bookmarks/test", "//components/history/core/browser", "//components/prefs:test_support", "//components/segmentation_platform/embedder/default_model", "//components/segmentation_platform/internal", "//components/segmentation_platform/public", "//components/segmentation_platform/public:test_support", "//components/sessions", "//components/sync/protocol", "//components/sync_device_info:test_support", "//components/sync_sessions:test_support", "//components/ukm:test_support", "//components/url_deduplication", "//components/visited_url_ranking/public", "//components/visited_url_ranking/public:test_support", "//services/metrics/public/cpp:ukm_builders", "//testing/gmock", "//testing/gtest", ] if (is_android) { deps += [ ":native_test_helper_java", ":test_jni_headers", ] } # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and # enable the diagnostic by removing this line. configs += [ "//build/config/compiler:no_exit_time_destructors" ] } if (is_android) { # TODO(crbug.com/404270786): Scope down internal_java visibility. android_library("internal_java") { visibility = [ "//chrome/android:chrome_all_java", "//components:*", ] srcjar_deps = [ ":jni_headers" ] sources = [ "url_grouping/android/java/src/org/chromium/components/visited_url_ranking/url_grouping/DelegateBridge.java", "url_grouping/android/java/src/org/chromium/components/visited_url_ranking/url_grouping/GroupSuggestionsServiceImpl.java", ] deps = [ "//base:base_java", "//build/android:build_java", "//components/visited_url_ranking/public:public_java", "//third_party/jni_zero:jni_zero_java", "//ui/android:ui_java", "//url:url_java", ] } generate_jni("jni_headers") { visibility = [ ":*", "//chrome/browser", ] sources = [ "url_grouping/android/java/src/org/chromium/components/visited_url_ranking/url_grouping/DelegateBridge.java", "url_grouping/android/java/src/org/chromium/components/visited_url_ranking/url_grouping/GroupSuggestionsServiceImpl.java", ] } android_library("native_test_helper_java") { srcjar_deps = [ ":test_jni_headers" ] testonly = true sources = [ "url_grouping/android/java/src/org/chromium/components/visited_url_ranking/url_grouping/TestServiceDelegate.java" ] deps = [ "//base:base_java", "//components/visited_url_ranking/public:public_java", "//third_party/jni_zero:jni_zero_java", ] } generate_jni("test_jni_headers") { testonly = true sources = [ "url_grouping/android/java/src/org/chromium/components/visited_url_ranking/url_grouping/TestServiceDelegate.java" ] } }