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

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

Issue 2196193002: Expanded GnomeKeyringLoader macros (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix format Created 4 years, 5 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
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 6226858f726aa232451b866e1921ffb1d0aa45fe..9d262852c9d313ec3d30146d18beff006cdd946b 100644
--- a/chrome/browser/password_manager/native_backend_gnome_x.cc
+++ b/chrome/browser/password_manager/native_backend_gnome_x.cc
@@ -42,20 +42,47 @@ namespace {
const int kMaxPossibleTimeTValue = std::numeric_limits<int>::max();
}
-#define GNOME_KEYRING_DEFINE_POINTER(name) \
- typeof(&::gnome_keyring_##name) GnomeKeyringLoader::gnome_keyring_##name;
-GNOME_KEYRING_FOR_EACH_FUNC(GNOME_KEYRING_DEFINE_POINTER)
-#undef GNOME_KEYRING_DEFINE_POINTER
+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;
-#define GNOME_KEYRING_FUNCTION_INFO(name) \
- {"gnome_keyring_"#name, reinterpret_cast<void**>(&gnome_keyring_##name)},
const GnomeKeyringLoader::FunctionInfo GnomeKeyringLoader::functions[] = {
- GNOME_KEYRING_FOR_EACH_FUNC(GNOME_KEYRING_FUNCTION_INFO)
- {nullptr, nullptr}
-};
-#undef GNOME_KEYRING_FUNCTION_INFO
+ {"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() {
@@ -71,7 +98,7 @@ bool GnomeKeyringLoader::LoadGnomeKeyring() {
return false;
}
- for (size_t i = 0; functions[i].name; ++i) {
+ for (size_t i = 0; i < arraysize(functions); ++i) {
dlerror();
*functions[i].pointer = dlsym(handle, functions[i].name);
const char* error = dlerror();
@@ -289,7 +316,7 @@ class GKRMethod : public GnomeKeyringLoader {
private:
struct GnomeKeyringAttributeListFreeDeleter {
inline void operator()(void* list) const {
- gnome_keyring_attribute_list_free(
+ gnome_keyring_attribute_list_free_ptr(
static_cast<GnomeKeyringAttributeList*>(list));
}
};
@@ -342,7 +369,7 @@ void GKRMethod::AddLogin(const PasswordForm& form, const char* app_string) {
std::string form_data;
SerializeFormDataToBase64String(form.form_data, &form_data);
// clang-format off
- gnome_keyring_store_password(
+ gnome_keyring_store_password_ptr(
&kGnomeSchema,
nullptr, // Default keyring.
form.origin.spec().c_str(), // Display name.
@@ -383,27 +410,26 @@ void GKRMethod::LoginSearch(const PasswordForm& form,
DCHECK_CURRENTLY_ON(BrowserThread::UI);
lookup_form_.reset(nullptr);
// Search GNOME Keyring for matching passwords to update.
- ScopedAttributeList attrs(gnome_keyring_attribute_list_new());
+ ScopedAttributeList attrs(gnome_keyring_attribute_list_new_ptr());
AppendString(&attrs, "origin_url", form.origin.spec());
AppendString(&attrs, "username_element", UTF16ToUTF8(form.username_element));
AppendString(&attrs, "username_value", UTF16ToUTF8(form.username_value));
AppendString(&attrs, "password_element", UTF16ToUTF8(form.password_element));
AppendString(&attrs, "signon_realm", form.signon_realm);
AppendString(&attrs, "application", app_string);
- gnome_keyring_find_items(GNOME_KEYRING_ITEM_GENERIC_SECRET,
- attrs.get(),
- OnOperationGetList,
- /*data=*/this,
- /*destroy_data=*/nullptr);
+ gnome_keyring_find_items_ptr(GNOME_KEYRING_ITEM_GENERIC_SECRET, attrs.get(),
+ OnOperationGetList,
+ /*data=*/this,
+ /*destroy_data=*/nullptr);
}
void GKRMethod::RemoveLogin(const PasswordForm& form, const char* app_string) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
// We find forms using the same fields as LoginDatabase::RemoveLogin().
- gnome_keyring_delete_password(
+ gnome_keyring_delete_password_ptr(
&kGnomeSchema,
OnOperationDone,
- this, // data
+ this, // data
nullptr, // destroy_data
"origin_url", form.origin.spec().c_str(),
"username_element", UTF16ToUTF8(form.username_element).c_str(),
@@ -419,7 +445,7 @@ void GKRMethod::GetLogins(const PasswordStore::FormDigest& form,
DCHECK_CURRENTLY_ON(BrowserThread::UI);
lookup_form_.reset(new PasswordStore::FormDigest(form));
// Search GNOME Keyring for matching passwords.
- ScopedAttributeList attrs(gnome_keyring_attribute_list_new());
+ ScopedAttributeList attrs(gnome_keyring_attribute_list_new_ptr());
if (!password_manager::ShouldPSLDomainMatchingApply(
password_manager::GetRegistryControlledDomain(
GURL(form.signon_realm))) &&
@@ -428,11 +454,10 @@ void GKRMethod::GetLogins(const PasswordStore::FormDigest& form,
AppendString(&attrs, "signon_realm", form.signon_realm);
}
AppendString(&attrs, "application", app_string);
- gnome_keyring_find_items(GNOME_KEYRING_ITEM_GENERIC_SECRET,
- attrs.get(),
- OnOperationGetList,
- /*data=*/this,
- /*destroy_data=*/nullptr);
+ gnome_keyring_find_items_ptr(GNOME_KEYRING_ITEM_GENERIC_SECRET, attrs.get(),
+ OnOperationGetList,
+ /*data=*/this,
+ /*destroy_data=*/nullptr);
}
void GKRMethod::GetLoginsList(uint32_t blacklisted_by_user,
@@ -440,14 +465,13 @@ void GKRMethod::GetLoginsList(uint32_t blacklisted_by_user,
DCHECK_CURRENTLY_ON(BrowserThread::UI);
lookup_form_.reset(nullptr);
// Search GNOME Keyring for matching passwords.
- ScopedAttributeList attrs(gnome_keyring_attribute_list_new());
+ ScopedAttributeList attrs(gnome_keyring_attribute_list_new_ptr());
AppendUint32(&attrs, "blacklisted_by_user", blacklisted_by_user);
AppendString(&attrs, "application", app_string);
- gnome_keyring_find_items(GNOME_KEYRING_ITEM_GENERIC_SECRET,
- attrs.get(),
- OnOperationGetList,
- /*data=*/this,
- /*destroy_data=*/nullptr);
+ gnome_keyring_find_items_ptr(GNOME_KEYRING_ITEM_GENERIC_SECRET, attrs.get(),
+ OnOperationGetList,
+ /*data=*/this,
+ /*destroy_data=*/nullptr);
}
void GKRMethod::GetAllLogins(const char* app_string) {
@@ -455,13 +479,12 @@ void GKRMethod::GetAllLogins(const char* app_string) {
lookup_form_.reset(nullptr);
// We need to search for something, otherwise we get no results - so
// we search for the fixed application string.
- ScopedAttributeList attrs(gnome_keyring_attribute_list_new());
+ ScopedAttributeList attrs(gnome_keyring_attribute_list_new_ptr());
AppendString(&attrs, "application", app_string);
- gnome_keyring_find_items(GNOME_KEYRING_ITEM_GENERIC_SECRET,
- attrs.get(),
- OnOperationGetList,
- /*data=*/this,
- /*destroy_data=*/nullptr);
+ gnome_keyring_find_items_ptr(GNOME_KEYRING_ITEM_GENERIC_SECRET, attrs.get(),
+ OnOperationGetList,
+ /*data=*/this,
+ /*destroy_data=*/nullptr);
}
GnomeKeyringResult GKRMethod::WaitResult() {
@@ -481,7 +504,7 @@ GnomeKeyringResult GKRMethod::WaitResult(ScopedVector<PasswordForm>* forms) {
void GKRMethod::AppendString(GKRMethod::ScopedAttributeList* list,
const char* name,
const char* value) {
- gnome_keyring_attribute_list_append_string(list->get(), name, value);
+ gnome_keyring_attribute_list_append_string_ptr(list->get(), name, value);
}
// static
@@ -495,7 +518,7 @@ void GKRMethod::AppendString(GKRMethod::ScopedAttributeList* list,
void GKRMethod::AppendUint32(GKRMethod::ScopedAttributeList* list,
const char* name,
guint32 value) {
- gnome_keyring_attribute_list_append_uint32(list->get(), name, value);
+ gnome_keyring_attribute_list_append_uint32_ptr(list->get(), name, value);
}
// static
@@ -537,7 +560,7 @@ NativeBackendGnome::~NativeBackendGnome() {
}
bool NativeBackendGnome::Init() {
- return LoadGnomeKeyring() && gnome_keyring_is_available();
+ return LoadGnomeKeyring() && gnome_keyring_is_available_ptr();
}
bool NativeBackendGnome::RawAddLogin(const PasswordForm& form) {
@@ -550,7 +573,7 @@ bool NativeBackendGnome::RawAddLogin(const PasswordForm& form) {
GnomeKeyringResult result = method.WaitResult();
if (result != GNOME_KEYRING_RESULT_OK) {
LOG(ERROR) << "Keyring save failed: "
- << gnome_keyring_result_to_message(result);
+ << gnome_keyring_result_to_message_ptr(result);
return false;
}
return true;
@@ -574,7 +597,7 @@ password_manager::PasswordStoreChangeList NativeBackendGnome::AddLogin(
if (result != GNOME_KEYRING_RESULT_OK &&
result != GNOME_KEYRING_RESULT_NO_MATCH) {
LOG(ERROR) << "Keyring find failed: "
- << gnome_keyring_result_to_message(result);
+ << gnome_keyring_result_to_message_ptr(result);
return password_manager::PasswordStoreChangeList();
}
password_manager::PasswordStoreChangeList changes;
@@ -620,7 +643,7 @@ bool NativeBackendGnome::UpdateLogin(
return true;
if (result != GNOME_KEYRING_RESULT_OK) {
LOG(ERROR) << "Keyring find failed: "
- << gnome_keyring_result_to_message(result);
+ << gnome_keyring_result_to_message_ptr(result);
return false;
}
if (forms.size() == 1 && *forms.front() == form)
@@ -660,7 +683,7 @@ bool NativeBackendGnome::RemoveLogin(
if (result != GNOME_KEYRING_RESULT_OK) {
LOG(ERROR) << "Keyring delete failed: "
- << gnome_keyring_result_to_message(result);
+ << gnome_keyring_result_to_message_ptr(result);
return false;
}
changes->push_back(password_manager::PasswordStoreChange(
@@ -714,7 +737,7 @@ bool NativeBackendGnome::GetLogins(const PasswordStore::FormDigest& form,
return true;
if (result != GNOME_KEYRING_RESULT_OK) {
LOG(ERROR) << "Keyring find failed: "
- << gnome_keyring_result_to_message(result);
+ << gnome_keyring_result_to_message_ptr(result);
return false;
}
return true;
@@ -745,7 +768,7 @@ bool NativeBackendGnome::GetLoginsList(bool autofillable,
return true;
if (result != GNOME_KEYRING_RESULT_OK) {
LOG(ERROR) << "Keyring find failed: "
- << gnome_keyring_result_to_message(result);
+ << gnome_keyring_result_to_message_ptr(result);
return false;
}
@@ -779,7 +802,7 @@ bool NativeBackendGnome::GetAllLogins(ScopedVector<PasswordForm>* forms) {
return true;
if (result != GNOME_KEYRING_RESULT_OK) {
LOG(ERROR) << "Keyring find failed: "
- << gnome_keyring_result_to_message(result);
+ << gnome_keyring_result_to_message_ptr(result);
return false;
}
return true;

Powered by Google App Engine
This is Rietveld 408576698