Index: chrome/browser/password_manager/native_backend_gnome_x.cc |
diff --git a/chrome/browser/password_manager/native_backend_gnome_x.cc b/chrome/browser/password_manager/native_backend_gnome_x.cc |
index 9d262852c9d313ec3d30146d18beff006cdd946b..0199311e2d468d5468b75af6576be723081170b9 100644 |
--- a/chrome/browser/password_manager/native_backend_gnome_x.cc |
+++ b/chrome/browser/password_manager/native_backend_gnome_x.cc |
@@ -4,11 +4,6 @@ |
#include "chrome/browser/password_manager/native_backend_gnome_x.h" |
-#include <dlfcn.h> |
-#include <gnome-keyring.h> |
-#include <stddef.h> |
-#include <stdint.h> |
- |
#include <limits> |
#include <map> |
#include <memory> |
@@ -42,79 +37,6 @@ namespace { |
const int kMaxPossibleTimeTValue = std::numeric_limits<int>::max(); |
} |
-decltype(&::gnome_keyring_is_available) |
- GnomeKeyringLoader::gnome_keyring_is_available_ptr; |
-decltype(&::gnome_keyring_store_password) |
- GnomeKeyringLoader::gnome_keyring_store_password_ptr; |
-decltype(&::gnome_keyring_delete_password) |
- GnomeKeyringLoader::gnome_keyring_delete_password_ptr; |
-decltype(&::gnome_keyring_find_items) |
- GnomeKeyringLoader::gnome_keyring_find_items_ptr; |
-decltype(&::gnome_keyring_result_to_message) |
- GnomeKeyringLoader::gnome_keyring_result_to_message_ptr; |
-decltype(&::gnome_keyring_attribute_list_free) |
- GnomeKeyringLoader::gnome_keyring_attribute_list_free_ptr; |
-decltype(&::gnome_keyring_attribute_list_new) |
- GnomeKeyringLoader::gnome_keyring_attribute_list_new_ptr; |
-decltype(&::gnome_keyring_attribute_list_append_string) |
- GnomeKeyringLoader::gnome_keyring_attribute_list_append_string_ptr; |
-decltype(&::gnome_keyring_attribute_list_append_uint32) |
- GnomeKeyringLoader::gnome_keyring_attribute_list_append_uint32_ptr; |
- |
-bool GnomeKeyringLoader::keyring_loaded = false; |
- |
-const GnomeKeyringLoader::FunctionInfo GnomeKeyringLoader::functions[] = { |
- {"gnome_keyring_is_available", |
- reinterpret_cast<void**>(&gnome_keyring_is_available_ptr)}, |
- {"gnome_keyring_store_password", |
- reinterpret_cast<void**>(&gnome_keyring_store_password_ptr)}, |
- {"gnome_keyring_delete_password", |
- reinterpret_cast<void**>(&gnome_keyring_delete_password_ptr)}, |
- {"gnome_keyring_find_items", |
- reinterpret_cast<void**>(&gnome_keyring_find_items_ptr)}, |
- {"gnome_keyring_result_to_message", |
- reinterpret_cast<void**>(&gnome_keyring_result_to_message_ptr)}, |
- {"gnome_keyring_attribute_list_free", |
- reinterpret_cast<void**>(&gnome_keyring_attribute_list_free_ptr)}, |
- {"gnome_keyring_attribute_list_new", |
- reinterpret_cast<void**>(&gnome_keyring_attribute_list_new_ptr)}, |
- {"gnome_keyring_attribute_list_append_string", |
- reinterpret_cast<void**>(&gnome_keyring_attribute_list_append_string_ptr)}, |
- {"gnome_keyring_attribute_list_append_uint32", |
- reinterpret_cast<void**>( |
- &gnome_keyring_attribute_list_append_uint32_ptr)}}; |
- |
-/* Load the library and initialize the function pointers. */ |
-bool GnomeKeyringLoader::LoadGnomeKeyring() { |
- if (keyring_loaded) |
- return true; |
- |
- void* handle = dlopen("libgnome-keyring.so.0", RTLD_NOW | RTLD_GLOBAL); |
- if (!handle) { |
- // We wanted to use GNOME Keyring, but we couldn't load it. Warn, because |
- // either the user asked for this, or we autodetected it incorrectly. (Or |
- // the system has broken libraries, which is also good to warn about.) |
- LOG(WARNING) << "Could not load libgnome-keyring.so.0: " << dlerror(); |
- return false; |
- } |
- |
- for (size_t i = 0; i < arraysize(functions); ++i) { |
- dlerror(); |
- *functions[i].pointer = dlsym(handle, functions[i].name); |
- const char* error = dlerror(); |
- if (error) { |
- LOG(ERROR) << "Unable to load symbol " |
- << functions[i].name << ": " << error; |
- dlclose(handle); |
- return false; |
- } |
- } |
- |
- keyring_loaded = true; |
- // We leak the library handle. That's OK: this function is called only once. |
- return true; |
-} |
- |
namespace { |
const char kGnomeKeyringAppString[] = "chrome"; |