# Copyright 2015 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("offline_pages") {
  sources = [
    "archive_manager.cc",
    "archive_manager.h",
    "client_namespace_constants.cc",
    "client_namespace_constants.h",
    "client_policy_controller.cc",
    "client_policy_controller.h",
    "offline_event_logger.cc",
    "offline_event_logger.h",
    "offline_page_archiver.h",
    "offline_page_client_policy.h",
    "offline_page_item.cc",
    "offline_page_item.h",
    "offline_page_metadata_store.cc",
    "offline_page_metadata_store.h",
    "offline_page_metadata_store_sql.cc",
    "offline_page_metadata_store_sql.h",
    "offline_page_model.cc",
    "offline_page_model.h",
    "offline_page_model_event_logger.cc",
    "offline_page_model_event_logger.h",
    "offline_page_model_impl.cc",
    "offline_page_model_impl.h",
    "offline_page_model_query.cc",
    "offline_page_model_query.h",
    "offline_page_storage_manager.cc",
    "offline_page_storage_manager.h",
    "offline_page_types.h",
    "offline_store_types.h",
    "snapshot_controller.cc",
    "snapshot_controller.h",
  ]

  deps = [
    ":switches",
    "//base",
    "//components/keyed_service/core",
    "//net",
    "//sql:sql",
    "//url",
  ]
}

static_library("test_support") {
  testonly = true
  sources = [
    "offline_page_test_archiver.cc",
    "offline_page_test_archiver.h",
    "offline_page_test_store.cc",
    "offline_page_test_store.h",
    "stub_offline_page_model.cc",
    "stub_offline_page_model.h",
  ]

  deps = [
    ":offline_pages",
    ":switches",
    "//base",
    "//components/keyed_service/core",
    "//testing/gtest",
    "//url",
  ]
}

static_library("switches") {
  sources = [
    "offline_page_feature.cc",
    "offline_page_feature.h",
  ]

  deps = [
    "//base",
    "//components/version_info",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "archive_manager_unittest.cc",
    "client_policy_controller_unittest.cc",
    "offline_page_metadata_store_impl_unittest.cc",
    "offline_page_model_event_logger_unittest.cc",
    "offline_page_model_impl_unittest.cc",
    "offline_page_model_query_unittest.cc",
    "offline_page_storage_manager_unittest.cc",
    "snapshot_controller_unittest.cc",
  ]

  deps = [
    ":offline_pages",
    ":switches",
    ":test_support",
    "//base",
    "//base/test:test_support",
    "//sql:sql",
    "//testing/gtest",
    "//url",
  ]
}

if (is_android) {
  java_cpp_enum("offline_page_model_enums_java") {
    sources = [
      "background/request_notifier.h",
      "background/request_queue_results.h",
      "background/save_page_request.h",
      "offline_page_types.h",
      "offline_store_types.h",
    ]
  }
}
