1# Copyright 2014 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5if (is_android) {
6  import("//build/config/android/config.gni")
7}
8
9config("password_manager_config") {
10  # Sync (not supported in Android WebView).
11  if (!is_android || !is_android_webview_build) {
12    defines = [ "PASSWORD_MANAGER_ENABLE_SYNC" ]
13  }
14}
15
16static_library("browser") {
17  sources = [
18    "browser_save_password_progress_logger.cc",
19    "browser_save_password_progress_logger.h",
20    "log_receiver.h",
21    "log_router.cc",
22    "log_router.h",
23    "login_database.cc",
24    "login_database.h",
25    "login_database_mac.cc",
26    "login_database_posix.cc",
27    "login_database_win.cc",
28    "login_model.h",
29    "password_autofill_manager.cc",
30    "password_autofill_manager.h",
31    "password_form_manager.cc",
32    "password_form_manager.h",
33    "password_generation_manager.cc",
34    "password_generation_manager.h",
35    "password_manager.cc",
36    "password_manager.h",
37    "password_manager_client.cc",
38    "password_manager_client.h",
39    "password_manager_driver.h",
40    "password_manager_internals_service.cc",
41    "password_manager_internals_service.h",
42    "password_manager_metrics_util.cc",
43    "password_manager_metrics_util.h",
44    "password_store.cc",
45    "password_store.h",
46    "password_store_change.h",
47    "password_store_consumer.cc",
48    "password_store_consumer.h",
49    "password_store_default.cc",
50    "password_store_default.h",
51    "password_store_sync.cc",
52    "password_store_sync.h",
53    "psl_matching_helper.cc",
54    "psl_matching_helper.h",
55    "webdata/logins_table.cc",
56    "webdata/logins_table.h",
57    "webdata/logins_table_win.cc",
58    "webdata/password_web_data_service_win.cc",
59    "webdata/password_web_data_service_win.h",
60  ]
61
62  deps = [
63    "//base",
64    "//components/autofill/core/common",
65    "//components/keyed_service/core",
66    "//components/os_crypt",
67    "//components/password_manager/core/common",
68    "//net",
69    "//sql",
70    "//url",
71  ]
72
73  if (is_mac) {
74    # TODO(blundell): Provide the iOS login DB implementation and then
75    # also exclude the POSIX one from iOS. http://crbug.com/341429
76    sources -= [ "login_database_posix.cc" ]
77  } else if (is_win) {
78    # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
79    cflags = [ "/wd4267" ]
80  }
81
82  public_configs = [ ":password_manager_config" ]
83
84  # Sync (not supported in Android WebView).
85  if (!is_android || !is_android_webview_build) {
86    sources += [
87      "password_syncable_service.cc",
88      "password_syncable_service.h",
89    ]
90    deps += [ "//sync" ]
91  }
92}
93
94source_set("test_support") {
95  testonly = true
96  sources = [
97    "mock_password_store.cc",
98    "mock_password_store.h",
99    "password_form_data.cc",
100    "password_form_data.h",
101    "stub_password_manager_client.cc",
102    "stub_password_manager_client.h",
103    "stub_password_manager_driver.cc",
104    "stub_password_manager_driver.h",
105    "test_password_store.cc",
106    "test_password_store.h",
107  ]
108
109  public_deps = [
110    ":browser",
111  ]
112  deps = [
113    "//base",
114    "//components/autofill/core/common",
115    "//testing/gmock",
116    "//testing/gtest",
117  ]
118}
119