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

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

  deps = [
    "//base",
    "//base:i18n",
    "//components/dom_distiller/core:core",
    "//components/profile_metrics",
    "//components/url_formatter:url_formatter",
    "//url",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "navigation_metrics_unittest.cc",
  ]
  deps = [
    ":navigation_metrics",
    "//base/test:test_support",
    "//components/profile_metrics",
    "//testing/gtest",
    "//url",
  ]
}
