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

static_library("favicon_base") {
  sources = [
    "fallback_icon_style.cc",
    "fallback_icon_style.h",
    "fallback_icon_url_parser.cc",
    "fallback_icon_url_parser.h",
    "favicon_callback.h",
    "favicon_types.cc",
    "favicon_types.h",
    "favicon_url_parser.cc",
    "favicon_url_parser.h",
    "favicon_usage_data.cc",
    "favicon_usage_data.h",
    "favicon_util.cc",
    "favicon_util.h",
    "large_icon_url_parser.cc",
    "large_icon_url_parser.h",
    "select_favicon_frames.cc",
    "select_favicon_frames.h",
  ]

  deps = [
    "//base",
    "//net",
    "//ui/base",
    "//ui/base:ui_data_pack",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//url",
  ]
  public_deps = [
    "//skia",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "fallback_icon_url_parser_unittest.cc",
    "favicon_url_parser_unittest.cc",
    "large_icon_url_parser_unittest.cc",
    "select_favicon_frames_unittest.cc",
  ]

  deps = [
    ":favicon_base",
    "//testing/gtest",
    "//ui/base",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//url",
  ]
}
