Get rid of Callback from CrosDisksClient part 2.

Replace base::Closure pairs to VoidDBusMethodCallback.

BUG=739622
TEST=Ran on bots.

Change-Id: I49bcdaefb369ef9cc28ef36eedd4f3ffb55562a5
Reviewed-on: https://chromium-review.googlesource.com/897077
Reviewed-by: Dan Erat <[email protected]>
Commit-Queue: Hidehiko Abe <[email protected]>
Cr-Commit-Position: refs/heads/master@{#535256}
diff --git a/chromeos/disks/disk_mount_manager.cc b/chromeos/disks/disk_mount_manager.cc
index ad80c3be..81d61d7 100644
--- a/chromeos/disks/disk_mount_manager.cc
+++ b/chromeos/disks/disk_mount_manager.cc
@@ -80,12 +80,8 @@
     cros_disks_client_->Mount(
         source_path, source_format, mount_label, access_mode,
         REMOUNT_OPTION_MOUNT_NEW_DEVICE,
-        // When succeeds, OnMountCompleted will be called by
-        // "MountCompleted" signal instead.
-        base::Bind(&base::DoNothing),
-        base::Bind(&DiskMountManagerImpl::OnMountCompleted,
-                   weak_ptr_factory_.GetWeakPtr(),
-                   MountEntry(MOUNT_ERROR_INTERNAL, source_path, type, "")));
+        base::BindOnce(&DiskMountManagerImpl::OnMount,
+                       weak_ptr_factory_.GetWeakPtr(), source_path, type));
 
     // Record the access mode option passed to CrosDisks.
     // This is needed because CrosDisks service methods doesn't return the info
@@ -98,17 +94,10 @@
                    UnmountOptions options,
                    const UnmountPathCallback& callback) override {
     UnmountChildMounts(mount_path);
-    cros_disks_client_->Unmount(mount_path, options,
-                                base::Bind(&DiskMountManagerImpl::OnUnmountPath,
-                                           weak_ptr_factory_.GetWeakPtr(),
-                                           callback,
-                                           true,
-                                           mount_path),
-                                base::Bind(&DiskMountManagerImpl::OnUnmountPath,
-                                           weak_ptr_factory_.GetWeakPtr(),
-                                           callback,
-                                           false,
-                                           mount_path));
+    cros_disks_client_->Unmount(
+        mount_path, options,
+        base::BindOnce(&DiskMountManagerImpl::OnUnmountPath,
+                       weak_ptr_factory_.GetWeakPtr(), callback, mount_path));
   }
 
   void RemountAllRemovableDrives(MountAccessMode mode) override {
@@ -234,18 +223,10 @@
             callback, devices_to_unmount.size());
     for (size_t i = 0; i < devices_to_unmount.size(); ++i) {
       cros_disks_client_->Unmount(
-          devices_to_unmount[i],
-          UNMOUNT_OPTIONS_NONE,
-          base::Bind(&DiskMountManagerImpl::OnUnmountDeviceRecursively,
-                     weak_ptr_factory_.GetWeakPtr(),
-                     cb_data,
-                     true,
-                     devices_to_unmount[i]),
-          base::Bind(&DiskMountManagerImpl::OnUnmountDeviceRecursively,
-                     weak_ptr_factory_.GetWeakPtr(),
-                     cb_data,
-                     false,
-                     devices_to_unmount[i]));
+          devices_to_unmount[i], UNMOUNT_OPTIONS_NONE,
+          base::BindOnce(&DiskMountManagerImpl::OnUnmountDeviceRecursively,
+                         weak_ptr_factory_.GetWeakPtr(), cb_data,
+                         devices_to_unmount[i]));
     }
   }
 
@@ -341,6 +322,17 @@
     size_t num_pending_callbacks;
   };
 
