chromium/components/domain_reliability/BUILD.gn

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

action("bake_in_configs") {
  visibility = [ ":*" ]
  script = "bake_in_configs.py"

  inputs = [
    "baked_in_configs/c_android_clients_google_com.json",
    "baked_in_configs/c_bigcache_googleapis_com.json",
    "baked_in_configs/c_doc-0-0-sj_sj_googleusercontent_com.json",
    "baked_in_configs/c_docs_google_com.json",
    "baked_in_configs/c_drive_google_com.json",
    "baked_in_configs/c_googlesyndication_com.json",
    "baked_in_configs/c_pack_google_com.json",
    "baked_in_configs/c_play_google_com.json",
    "baked_in_configs/c_youtube_com.json",
    "baked_in_configs/clients2_google_com.json",
    "baked_in_configs/docs_google_com.json",
    "baked_in_configs/gcp_gvt2_com.json",
    "baked_in_configs/gcp_gvt6_com.json",
    "baked_in_configs/google-analytics_com.json",
    "baked_in_configs/googlevideo_com.json",
    "baked_in_configs/gvt1_com.json",
    "baked_in_configs/gvt2_com.json",
    "baked_in_configs/gvt6_com.json",
    "baked_in_configs/ssl_gstatic_com.json",
    "baked_in_configs/www_google_com.json",
  ]

  output_file = "$target_gen_dir/baked_in_configs.cc"
  outputs = [ output_file ]

  # The JSON file list is too long for the command line on Windows, so put
  # them in a response file.
  response_file_contents = rebase_path(inputs, root_build_dir)
  args = [
    "--file-list",
    "{{response_file_name}}",
    "--output",
    rebase_path(output_file, root_build_dir),
  ]
}

component("domain_reliability") {
  sources = [
    "baked_in_configs.h",
    "beacon.cc",
    "beacon.h",
    "clear_mode.h",
    "config.cc",
    "config.h",
    "context.cc",
    "context.h",
    "context_manager.cc",
    "context_manager.h",
    "dispatcher.cc",
    "dispatcher.h",
    "domain_reliability_export.h",
    "features.cc",
    "features.h",
    "google_configs.cc",
    "google_configs.h",
    "monitor.cc",
    "monitor.h",
    "quic_error_mapping.cc",
    "quic_error_mapping.h",
    "scheduler.cc",
    "scheduler.h",
    "uploader.cc",
    "uploader.h",
    "util.cc",
    "util.h",
  ]
  sources += get_target_outputs(":bake_in_configs")

  defines = [ "DOMAIN_RELIABILITY_IMPLEMENTATION" ]

  deps = [
    ":bake_in_configs",
    ":prefs",
    "//base",
    "//net",
    "//url",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "config_unittest.cc",
    "context_unittest.cc",
    "dispatcher_unittest.cc",
    "google_configs_unittest.cc",
    "monitor_unittest.cc",
    "scheduler_unittest.cc",
    "test_util.cc",
    "test_util.h",
    "uploader_unittest.cc",
    "util_unittest.cc",
  ]

  deps = [
    ":domain_reliability",
    "//base",
    "//base/test:test_support",
    "//net:test_support",
    "//testing/gtest",
  ]
}

source_set("prefs") {
  sources = [
    "domain_reliability_prefs.cc",
    "domain_reliability_prefs.h",
  ]

  deps = [
    "//base",
    "//components/pref_registry:pref_registry",
    "//components/prefs:prefs",
  ]
}