Remove chromeos::CryptohomeLibrary::IsMounted

CryptohomeClient::IsMounted is converted to asynchronous and used instead.
Mock's default action for IsMounted is set in the ctor of MockCryptohomeClient.

BUG=126674
TEST=git try -b linux_chromeos


Review URL: https://chromiumcodereview.appspot.com/10817007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148883 0039d316-1c4b-4281-b951-d872f2087c98
parent 3d257761
...@@ -29,12 +29,6 @@ class CryptohomeLibraryImpl : public CryptohomeLibrary { ...@@ -29,12 +29,6 @@ class CryptohomeLibraryImpl : public CryptohomeLibrary {
virtual ~CryptohomeLibraryImpl() { virtual ~CryptohomeLibraryImpl() {
} }
virtual bool IsMounted() OVERRIDE {
bool result = false;
DBusThreadManager::Get()->GetCryptohomeClient()->IsMounted(&result);
return result;
}
virtual bool TpmIsEnabled() OVERRIDE { virtual bool TpmIsEnabled() OVERRIDE {
bool result = false; bool result = false;
DBusThreadManager::Get()->GetCryptohomeClient()->CallTpmIsEnabledAndBlock( DBusThreadManager::Get()->GetCryptohomeClient()->CallTpmIsEnabledAndBlock(
...@@ -143,10 +137,6 @@ class CryptohomeLibraryStubImpl : public CryptohomeLibrary { ...@@ -143,10 +137,6 @@ class CryptohomeLibraryStubImpl : public CryptohomeLibrary {
: locked_(false) {} : locked_(false) {}
virtual ~CryptohomeLibraryStubImpl() {} virtual ~CryptohomeLibraryStubImpl() {}
virtual bool IsMounted() OVERRIDE {
return true;
}
virtual bool TpmIsEnabled() OVERRIDE { virtual bool TpmIsEnabled() OVERRIDE {
return true; return true;
} }
......
...@@ -16,9 +16,6 @@ class CryptohomeLibrary { ...@@ -16,9 +16,6 @@ class CryptohomeLibrary {
CryptohomeLibrary(); CryptohomeLibrary();
virtual ~CryptohomeLibrary(); virtual ~CryptohomeLibrary();
// Asks cryptohomed if a drive is currently mounted.
virtual bool IsMounted() = 0;
// Wrappers of the functions for working with Tpm. // Wrappers of the functions for working with Tpm.
// Returns whether Tpm is presented and enabled. // Returns whether Tpm is presented and enabled.
......
...@@ -21,7 +21,6 @@ class MockCryptohomeLibrary : public CryptohomeLibrary { ...@@ -21,7 +21,6 @@ class MockCryptohomeLibrary : public CryptohomeLibrary {
public: public:
MockCryptohomeLibrary(); MockCryptohomeLibrary();
virtual ~MockCryptohomeLibrary(); virtual ~MockCryptohomeLibrary();
MOCK_METHOD0(IsMounted, bool(void));
MOCK_METHOD0(GetSystemSalt, std::string(void)); MOCK_METHOD0(GetSystemSalt, std::string(void));
MOCK_METHOD0(TpmIsReady, bool(void)); MOCK_METHOD0(TpmIsReady, bool(void));
......
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "chrome/browser/chromeos/cros/cros_in_process_browser_test.h" #include "chrome/browser/chromeos/cros/cros_in_process_browser_test.h"
#include "chrome/browser/chromeos/cros/cros_mock.h" #include "chrome/browser/chromeos/cros/cros_mock.h"
#include "chrome/browser/chromeos/cros/mock_cryptohome_library.h"
#include "chrome/browser/chromeos/cros/mock_network_library.h" #include "chrome/browser/chromeos/cros/mock_network_library.h"
#include "chrome/browser/chromeos/login/existing_user_controller.h" #include "chrome/browser/chromeos/login/existing_user_controller.h"
#include "chrome/browser/chromeos/login/helper.h" #include "chrome/browser/chromeos/login/helper.h"
...@@ -37,6 +36,7 @@ namespace chromeos { ...@@ -37,6 +36,7 @@ namespace chromeos {
using ::testing::AnyNumber; using ::testing::AnyNumber;
using ::testing::AnyOf; using ::testing::AnyOf;
using ::testing::Invoke;
using ::testing::InvokeWithoutArgs; using ::testing::InvokeWithoutArgs;
using ::testing::Return; using ::testing::Return;
using ::testing::ReturnNull; using ::testing::ReturnNull;
...@@ -97,8 +97,7 @@ class MockLoginDisplayHost : public LoginDisplayHost { ...@@ -97,8 +97,7 @@ class MockLoginDisplayHost : public LoginDisplayHost {
class ExistingUserControllerTest : public CrosInProcessBrowserTest { class ExistingUserControllerTest : public CrosInProcessBrowserTest {
protected: protected:
ExistingUserControllerTest() ExistingUserControllerTest()
: mock_cryptohome_library_(NULL), : mock_network_library_(NULL),
mock_network_library_(NULL),
mock_login_display_(NULL), mock_login_display_(NULL),
mock_login_display_host_(NULL), mock_login_display_host_(NULL),
testing_profile_(NULL) { testing_profile_(NULL) {
...@@ -126,12 +125,6 @@ class ExistingUserControllerTest : public CrosInProcessBrowserTest { ...@@ -126,12 +125,6 @@ class ExistingUserControllerTest : public CrosInProcessBrowserTest {
EXPECT_CALL(*mock_session_manager_client, RetrieveDevicePolicy(_)) EXPECT_CALL(*mock_session_manager_client, RetrieveDevicePolicy(_))
.Times(AnyNumber()); .Times(AnyNumber());
cros_mock_->InitMockCryptohomeLibrary();
mock_cryptohome_library_ = cros_mock_->mock_cryptohome_library();
EXPECT_CALL(*mock_cryptohome_library_, IsMounted())
.Times(AnyNumber())
.WillRepeatedly(Return(true));
mock_login_utils_ = new MockLoginUtils(); mock_login_utils_ = new MockLoginUtils();
LoginUtils::Set(mock_login_utils_); LoginUtils::Set(mock_login_utils_);
EXPECT_CALL(*mock_login_utils_, PrewarmAuthentication()) EXPECT_CALL(*mock_login_utils_, PrewarmAuthentication())
...@@ -208,7 +201,6 @@ class ExistingUserControllerTest : public CrosInProcessBrowserTest { ...@@ -208,7 +201,6 @@ class ExistingUserControllerTest : public CrosInProcessBrowserTest {
scoped_ptr<ExistingUserController> existing_user_controller_; scoped_ptr<ExistingUserController> existing_user_controller_;
// These mocks are owned by CrosLibrary class. // These mocks are owned by CrosLibrary class.
MockCryptohomeLibrary* mock_cryptohome_library_;
MockNetworkLibrary* mock_network_library_; MockNetworkLibrary* mock_network_library_;
MockLoginDisplay* mock_login_display_; MockLoginDisplay* mock_login_display_;
......
...@@ -35,8 +35,6 @@ class LoginTestBase : public CrosInProcessBrowserTest { ...@@ -35,8 +35,6 @@ class LoginTestBase : public CrosInProcessBrowserTest {
cros_mock_->InitMockCryptohomeLibrary(); cros_mock_->InitMockCryptohomeLibrary();
mock_cryptohome_library_ = cros_mock_->mock_cryptohome_library(); mock_cryptohome_library_ = cros_mock_->mock_cryptohome_library();
mock_network_library_ = cros_mock_->mock_network_library(); mock_network_library_ = cros_mock_->mock_network_library();
EXPECT_CALL(*mock_cryptohome_library_, IsMounted())
.WillRepeatedly(Return(true));
EXPECT_CALL(*mock_cryptohome_library_, GetSystemSalt()) EXPECT_CALL(*mock_cryptohome_library_, GetSystemSalt())
.WillRepeatedly(Return(std::string("stub_system_salt"))); .WillRepeatedly(Return(std::string("stub_system_salt")));
EXPECT_CALL(*mock_network_library_, AddUserActionObserver(_)) EXPECT_CALL(*mock_network_library_, AddUserActionObserver(_))
......
...@@ -167,8 +167,6 @@ class LoginUtilsTest : public testing::Test, ...@@ -167,8 +167,6 @@ class LoginUtilsTest : public testing::Test,
.WillRepeatedly(Return(true)); .WillRepeatedly(Return(true));
EXPECT_CALL(*cryptohome_, TpmIsEnabled()) EXPECT_CALL(*cryptohome_, TpmIsEnabled())
.WillRepeatedly(Return(false)); .WillRepeatedly(Return(false));
EXPECT_CALL(*cryptohome_, IsMounted())
.WillRepeatedly(Return(true));
EXPECT_CALL(*cryptohome_, InstallAttributesSet(kAttributeOwned, kTrue)) EXPECT_CALL(*cryptohome_, InstallAttributesSet(kAttributeOwned, kTrue))
.WillRepeatedly(Return(true)); .WillRepeatedly(Return(true));
EXPECT_CALL(*cryptohome_, InstallAttributesSet(kAttributeOwner, EXPECT_CALL(*cryptohome_, InstallAttributesSet(kAttributeOwner,
......
...@@ -58,8 +58,8 @@ ...@@ -58,8 +58,8 @@
#endif #endif
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
#include "chrome/browser/chromeos/cros/cros_library.h" #include "chromeos/dbus/cryptohome_client.h"
#include "chrome/browser/chromeos/cros/cryptohome_library.h" #include "chromeos/dbus/dbus_thread_manager.h"
#include "chrome/browser/chromeos/login/user_manager.h" #include "chrome/browser/chromeos/login/user_manager.h"
#endif #endif
...@@ -163,6 +163,18 @@ void OnOpenWindowForNewProfile(Profile* profile, ...@@ -163,6 +163,18 @@ void OnOpenWindowForNewProfile(Profile* profile,
} }
} }
#if defined(OS_CHROMEOS)
void CheckCryptohomeIsMounted(chromeos::DBusMethodCallStatus call_status,
bool is_mounted) {
if (call_status != chromeos::DBUS_METHOD_CALL_SUCCESS) {
LOG(ERROR) << "IsMounted call failed.";
return;
}
if (!is_mounted)
LOG(ERROR) << "Cryptohome is not mounted.";
}
#endif
} // namespace } // namespace
#if defined(ENABLE_SESSION_SERVICE) #if defined(ENABLE_SESSION_SERVICE)
...@@ -526,8 +538,8 @@ void ProfileManager::Observe( ...@@ -526,8 +538,8 @@ void ProfileManager::Observe(
// TODO(davemoore) Once we have better api this check should ensure that // TODO(davemoore) Once we have better api this check should ensure that
// our profile directory is the one that's mounted, and that it's mounted // our profile directory is the one that's mounted, and that it's mounted
// as the current user. // as the current user.
CHECK(chromeos::CrosLibrary::Get()->GetCryptohomeLibrary()->IsMounted()) chromeos::DBusThreadManager::Get()->GetCryptohomeClient()->IsMounted(
<< "The cryptohome was not mounted at login."; base::Bind(&CheckCryptohomeIsMounted));
// Confirm that we hadn't loaded the new profile previously. // Confirm that we hadn't loaded the new profile previously.
FilePath default_profile_dir = FilePath default_profile_dir =
......
...@@ -31,8 +31,7 @@ void CryptohomeWebUIHandler::OnPageLoaded(const base::ListValue* args) { ...@@ -31,8 +31,7 @@ void CryptohomeWebUIHandler::OnPageLoaded(const base::ListValue* args) {
CryptohomeLibrary* cryptohome_library = CryptohomeLibrary* cryptohome_library =
CrosLibrary::Get()->GetCryptohomeLibrary(); CrosLibrary::Get()->GetCryptohomeLibrary();
base::FundamentalValue is_mounted(cryptohome_library->IsMounted()); cryptohome_client->IsMounted(GetCryptohomeBoolCallback("is-mounted"));
SetCryptohomeProperty("is-mounted", is_mounted);
cryptohome_client->TpmIsReady(GetCryptohomeBoolCallback("tpm-is-ready")); cryptohome_client->TpmIsReady(GetCryptohomeBoolCallback("tpm-is-ready"));
base::FundamentalValue tpm_is_enabled(cryptohome_library->TpmIsEnabled()); base::FundamentalValue tpm_is_enabled(cryptohome_library->TpmIsEnabled());
SetCryptohomeProperty("tpm-is-enabled", tpm_is_enabled); SetCryptohomeProperty("tpm-is-enabled", tpm_is_enabled);
......
...@@ -53,9 +53,9 @@ class CryptohomeClientImpl : public CryptohomeClient { ...@@ -53,9 +53,9 @@ class CryptohomeClientImpl : public CryptohomeClient {
} }
// CryptohomeClient override. // CryptohomeClient override.
virtual bool IsMounted(bool* is_mounted) OVERRIDE { virtual void IsMounted(const BoolMethodCallback& callback) {
INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeIsMounted); INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeIsMounted);
return CallBoolMethodAndBlock(&method_call, is_mounted); CallBoolMethod(&method_call, callback);
} }
// CryptohomeClient override. // CryptohomeClient override.
...@@ -153,21 +153,13 @@ class CryptohomeClientImpl : public CryptohomeClient { ...@@ -153,21 +153,13 @@ class CryptohomeClientImpl : public CryptohomeClient {
// CryptohomeClient override. // CryptohomeClient override.
virtual void TpmIsReady(const BoolMethodCallback& callback) OVERRIDE { virtual void TpmIsReady(const BoolMethodCallback& callback) OVERRIDE {
INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsReady); INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsReady);
proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, CallBoolMethod(&method_call, callback);
base::Bind(
&CryptohomeClientImpl::OnBoolMethod,
weak_ptr_factory_.GetWeakPtr(),
callback));
} }
// CryptohomeClient override. // CryptohomeClient override.
virtual void TpmIsEnabled(const BoolMethodCallback& callback) OVERRIDE { virtual void TpmIsEnabled(const BoolMethodCallback& callback) OVERRIDE {
INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsEnabled); INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsEnabled);
proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, CallBoolMethod(&method_call, callback);
base::Bind(
&CryptohomeClientImpl::OnBoolMethod,
weak_ptr_factory_.GetWeakPtr(),
callback));
} }
// CryptohomeClient override. // CryptohomeClient override.
...@@ -225,12 +217,7 @@ class CryptohomeClientImpl : public CryptohomeClient { ...@@ -225,12 +217,7 @@ class CryptohomeClientImpl : public CryptohomeClient {
OVERRIDE { OVERRIDE {
INITIALIZE_METHOD_CALL(method_call, INITIALIZE_METHOD_CALL(method_call,
cryptohome::kCryptohomePkcs11IsTpmTokenReady); cryptohome::kCryptohomePkcs11IsTpmTokenReady);
proxy_->CallMethod( CallBoolMethod(&method_call, callback);
&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
base::Bind(
&CryptohomeClientImpl::OnBoolMethod,
weak_ptr_factory_.GetWeakPtr(),
callback));
} }
// CryptohomeClient override. // CryptohomeClient override.
...@@ -335,6 +322,16 @@ class CryptohomeClientImpl : public CryptohomeClient { ...@@ -335,6 +322,16 @@ class CryptohomeClientImpl : public CryptohomeClient {
return reader.PopBool(result); return reader.PopBool(result);
} }
// Calls a method with a bool value result.
void CallBoolMethod(dbus::MethodCall* method_call,
const BoolMethodCallback& callback) {
proxy_->CallMethod(method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
base::Bind(
&CryptohomeClientImpl::OnBoolMethod,
weak_ptr_factory_.GetWeakPtr(),
callback));
}
// Handles responses for methods with a bool value result. // Handles responses for methods with a bool value result.
void OnBoolMethod(const BoolMethodCallback& callback, void OnBoolMethod(const BoolMethodCallback& callback,
dbus::Response* response) { dbus::Response* response) {
...@@ -440,9 +437,9 @@ class CryptohomeClientStubImpl : public CryptohomeClient { ...@@ -440,9 +437,9 @@ class CryptohomeClientStubImpl : public CryptohomeClient {
} }
// CryptohomeClient override. // CryptohomeClient override.
virtual bool IsMounted(bool* is_mounted) OVERRIDE { virtual void IsMounted(const BoolMethodCallback& callback) OVERRIDE {
*is_mounted = true; MessageLoop::current()->PostTask(
return true; FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, true));
} }
// CryptohomeClient override. // CryptohomeClient override.
......
...@@ -60,8 +60,7 @@ class CHROMEOS_EXPORT CryptohomeClient { ...@@ -60,8 +60,7 @@ class CHROMEOS_EXPORT CryptohomeClient {
virtual void ResetAsyncCallStatusHandler() = 0; virtual void ResetAsyncCallStatusHandler() = 0;
// Calls IsMounted method and returns true when the call succeeds. // Calls IsMounted method and returns true when the call succeeds.
// This method blocks until the call returns. virtual void IsMounted(const BoolMethodCallback& callback) = 0;
virtual bool IsMounted(bool* is_mounted) = 0;
// Calls Unmount method and returns true when the call succeeds. // Calls Unmount method and returns true when the call succeeds.
// This method blocks until the call returns. // This method blocks until the call returns.
......
...@@ -4,9 +4,28 @@ ...@@ -4,9 +4,28 @@
#include "chromeos/dbus/mock_cryptohome_client.h" #include "chromeos/dbus/mock_cryptohome_client.h"
#include "base/bind.h"
#include "base/message_loop.h"
using ::testing::Invoke;
using ::testing::_;
namespace chromeos { namespace chromeos {
MockCryptohomeClient::MockCryptohomeClient() {} namespace {
// Runs callback with true.
void RunCallbackWithTrue(const CryptohomeClient::BoolMethodCallback& callback) {
MessageLoop::current()->PostTask(
FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, true));
}
} // namespace
MockCryptohomeClient::MockCryptohomeClient() {
ON_CALL(*this, IsMounted(_))
.WillByDefault(Invoke(&RunCallbackWithTrue));
}
MockCryptohomeClient::~MockCryptohomeClient() {} MockCryptohomeClient::~MockCryptohomeClient() {}
......
...@@ -20,7 +20,7 @@ class MockCryptohomeClient : public CryptohomeClient { ...@@ -20,7 +20,7 @@ class MockCryptohomeClient : public CryptohomeClient {
MOCK_METHOD1(SetAsyncCallStatusHandler, MOCK_METHOD1(SetAsyncCallStatusHandler,
void(const AsyncCallStatusHandler& handler)); void(const AsyncCallStatusHandler& handler));
MOCK_METHOD0(ResetAsyncCallStatusHandler, void()); MOCK_METHOD0(ResetAsyncCallStatusHandler, void());
MOCK_METHOD1(IsMounted, bool(bool* is_mounted)); MOCK_METHOD1(IsMounted, void(const BoolMethodCallback& callback));
MOCK_METHOD1(Unmount, bool(bool* success)); MOCK_METHOD1(Unmount, bool(bool* success));
MOCK_METHOD3(AsyncCheckKey, MOCK_METHOD3(AsyncCheckKey,
void(const std::string& username, void(const std::string& username,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment