| Index: chrome/browser/password_manager/native_backend_gnome_x.h
|
| diff --git a/chrome/browser/password_manager/native_backend_gnome_x.h b/chrome/browser/password_manager/native_backend_gnome_x.h
|
| index 5d28693229633a0d1df3579572c9dff00604b7d2..63edd8b27414af5fd31057936902dad1276e7e67 100644
|
| --- a/chrome/browser/password_manager/native_backend_gnome_x.h
|
| +++ b/chrome/browser/password_manager/native_backend_gnome_x.h
|
| @@ -5,18 +5,6 @@
|
| #ifndef CHROME_BROWSER_PASSWORD_MANAGER_NATIVE_BACKEND_GNOME_X_H_
|
| #define CHROME_BROWSER_PASSWORD_MANAGER_NATIVE_BACKEND_GNOME_X_H_
|
|
|
| -// libgnome-keyring has been deprecated in favor of libsecret.
|
| -// See: https://mail.gnome.org/archives/commits-list/2013-October/msg08876.html
|
| -//
|
| -// The define below turns off the deprecations, in order to avoid build
|
| -// failures with Gnome 3.12. When we move to libsecret, the define can be
|
| -// removed, together with the include below it.
|
| -//
|
| -// The porting is tracked in http://crbug.com/355223
|
| -#define GNOME_KEYRING_DEPRECATED
|
| -#define GNOME_KEYRING_DEPRECATED_FOR(x)
|
| -#include <gnome-keyring.h>
|
| -
|
| #include <string>
|
|
|
| #include "base/compiler_specific.h"
|
| @@ -26,55 +14,12 @@
|
| #include "chrome/browser/password_manager/password_store_factory.h"
|
| #include "chrome/browser/password_manager/password_store_x.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| +#include "components/os_crypt/keyring_util_linux.h"
|
|
|
| namespace autofill {
|
| struct PasswordForm;
|
| }
|
|
|
| -// Many of the gnome_keyring_* functions use variable arguments, which makes
|
| -// them difficult if not impossible to truly wrap in C. Therefore, we use
|
| -// appropriately-typed function pointers and scoping to make the fact that we
|
| -// might be dynamically loading the library almost invisible. As a bonus, we
|
| -// also get a simple way to mock the library for testing. Classes that inherit
|
| -// from GnomeKeyringLoader will use its versions of the gnome_keyring_*
|
| -// functions. Note that it has only static fields.
|
| -class GnomeKeyringLoader {
|
| - protected:
|
| - static bool LoadGnomeKeyring();
|
| -
|
| - // Declare the actual function pointers that we'll use in client code.
|
| - static decltype(&::gnome_keyring_is_available) gnome_keyring_is_available_ptr;
|
| - static decltype(
|
| - &::gnome_keyring_store_password) gnome_keyring_store_password_ptr;
|
| - static decltype(
|
| - &::gnome_keyring_delete_password) gnome_keyring_delete_password_ptr;
|
| - static decltype(&::gnome_keyring_find_items) gnome_keyring_find_items_ptr;
|
| - static decltype(
|
| - &::gnome_keyring_result_to_message) gnome_keyring_result_to_message_ptr;
|
| - static decltype(&::gnome_keyring_attribute_list_free)
|
| - gnome_keyring_attribute_list_free_ptr;
|
| - static decltype(
|
| - &::gnome_keyring_attribute_list_new) gnome_keyring_attribute_list_new_ptr;
|
| - static decltype(&::gnome_keyring_attribute_list_append_string)
|
| - gnome_keyring_attribute_list_append_string_ptr;
|
| - static decltype(&::gnome_keyring_attribute_list_append_uint32)
|
| - gnome_keyring_attribute_list_append_uint32_ptr;
|
| - // We also use gnome_keyring_attribute_list_index(), which is a macro and
|
| - // can't be referenced.
|
| -
|
| - // Set to true if LoadGnomeKeyring() has already succeeded.
|
| - static bool keyring_loaded;
|
| -
|
| - private:
|
| - struct FunctionInfo {
|
| - const char* name;
|
| - void** pointer;
|
| - };
|
| -
|
| - // Make it easy to initialize the function pointers in LoadGnomeKeyring().
|
| - static const FunctionInfo functions[];
|
| -};
|
| -
|
| // NativeBackend implementation using GNOME Keyring.
|
| class NativeBackendGnome : public PasswordStoreX::NativeBackend,
|
| public GnomeKeyringLoader {
|
|
|