| # 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/jumbo.gni") | 
 | import("//testing/libfuzzer/fuzzer_test.gni") | 
 |  | 
 | 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), | 
 |   ] | 
 | } | 
 |  | 
 | jumbo_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", | 
 |     "google_configs.cc", | 
 |     "google_configs.h", | 
 |     "header.cc", | 
 |     "header.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", | 
 |     "//base", | 
 |     "//net", | 
 |     "//url", | 
 |   ] | 
 | } | 
 |  | 
 | jumbo_source_set("unit_tests") { | 
 |   testonly = true | 
 |   sources = [ | 
 |     "config_unittest.cc", | 
 |     "context_unittest.cc", | 
 |     "dispatcher_unittest.cc", | 
 |     "google_configs_unittest.cc", | 
 |     "header_unittest.cc", | 
 |     "monitor_unittest.cc", | 
 |     "scheduler_unittest.cc", | 
 |     "test_util.cc", | 
 |     "test_util.h", | 
 |     "uploader_unittest.cc", | 
 |     "util_unittest.cc", | 
 |   ] | 
 |  | 
 |   configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] | 
 |  | 
 |   deps = [ | 
 |     ":domain_reliability", | 
 |     "//base", | 
 |     "//base/test:test_support", | 
 |     "//net:test_support", | 
 |     "//testing/gtest", | 
 |   ] | 
 | } | 
 |  | 
 | fuzzer_test("domain_reliability_header_fuzzer") { | 
 |   sources = [ | 
 |     "header_fuzzer.cc", | 
 |   ] | 
 |   deps = [ | 
 |     ":domain_reliability", | 
 |     "//base", | 
 |     "//base:i18n", | 
 |   ] | 
 |   dict = "header.dict" | 
 | } |