| Index: chromeos/cryptohome/homedir_methods.cc
|
| diff --git a/chromeos/cryptohome/homedir_methods.cc b/chromeos/cryptohome/homedir_methods.cc
|
| index bd276eceeb5206066aed18322303f6299baa117d..efa0cec32334f8cf1bb56daa134d154011c9b716 100644
|
| --- a/chromeos/cryptohome/homedir_methods.cc
|
| +++ b/chromeos/cryptohome/homedir_methods.cc
|
| @@ -286,6 +286,14 @@ class HomedirMethodsImpl : public HomedirMethods {
|
| weak_ptr_factory_.GetWeakPtr(), callback));
|
| }
|
|
|
| + void GetAccountDiskUsage(
|
| + const Identification& id,
|
| + const GetAccountDiskUsageCallback& callback) override {
|
| + DBusThreadManager::Get()->GetCryptohomeClient()->GetAccountDiskUsage(
|
| + id, base::Bind(&HomedirMethodsImpl::OnGetAccountDiskUsageCallback,
|
| + weak_ptr_factory_.GetWeakPtr(), callback));
|
| + }
|
| +
|
| private:
|
| void OnGetKeyDataExCallback(const GetKeyDataCallback& callback,
|
| chromeos::DBusMethodCallStatus call_status,
|
| @@ -406,6 +414,30 @@ class HomedirMethodsImpl : public HomedirMethods {
|
| callback.Run(true, MOUNT_ERROR_NONE, mount_hash);
|
| }
|
|
|
| + void OnGetAccountDiskUsageCallback(
|
| + const GetAccountDiskUsageCallback& callback,
|
| + chromeos::DBusMethodCallStatus call_status,
|
| + bool result,
|
| + const BaseReply& reply) {
|
| + if (call_status != chromeos::DBUS_METHOD_CALL_SUCCESS) {
|
| + callback.Run(false, -1);
|
| + return;
|
| + }
|
| + if (reply.has_error()) {
|
| + if (reply.error() != CRYPTOHOME_ERROR_NOT_SET) {
|
| + callback.Run(false, -1);
|
| + return;
|
| + }
|
| + }
|
| + if (!reply.HasExtension(GetAccountDiskUsageReply::reply)) {
|
| + callback.Run(false, -1);
|
| + return;
|
| + }
|
| +
|
| + int64_t size = reply.GetExtension(GetAccountDiskUsageReply::reply).size();
|
| + callback.Run(true, size);
|
| + }
|
| +
|
| void OnBaseReplyCallback(const Callback& callback,
|
| chromeos::DBusMethodCallStatus call_status,
|
| bool result,
|
|
|