Index: components/os_crypt/key_storage_util_linux.h |
diff --git a/components/os_crypt/key_storage_util_linux.h b/components/os_crypt/key_storage_util_linux.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d5c04b6e70b8e8a36be3be6c1d428276704a40e4 |
--- /dev/null |
+++ b/components/os_crypt/key_storage_util_linux.h |
@@ -0,0 +1,35 @@ |
+// Copyright 2016 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. |
+ |
+#ifndef COMPONENTS_OS_CRYPT_KEY_STORAGE_UTIL_LINUX_H_ |
+#define COMPONENTS_OS_CRYPT_KEY_STORAGE_UTIL_LINUX_H_ |
+ |
+#include <string> |
+ |
+#include "base/nix/xdg_util.h" |
+ |
+namespace os_crypt { |
+ |
+// The supported Linux backends for storing passwords. |
+enum class SelectedLinuxBackend { |
+ DEFER, // No selection |
+ BASIC_TEXT, |
+ GNOME_ANY, // GNOME_KEYRING or GNOME_LIBSECRET, whichever is available. |
+ GNOME_KEYRING, |
+ GNOME_LIBSECRET, |
+ KWALLET, |
+ KWALLET5, |
+}; |
+ |
+// Decide which backend to target. |type| is checked first. If it does not |
+// match a supported backend, |desktop_env| will be used to decide. |
+// TODO(crbug/571003): This is exposed as a utility only for password manager to |
+// use. It should be merged into key_storage_linux, once no longer needed in |
+// password manager. |
+SelectedLinuxBackend SelectBackend(const std::string& type, |
+ base::nix::DesktopEnvironment desktop_env); |
+ |
+} // namespace os_crypt |
+ |
+#endif // COMPONENTS_OS_CRYPT_KEY_STORAGE_UTIL_LINUX_H_ |