# Copyright 2015 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("undo") {
  sources = [
    "bookmark_undo_service.cc",
    "bookmark_undo_service.h",
    "bookmark_undo_utils.cc",
    "bookmark_undo_utils.h",
    "undo_manager.cc",
    "undo_manager.h",
    "undo_manager_observer.h",
    "undo_operation.h",
  ]

  deps = [
    "//base",
    "//components/bookmarks/browser",
    "//components/keyed_service/core",
    "//components/strings",
    "//ui/base",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "bookmark_undo_service_test.cc",
    "undo_manager_test.cc",
  ]

  deps = [
    ":undo",
    "//base",
    "//components/bookmarks/browser",
    "//components/bookmarks/test",
    "//testing/gtest",
  ]
  configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
}
