# Copyright 2016 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.

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

static_library("ntp_tiles") {
  sources = [
    "constants.cc",
    "constants.h",
    "country_code_ios.h",
    "country_code_ios.mm",
    "field_trial.cc",
    "field_trial.h",
    "icon_cacher.h",
    "icon_cacher_impl.cc",
    "icon_cacher_impl.h",
    "metrics.cc",
    "metrics.h",
    "most_visited_sites.cc",
    "most_visited_sites.h",
    "ntp_tile.cc",
    "ntp_tile.h",
    "ntp_tile_impression.cc",
    "ntp_tile_impression.h",
    "popular_sites.h",
    "popular_sites_impl.cc",
    "popular_sites_impl.h",
    "pref_names.cc",
    "pref_names.h",
    "section_type.h",
    "switches.cc",
    "switches.h",
    "tile_source.h",
    "tile_title_source.h",
    "tile_visual_type.h",
    "webui/ntp_tiles_internals_message_handler.cc",
    "webui/ntp_tiles_internals_message_handler.h",
    "webui/ntp_tiles_internals_message_handler_client.cc",
    "webui/ntp_tiles_internals_message_handler_client.h",
  ]

  public_deps = [
    "//base",
    "//components/history/core/browser",
    "//components/suggestions",
  ]
  deps = [
    "//components/data_use_measurement/core",
    "//components/favicon/core",
    "//components/favicon_base",
    "//components/google/core/browser",
    "//components/image_fetcher/core",
    "//components/pref_registry",
    "//components/prefs",
    "//components/rappor/public",
    "//components/resources",
    "//components/search_engines",
    "//components/url_formatter",
    "//components/variations",
    "//components/variations/service",
    "//ui/base",
  ]

  if (is_android) {
    deps += [ "android:ntp_tiles_jni_headers" ]
  }
}

# If you want to use this, let us (ntp-dev@chromium.org) know. In that case, it
# should be moved to a more common location as it has 2+ callers already.
# Note that you probably shouldn't be using it outside of ios or tests.
source_set("json_unsafe_parser") {
  testonly = !is_ios

  sources = [
    "json_unsafe_parser.cc",
    "json_unsafe_parser.h",
  ]

  public_deps = [
    "//base",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "icon_cacher_impl_unittest.cc",
    "metrics_unittest.cc",
    "most_visited_sites_unittest.cc",
    "popular_sites_impl_unittest.cc",
  ]

  deps = [
    ":json_unsafe_parser",
    ":ntp_tiles",
    "//base/test:test_support",
    "//components/favicon/core",
    "//components/favicon_base",
    "//components/image_fetcher/core",
    "//components/pref_registry:pref_registry",
    "//components/rappor:test_support",
    "//components/sync_preferences:test_support",
    "//net:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//ui/base",
    "//ui/gfx:test_support",
  ]
}

if (is_android) {
  java_cpp_enum("ntp_tiles_enums_java") {
    sources = [
      "section_type.h",
      "tile_source.h",
      "tile_title_source.h",
      "tile_visual_type.h",
    ]
  }
}