+  // Called on D-Bus CrosDisksClient::Mount() is done.
+  void OnMount(const std::string& source_path, MountType type, bool result) {
+    // When succeeds, OnMountCompleted will be called by "MountCompleted",
+    // signal instead. Do nothing now.
+    if (result)
+      return;
+
+    OnMountCompleted(
+        MountEntry(MOUNT_ERROR_INTERNAL, source_path, type, std::string()));
+  }
+
   void RemountRemovableDrive(const Disk& disk,
                              MountAccessMode access_mode) {
     const std::string& mount_path = disk.mount_path();
@@ -365,13 +357,9 @@
     cros_disks_client_->Mount(
         mount_point->second.source_path, std::string(), std::string(),
         access_mode, REMOUNT_OPTION_REMOUNT_EXISTING_DEVICE,
-        // When succeeds, OnMountCompleted will be called by
-        // "MountCompleted" signal instead.
-        base::Bind(&base::DoNothing),
-        base::Bind(&DiskMountManagerImpl::OnMountCompleted,
-                   weak_ptr_factory_.GetWeakPtr(),
-                   MountEntry(MOUNT_ERROR_INTERNAL, source_path,
-                              mount_point->second.mount_type, "")));
+        base::BindOnce(&DiskMountManagerImpl::OnMount,
+                       weak_ptr_factory_.GetWeakPtr(), source_path,
+                       mount_point->second.mount_type));
   }
 
   // Unmounts all mount points whose source path is transitively parented by
@@ -396,13 +384,12 @@
   }
 
   // Callback for UnmountDeviceRecursively.
-  void OnUnmountDeviceRecursively(
-      UnmountDeviceRecursivelyCallbackData* cb_data,
-      bool success,
-      const std::string& mount_path) {
+  void OnUnmountDeviceRecursively(UnmountDeviceRecursivelyCallbackData* cb_data,
+                                  const std::string& mount_path,
+                                  bool success) {
     if (success) {
       // Do standard processing for Unmount event.
-      OnUnmountPath(UnmountPathCallback(), true, mount_path);
+      OnUnmountPath(UnmountPathCallback(), mount_path, true /* success */);
       VLOG(1) << mount_path <<  " unmounted.";
     }
     // This is safe as long as all callbacks are called on the same thread as
@@ -474,8 +461,8 @@
 
   // Callback for UnmountPath.
   void OnUnmountPath(const UnmountPathCallback& callback,
-                     bool success,
-                     const std::string& mount_path) {
+                     const std::string& mount_path,
+                     bool success) {
     MountPointMap::iterator mount_points_it = mount_points_.find(mount_path);
     if (mount_points_it == mount_points_.end()) {
       // The path was unmounted, but not as a result of this unmount request,
@@ -528,15 +515,17 @@
 
     cros_disks_client_->Format(
         device_path, kDefaultFormatVFAT,
-        base::Bind(&DiskMountManagerImpl::OnFormatStarted,
-                   weak_ptr_factory_.GetWeakPtr(), device_path),
-        base::Bind(&DiskMountManagerImpl::OnFormatCompleted,
-                   weak_ptr_factory_.GetWeakPtr(), FORMAT_ERROR_UNKNOWN,
-                   device_path));
+        base::BindOnce(&DiskMountManagerImpl::OnFormatStarted,
+                       weak_ptr_factory_.GetWeakPtr(), device_path));
   }
 
   // Callback for Format.
-  void OnFormatStarted(const std::string& device_path) {
+  void OnFormatStarted(const std::string& device_path, bool success) {
+    if (!success) {
+      OnFormatCompleted(FORMAT_ERROR_UNKNOWN, device_path);
+      return;
+    }
+
     NotifyFormatStatusUpdate(FORMAT_STARTED, FORMAT_ERROR_NONE, device_path);
   }
 
@@ -584,15 +573,17 @@
     pending_rename_changes_[device_path] = volume_name;
     cros_disks_client_->Rename(
         device_path, volume_name,
-        base::Bind(&DiskMountManagerImpl::OnRenameStarted,
-                   weak_ptr_factory_.GetWeakPtr(), device_path),
-        base::Bind(&DiskMountManagerImpl::OnRenameCompleted,
-                   weak_ptr_factory_.GetWeakPtr(), RENAME_ERROR_UNKNOWN,
-                   device_path));
+        base::BindOnce(&DiskMountManagerImpl::OnRenameStarted,
+                       weak_ptr_factory_.GetWeakPtr(), device_path));
   }
 
   // Callback for Rename.
-  void OnRenameStarted(const std::string& device_path) {
+  void OnRenameStarted(const std::string& device_path, bool success) {
+    if (!success) {
+      OnRenameCompleted(RENAME_ERROR_UNKNOWN, device_path);
+      return;
+    }
+
     NotifyRenameStatusUpdate(RENAME_STARTED, RENAME_ERROR_NONE, device_path);
   }