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

component("network_error_logging") {
  sources = [
    "network_error_logging_export.h",
    "network_error_logging_service.cc",
    "network_error_logging_service.h",
  ]

  defines = [ "NETWORK_ERROR_LOGGING_IMPLEMENTATION" ]

  deps = [
    "//base",
    "//net",
    "//url",
  ]
}

source_set("unit_tests") {
  testonly = true

  sources = [
    "network_error_logging_service_unittest.cc",
  ]

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