summaryrefslogtreecommitdiffstats
path: root/chromeos
diff options
context:
space:
mode:
authorhashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-17 16:49:04 +0000
committerhashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-17 16:49:04 +0000
commit1c947bdfa5d01e949219d58ca969768b2b2dcc30 (patch)
tree7ddc06d7ad495911ad1e1742e78ce430997809c9 /chromeos
parent56b62d3396a651d350ddbbe540fcc7aeaaba1da0 (diff)
downloadchromium_src-1c947bdfa5d01e949219d58ca969768b2b2dcc30.zip
chromium_src-1c947bdfa5d01e949219d58ca969768b2b2dcc30.tar.gz
chromium_src-1c947bdfa5d01e949219d58ca969768b2b2dcc30.tar.bz2
chromeos: Implement async version of CryptohomeClient::Tpm* methods
Implement new async version TPM methods. Existing blocking version methods are renamed to Call*AndBlock. Blocking version methods will be removed in near future after all users finsh switching to the async version. BUG=141010, 141011, 141012 Review URL: https://chromiumcodereview.appspot.com/12207200 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@183038 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos')
-rw-r--r--chromeos/dbus/cryptohome_client.cc58
-rw-r--r--chromeos/dbus/cryptohome_client.h21
-rw-r--r--chromeos/dbus/mock_cryptohome_client.h10
3 files changed, 75 insertions, 14 deletions
diff --git a/chromeos/dbus/cryptohome_client.cc b/chromeos/dbus/cryptohome_client.cc
index d6df763..62c616d 100644
--- a/chromeos/dbus/cryptohome_client.cc
+++ b/chromeos/dbus/cryptohome_client.cc
@@ -188,7 +188,7 @@ class CryptohomeClientImpl : public CryptohomeClient {
}
// CryptohomeClient override.
- // TODO(hashimoto): Remove this method. crosbug.com/28500
+ // TODO(hashimoto): Remove this method. crbug.com/141006
virtual bool CallTpmIsEnabledAndBlock(bool* enabled) OVERRIDE {
// We don't use INITIALIZE_METHOD_CALL here because the C++ method name is
// different from the D-Bus method name (TpmIsEnabled).
@@ -209,13 +209,28 @@ class CryptohomeClientImpl : public CryptohomeClient {
}
// CryptohomeClient override.
- virtual bool TpmIsOwned(bool* owned) OVERRIDE {
+ virtual void TpmIsOwned(const BoolDBusMethodCallback& callback) OVERRIDE {
+ INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsOwned);
+ CallBoolMethod(&method_call, callback);
+ }
+
+ // CryptohomeClient override.
+ // TODO(hashimoto): Remove this method. crbug.com/141012
+ virtual bool CallTpmIsOwnedAndBlock(bool* owned) OVERRIDE {
INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsOwned);
return CallBoolMethodAndBlock(&method_call, owned);
}
// CryptohomeClient override.
- virtual bool TpmIsBeingOwned(bool* owning) OVERRIDE {
+ virtual void TpmIsBeingOwned(const BoolDBusMethodCallback& callback)
+ OVERRIDE {
+ INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsBeingOwned);
+ CallBoolMethod(&method_call, callback);
+ }
+
+ // CryptohomeClient override.
+ // TODO(hashimoto): Remove this method. crbug.com/141011
+ virtual bool CallTpmIsBeingOwnedAndBlock(bool* owning) OVERRIDE {
INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsBeingOwned);
return CallBoolMethodAndBlock(&method_call, owning);
}
@@ -228,8 +243,17 @@ class CryptohomeClientImpl : public CryptohomeClient {
CallVoidMethod(&method_call, callback);
}
+ // CryptohomeClient overrides.
+ virtual void TpmClearStoredPassword(const VoidDBusMethodCallback& callback)
+ OVERRIDE {
+ INITIALIZE_METHOD_CALL(method_call,
+ cryptohome::kCryptohomeTpmClearStoredPassword);
+ CallVoidMethod(&method_call, callback);
+ }
+
// CryptohomeClient override.
- virtual bool TpmClearStoredPassword() OVERRIDE {
+ // TODO(hashimoto): Remove this method. crbug.com/141010
+ virtual bool CallTpmClearStoredPasswordAndBlock() OVERRIDE {
INITIALIZE_METHOD_CALL(method_call,
cryptohome::kCryptohomeTpmClearStoredPassword);
scoped_ptr<dbus::Response> response(
@@ -675,13 +699,26 @@ class CryptohomeClientStubImpl : public CryptohomeClient {
}
// CryptohomeClient override.
- virtual bool TpmIsOwned(bool* owned) OVERRIDE {
+ virtual void TpmIsOwned(const BoolDBusMethodCallback& callback) OVERRIDE {
+ MessageLoop::current()->PostTask(
+ FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, true));
+ }
+
+ // CryptohomeClient override.
+ virtual bool CallTpmIsOwnedAndBlock(bool* owned) OVERRIDE {
*owned = true;
return true;
}
// CryptohomeClient override.
- virtual bool TpmIsBeingOwned(bool* owning) OVERRIDE {
+ virtual void TpmIsBeingOwned(const BoolDBusMethodCallback& callback)
+ OVERRIDE {
+ MessageLoop::current()->PostTask(
+ FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, true));
+ }
+
+ // CryptohomeClient override.
+ virtual bool CallTpmIsBeingOwnedAndBlock(bool* owning) OVERRIDE {
*owning = true;
return true;
}
@@ -694,7 +731,14 @@ class CryptohomeClientStubImpl : public CryptohomeClient {
}
// CryptohomeClient override.
- virtual bool TpmClearStoredPassword() OVERRIDE { return true; }
+ virtual void TpmClearStoredPassword(const VoidDBusMethodCallback& callback)
+ OVERRIDE {
+ MessageLoop::current()->PostTask(
+ FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS));
+ }
+
+ // CryptohomeClient override.
+ virtual bool CallTpmClearStoredPasswordAndBlock() OVERRIDE { return true; }
// CryptohomeClient override.
virtual void Pkcs11IsTpmTokenReady(
diff --git a/chromeos/dbus/cryptohome_client.h b/chromeos/dbus/cryptohome_client.h
index 9d94d46..998461a 100644
--- a/chromeos/dbus/cryptohome_client.h
+++ b/chromeos/dbus/cryptohome_client.h
@@ -117,28 +117,41 @@ class CHROMEOS_EXPORT CryptohomeClient {
// Calls TpmIsEnabled method and returns true when the call succeeds.
// This method blocks until the call returns.
- // TODO(hashimoto): Remove this method. crosbug.com/28500
+ // TODO(hashimoto): Remove this method. crbug.com/141006
virtual bool CallTpmIsEnabledAndBlock(bool* enabled) = 0;
// Calls TpmGetPassword method.
virtual void TpmGetPassword(const StringDBusMethodCallback& callback) = 0;
+ // Calls TpmIsOwned method.
+ virtual void TpmIsOwned(const BoolDBusMethodCallback& callback) = 0;
+
// Calls TpmIsOwned method and returns true when the call succeeds.
// This method blocks until the call returns.
- virtual bool TpmIsOwned(bool* owned) = 0;
+ // TODO(hashimoto): Remove this method. crbug.com/141012
+ virtual bool CallTpmIsOwnedAndBlock(bool* owned) = 0;
+
+ // Calls TpmIsBeingOwned method.
+ virtual void TpmIsBeingOwned(const BoolDBusMethodCallback& callback) = 0;
// Calls TpmIsBeingOwned method and returns true when the call succeeds.
// This method blocks until the call returns.
- virtual bool TpmIsBeingOwned(bool* owning) = 0;
+ // TODO(hashimoto): Remove this method. crbug.com/141011
+ virtual bool CallTpmIsBeingOwnedAndBlock(bool* owning) = 0;
// Calls TpmCanAttemptOwnership method.
// This method tells the service that it is OK to attempt ownership.
virtual void TpmCanAttemptOwnership(
const VoidDBusMethodCallback& callback) = 0;
+ // Calls TpmClearStoredPasswordMethod.
+ virtual void TpmClearStoredPassword(
+ const VoidDBusMethodCallback& callback) = 0;
+
// Calls TpmClearStoredPassword method and returns true when the call
// succeeds. This method blocks until the call returns.
- virtual bool TpmClearStoredPassword() = 0;
+ // TODO(hashimoto): Remove this method. crbug.com/141010
+ virtual bool CallTpmClearStoredPasswordAndBlock() = 0;
// Calls Pkcs11IsTpmTokenReady method.
virtual void Pkcs11IsTpmTokenReady(
diff --git a/chromeos/dbus/mock_cryptohome_client.h b/chromeos/dbus/mock_cryptohome_client.h
index 26a6bd2..dfb4435 100644
--- a/chromeos/dbus/mock_cryptohome_client.h
+++ b/chromeos/dbus/mock_cryptohome_client.h
@@ -48,11 +48,15 @@ class MockCryptohomeClient : public CryptohomeClient {
MOCK_METHOD1(TpmIsEnabled, void(const BoolDBusMethodCallback& callback));
MOCK_METHOD1(CallTpmIsEnabledAndBlock, bool(bool* enabled));
MOCK_METHOD1(TpmGetPassword, void(const StringDBusMethodCallback& callback));
- MOCK_METHOD1(TpmIsOwned, bool(bool* owned));
- MOCK_METHOD1(TpmIsBeingOwned, bool(bool* owning));
+ MOCK_METHOD1(TpmIsOwned, void(const BoolDBusMethodCallback& callback));
+ MOCK_METHOD1(CallTpmIsOwnedAndBlock, bool(bool* owned));
+ MOCK_METHOD1(TpmIsBeingOwned, void(const BoolDBusMethodCallback& callback));
+ MOCK_METHOD1(CallTpmIsBeingOwnedAndBlock, bool(bool* owning));
MOCK_METHOD1(TpmCanAttemptOwnership,
void(const VoidDBusMethodCallback& callback));
- MOCK_METHOD0(TpmClearStoredPassword, bool());
+ MOCK_METHOD1(TpmClearStoredPassword,
+ void(const VoidDBusMethodCallback& callback));
+ MOCK_METHOD0(CallTpmClearStoredPasswordAndBlock, bool());
MOCK_METHOD1(Pkcs11IsTpmTokenReady,
void(const BoolDBusMethodCallback& callback));
MOCK_METHOD1(Pkcs11GetTpmTokenInfo,