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

Unified Diff: chrome/browser/password_manager/native_backend_kwallet_x.h

Issue 7835021: Linux: use our spiffy new DBus client library for KWallet, instead of dbus-glib. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 3 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/DEPS ('k') | chrome/browser/password_manager/native_backend_kwallet_x.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/password_manager/native_backend_kwallet_x.h
===================================================================
--- chrome/browser/password_manager/native_backend_kwallet_x.h (revision 100784)
+++ chrome/browser/password_manager/native_backend_kwallet_x.h (working copy)
@@ -6,12 +6,10 @@
#define CHROME_BROWSER_PASSWORD_MANAGER_NATIVE_BACKEND_KWALLET_X_H_
#pragma once
-#include <dbus/dbus-glib.h>
-#include <glib.h>
-
#include <string>
#include "base/basictypes.h"
+#include "base/memory/ref_counted.h"
#include "base/time.h"
#include "chrome/browser/password_manager/password_store_x.h"
#include "chrome/browser/profiles/profile.h"
@@ -23,6 +21,15 @@
struct PasswordForm;
}
+namespace base {
+class WaitableEvent;
+}
+
+namespace dbus {
+class Bus;
+class ObjectProxy;
+}
+
// NativeBackend implementation using KWallet.
class NativeBackendKWallet : public PasswordStoreX::NativeBackend {
public:
@@ -46,6 +53,12 @@
virtual bool GetAutofillableLogins(PasswordFormList* forms) OVERRIDE;
virtual bool GetBlacklistLogins(PasswordFormList* forms) OVERRIDE;
+ protected:
+ // Internally used by Init(), but also for testing to provide a mock bus.
+ void InitWithBus(scoped_refptr<dbus::Bus> optional_bus,
+ base::WaitableEvent* event,
+ bool* success);
+
private:
// Initialization.
bool StartKWalletd();
@@ -77,11 +90,6 @@
const std::string& signon_realm,
int wallet_handle);
- // Checks if the last DBus call returned an error. If it did, logs the error
- // message, frees it and returns true.
- // This must be called after every DBus call.
- bool CheckError();
-
// Opens the wallet and ensures that the "Chrome Form Data" folder exists.
// Returns kInvalidWalletHandle on error.
int WalletHandle();
@@ -99,7 +107,8 @@
// Checks a serialized list of PasswordForms for sanity. Returns true if OK.
// Note that |realm| is only used for generating a useful warning message.
- static bool CheckSerializedValue(const GArray* byte_array, const char* realm);
+ static bool CheckSerializedValue(const uint8_t* byte_array, size_t length,
+ const std::string& realm);
// Deserializes a list of PasswordForms from the wallet.
static void DeserializeValue(const std::string& signon_realm,
@@ -117,7 +126,7 @@
// Name of the folder to store passwords in.
static const char kKWalletFolder[];
- // DBus stuff.
+ // DBus service, path, and interface names for klauncher and kwalletd.
static const char kKWalletServiceName[];
static const char kKWalletPath[];
static const char kKWalletInterface[];
@@ -146,13 +155,10 @@
// True once MigrateToProfileSpecificLogins() has been attempted.
bool migrate_tried_;
- // Error from the last DBus call. NULL when there's no error. Freed and
- // cleared by CheckError().
- GError* error_;
- // Connection to the DBus session bus.
- DBusGConnection* connection_;
- // Proxy to the kwallet DBus service.
- DBusGProxy* proxy_;
+ // DBus handle for communication with klauncher and kwalletd.
+ scoped_refptr<dbus::Bus> session_bus_;
+ // Object proxy for kwalletd. We do not own this.
+ dbus::ObjectProxy* kwallet_proxy_;
// The name of the wallet we've opened. Set during Init().
std::string wallet_name_;
« no previous file with comments | « chrome/browser/password_manager/DEPS ('k') | chrome/browser/password_manager/native_backend_kwallet_x.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698