# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/ui.gni")

import("//third_party/protobuf/proto_library.gni")

if (is_android) {
  import("//build/config/android/config.gni")
  import("//build/config/android/rules.gni")
}

static_library("ntp_snippets") {
  sources = [
    "callbacks.h",
    "category.cc",
    "category.h",
    "category_info.cc",
    "category_info.h",
    "category_rankers/category_ranker.h",
    "category_rankers/click_based_category_ranker.cc",
    "category_rankers/click_based_category_ranker.h",
    "category_rankers/constant_category_ranker.cc",
    "category_rankers/constant_category_ranker.h",
    "category_status.cc",
    "category_status.h",
    "content_suggestion.cc",
    "content_suggestion.h",
    "content_suggestions_metrics.cc",
    "content_suggestions_metrics.h",
    "content_suggestions_provider.cc",
    "content_suggestions_provider.h",
    "content_suggestions_service.cc",
    "content_suggestions_service.h",
    "contextual/contextual_content_suggestions_service.cc",
    "contextual/contextual_content_suggestions_service.h",
    "contextual/contextual_content_suggestions_service_proxy.cc",
    "contextual/contextual_content_suggestions_service_proxy.h",
    "contextual/contextual_suggestion.cc",
    "contextual/contextual_suggestion.h",
    "contextual/contextual_suggestions_cache.cc",
    "contextual/contextual_suggestions_cache.h",
    "contextual/contextual_suggestions_features.cc",
    "contextual/contextual_suggestions_features.h",
    "contextual/contextual_suggestions_fetch.cc",
    "contextual/contextual_suggestions_fetch.h",
    "contextual/contextual_suggestions_fetcher.h",
    "contextual/contextual_suggestions_fetcher_impl.cc",
    "contextual/contextual_suggestions_fetcher_impl.h",
    "contextual/contextual_suggestions_result.cc",
    "contextual/contextual_suggestions_result.h",
    "contextual/reporting/contextual_suggestions_composite_reporter.cc",
    "contextual/reporting/contextual_suggestions_composite_reporter.h",
    "contextual/reporting/contextual_suggestions_debugging_reporter.cc",
    "contextual/reporting/contextual_suggestions_debugging_reporter.h",
    "contextual/reporting/contextual_suggestions_metrics_reporter.cc",
    "contextual/reporting/contextual_suggestions_metrics_reporter.h",
    "contextual/reporting/contextual_suggestions_reporter.cc",
    "contextual/reporting/contextual_suggestions_reporter.h",
    "contextual/reporting/contextual_suggestions_ukm_entry.cc",
    "contextual/reporting/contextual_suggestions_ukm_entry.h",
    "features.cc",
    "features.h",
    "logger.cc",
    "logger.h",
    "ntp_snippets_constants.cc",
    "ntp_snippets_constants.h",
    "pref_names.cc",
    "pref_names.h",
    "pref_util.cc",
    "pref_util.h",
    "reading_list/reading_list_suggestions_provider.cc",
    "reading_list/reading_list_suggestions_provider.h",
    "remote/cached_image_fetcher.cc",
    "remote/cached_image_fetcher.h",
    "remote/json_request.cc",
    "remote/json_request.h",
    "remote/json_to_categories.cc",
    "remote/json_to_categories.h",
    "remote/persistent_scheduler.h",
    "remote/prefetched_pages_tracker.h",
    "remote/prefetched_pages_tracker_impl.cc",
    "remote/prefetched_pages_tracker_impl.h",
    "remote/remote_suggestion.cc",
    "remote/remote_suggestion.h",
    "remote/remote_suggestions_database.cc",
    "remote/remote_suggestions_database.h",
    "remote/remote_suggestions_fetcher.cc",
    "remote/remote_suggestions_fetcher.h",
    "remote/remote_suggestions_fetcher_impl.cc",
    "remote/remote_suggestions_fetcher_impl.h",
    "remote/remote_suggestions_provider.cc",
    "remote/remote_suggestions_provider.h",
    "remote/remote_suggestions_provider_impl.cc",
    "remote/remote_suggestions_provider_impl.h",
    "remote/remote_suggestions_scheduler.h",
    "remote/remote_suggestions_scheduler_impl.cc",
    "remote/remote_suggestions_scheduler_impl.h",
    "remote/remote_suggestions_status_service.h",
    "remote/remote_suggestions_status_service_impl.cc",
    "remote/remote_suggestions_status_service_impl.h",
    "remote/request_params.cc",
    "remote/request_params.h",
    "remote/request_throttler.cc",
    "remote/request_throttler.h",
    "status.cc",
    "status.h",
    "switches.cc",
    "switches.h",
    "time_serialization.cc",
    "time_serialization.h",
    "user_classifier.cc",
    "user_classifier.h",
  ]

  public_deps = [
    "//base",
    "//components/keyed_service/core",
    "//components/leveldb_proto",
    "//components/prefs",
    "//components/resources",
    "//components/sync",
    "//components/version_info",
    "//net",
    "//ui/base",
    "//url",
  ]

  deps = [
    ":explore_protos",
    "//components/data_use_measurement/core",
    "//components/favicon/core",
    "//components/favicon_base",
    "//components/history/core/browser",
    "//components/image_fetcher/core",
    "//components/language/core/browser",
    "//components/metrics",
    "//components/ntp_snippets/remote/proto",
    "//components/offline_pages/core",
    "//components/reading_list/core",
    "//components/strings",
    "//components/unified_consent",
    "//components/url_formatter",
    "//components/variations",
    "//components/variations/net",
    "//components/variations/service",
    "//components/web_resource",
    "//services/identity/public/cpp",
    "//services/metrics/public/cpp:metrics_cpp",
    "//services/metrics/public/cpp:ukm_builders",
    "//services/network/public/cpp",
    "//services/network/public/mojom",
    "//third_party/icu/",
    "//third_party/protobuf:protobuf_lite",
    "//ui/gfx",
  ]
}

