# 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("webdata_services") {
  output_name = "webdata_services"

  sources = [
    "web_data_service_wrapper.cc",
    "web_data_service_wrapper.h",
  ]

  deps = [
    "//base",
    "//components/autofill/core/browser",
    "//components/keyed_service/core",
    "//components/password_manager/core/browser",
    "//components/search_engines",
    "//components/signin/core/browser",
    "//components/sync",
    "//components/webdata/common",
    "//sql",
  ]

  if (!is_ios) {
    deps += [ "//components/payments/content:utils" ]
  }
}

static_library("test_support") {
  testonly = true
  sources = [
    "web_data_service_test_util.cc",
    "web_data_service_test_util.h",
  ]

  deps = [
    ":webdata_services",
    "//base",
    "//components/autofill/core/browser",
    "//components/signin/core/browser",
  ]
}
