# 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 = [
    "bookmarks/bookmark_last_visit_utils.cc",
    "bookmarks/bookmark_last_visit_utils.h",
    "bookmarks/bookmark_suggestions_provider.cc",
    "bookmarks/bookmark_suggestions_provider.h",
    "breaking_news/breaking_news_listener.h",
    "breaking_news/breaking_news_metrics.cc",
    "breaking_news/breaking_news_metrics.h",
    "breaking_news/subscription_json_request.cc",
    "breaking_news/subscription_json_request.h",
    "breaking_news/subscription_manager.cc",
    "breaking_news/subscription_manager.h",
    "breaking_news/subscription_manager_impl.cc",
    "breaking_news/subscription_manager_impl.h",
    "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",
  ]

  if (is_android) {
    sources += [
      "breaking_news/breaking_news_gcm_app_handler.cc",
      "breaking_news/breaking_news_gcm_app_handler.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/bookmarks/browser",
    "//components/data_use_measurement/core",
    "//components/favicon/core",
    "//components/favicon_base",
    "//components/gcm_driver",
    "//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 = [
    "bookmarks/bookmark_last_visit_utils_unittest.cc",
    "bookmarks/bookmark_suggestions_provider_unittest.cc",
    "breaking_news/subscription_json_request_unittest.cc",
    "breaking_news/subscription_manager_impl_unittest.cc",
    "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",
  ]

  if (is_android) {
    sources += [ "breaking_news/breaking_news_gcm_app_handler_unittest.cc" ]
  }

  deps = [
    ":explore_protos",
    ":ntp_snippets",
    ":test_support",
    "//base",
    "//base/test:test_support",
    "//components/bookmarks/browser",
    "//components/bookmarks/test",
    "//components/gcm_driver",
    "//components/gcm_driver/instance_id",
    "//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/web_resource:web_resource",
    "//google_apis/gcm",
    "//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",
  ]
}