if (is_android) {
  java_cpp_enum("ntp_snippets_java_enums_srcjar") {
    sources = [
      "category.h",
      "category_info.h",
      "category_status.h",
      "content_suggestions_service.cc",
      "contextual/reporting/contextual_suggestions_reporter.h",
    ]
  }
}

proto_library("explore_protos") {
  sources = [
    "contextual/proto/chrome_search_api_request_context.proto",
    "contextual/proto/get_pivots_request.proto",
    "contextual/proto/get_pivots_response.proto",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "category_rankers/click_based_category_ranker_unittest.cc",
    "category_rankers/constant_category_ranker_unittest.cc",
    "category_unittest.cc",
    "content_suggestions_metrics_unittest.cc",
    "content_suggestions_service_unittest.cc",
    "contextual/contextual_content_suggestions_service_proxy_unittest.cc",
    "contextual/contextual_content_suggestions_service_unittest.cc",
    "contextual/contextual_suggestions_features_unittest.cc",
    "contextual/contextual_suggestions_fetch_unittest.cc",
    "contextual/contextual_suggestions_fetcher_impl_unittest.cc",
    "contextual/reporting/contextual_suggestions_composite_reporter_unittest.cc",
    "contextual/reporting/contextual_suggestions_metrics_reporter_unittest.cc",
    "contextual/reporting/contextual_suggestions_ukm_entry_unittest.cc",
    "features_unittest.cc",
    "logger_unittest.cc",
    "reading_list/reading_list_suggestions_provider_unittest.cc",
    "remote/cached_image_fetcher_unittest.cc",
    "remote/json_request_unittest.cc",
    "remote/prefetched_pages_tracker_impl_unittest.cc",
    "remote/remote_suggestion_unittest.cc",
    "remote/remote_suggestions_database_unittest.cc",
    "remote/remote_suggestions_fetcher_impl_unittest.cc",
    "remote/remote_suggestions_provider_impl_unittest.cc",
    "remote/remote_suggestions_scheduler_impl_unittest.cc",
    "remote/remote_suggestions_status_service_impl_unittest.cc",
    "remote/request_throttler_unittest.cc",
    "remote/test_utils.cc",
    "remote/test_utils.h",
    "time_serialization_unittest.cc",
    "user_classifier_unittest.cc",
  ]

  deps = [
    ":explore_protos",
    ":ntp_snippets",
    ":test_support",
    "//base",
    "//base/test:test_support",
    "//components/image_fetcher/core",
    "//components/image_fetcher/core:test_support",
    "//components/leveldb_proto:test_support",
    "//components/ntp_snippets/remote/proto",
    "//components/offline_pages/core",
    "//components/offline_pages/core:test_support",
    "//components/offline_pages/core/background:test_support",
    "//components/prefs:test_support",
    "//components/reading_list/core",
    "//components/strings",
    "//components/sync:test_support_driver",
    "//components/sync_preferences:test_support",
    "//components/ukm:test_support",
    "//components/variations:test_support",
    "//components/variations/net",
    "//components/web_resource:web_resource",
    "//net:test_support",
    "//services/identity/public/cpp",
    "//services/identity/public/cpp:test_support",
    "//services/metrics/public/cpp:ukm_builders",
    "//services/network:test_support",
    "//services/network/public/cpp",
    "//services/network/public/mojom",
    "//testing/gtest",
    "//third_party/icu/",
    "//ui/gfx:test_support",
  ]
}

source_set("test_support") {
  testonly = true
  sources = [
    "category_rankers/fake_category_ranker.cc",
    "category_rankers/fake_category_ranker.h",
    "category_rankers/mock_category_ranker.cc",
    "category_rankers/mock_category_ranker.h",
    "contextual/contextual_suggestions_test_utils.cc",
    "contextual/contextual_suggestions_test_utils.h",
    "fake_content_suggestions_provider_observer.cc",
    "fake_content_suggestions_provider_observer.h",
    "mock_content_suggestions_provider.cc",
    "mock_content_suggestions_provider.h",
    "mock_content_suggestions_provider_observer.cc",
    "mock_content_suggestions_provider_observer.h",
    "offline_pages/offline_pages_test_utils.cc",
    "offline_pages/offline_pages_test_utils.h",
    "remote/remote_suggestion_builder.cc",
    "remote/remote_suggestion_builder.h",
  ]

  deps = [
    ":ntp_snippets",
    "//base",
    "//components/ntp_snippets/remote/proto",
    "//components/offline_pages/core",
    "//components/offline_pages/core:test_support",
    "//testing/gmock",
    "//testing/gtest",
  ]
}
