# 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",
    "//testing/gtest",
  ]
}
