Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1095)

Unified Diff: chrome/browser/password_manager/native_backend_gnome_x.cc

Issue 2216313002: Move GnomeKeyringLoader to components/os_crypt (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: removed guard Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/password_manager/native_backend_gnome_x.h ('k') | chrome/test/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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";
« no previous file with comments | « chrome/browser/password_manager/native_backend_gnome_x.h ('k') | chrome/test/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698