summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/disks
diff options
context:
space:
mode:
authorhashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-17 07:49:55 +0000
committerhashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-17 07:49:55 +0000
commitb307bceb5f8f104022a5f306a35c2d2bd161641f (patch)
tree9e109f0235bf0565fe022ed1f3dbf4011bc4bd07 /chrome/browser/chromeos/disks
parent8004a4cb0bf6959d5df10c0e4aac90e00e7d4dd7 (diff)
downloadchromium_src-b307bceb5f8f104022a5f306a35c2d2bd161641f.zip
chromium_src-b307bceb5f8f104022a5f306a35c2d2bd161641f.tar.gz
chromium_src-b307bceb5f8f104022a5f306a35c2d2bd161641f.tar.bz2
Switch from MountLibrary to DiskMountManager and CrosDisksLibrary
This patch is 2nd part of 3 splitted patches made from http://codereview.chromium.org/8386031 BUG=chromium-os:16556 TEST=Confirm that removable disk is correctly mounted Review URL: http://codereview.chromium.org/8497007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110469 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos/disks')
-rw-r--r--chrome/browser/chromeos/disks/disk_mount_manager.cc32
-rw-r--r--chrome/browser/chromeos/disks/disk_mount_manager.h6
2 files changed, 30 insertions, 8 deletions
diff --git a/chrome/browser/chromeos/disks/disk_mount_manager.cc b/chrome/browser/chromeos/disks/disk_mount_manager.cc
index 0e2a26b..5e10c58 100644
--- a/chrome/browser/chromeos/disks/disk_mount_manager.cc
+++ b/chrome/browser/chromeos/disks/disk_mount_manager.cc
@@ -328,7 +328,8 @@ class DiskMountManagerImpl : public DiskMountManager {
// Check if there is a formatting scheduled.
PathMap::iterator it = formatting_pending_.find(disk->device_path());
if (it != formatting_pending_.end()) {
- const std::string& file_path = it->second;
+ // Copy the string before it gets erased.
+ const std::string file_path = it->second;
formatting_pending_.erase(it);
FormatUnmountedDevice(file_path);
}
@@ -632,19 +633,34 @@ MountType DiskMountManager::MountTypeFromString(const std::string& type_str) {
// static
void DiskMountManager::Initialize() {
- VLOG(1) << "DiskMountManager::Initialize";
- DCHECK(!g_disk_mount_manager);
+ if (g_disk_mount_manager) {
+ LOG(WARNING) << "DiskMountManager was already initialized";
+ return;
+ }
g_disk_mount_manager = new DiskMountManagerImpl();
- DCHECK(g_disk_mount_manager);
+ VLOG(1) << "DiskMountManager initialized";
}
// static
-void DiskMountManager::Shutdown() {
- VLOG(1) << "DiskMountManager::Shutdown";
+void DiskMountManager::InitializeForTesting(
+ DiskMountManager* disk_mount_manager) {
if (g_disk_mount_manager) {
- delete g_disk_mount_manager;
- g_disk_mount_manager = NULL;
+ LOG(WARNING) << "DiskMountManager was already initialized";
+ return;
+ }
+ g_disk_mount_manager = disk_mount_manager;
+ VLOG(1) << "DiskMountManager initialized";
+}
+
+// static
+void DiskMountManager::Shutdown() {
+ if (!g_disk_mount_manager) {
+ LOG(WARNING) << "DiskMountManager::Shutdown() called with NULL manager";
+ return;
}
+ delete g_disk_mount_manager;
+ g_disk_mount_manager = NULL;
+ VLOG(1) << "DiskMountManager Shutdown completed";
}
// static
diff --git a/chrome/browser/chromeos/disks/disk_mount_manager.h b/chrome/browser/chromeos/disks/disk_mount_manager.h
index 4dbb3eb..c5c9da9 100644
--- a/chrome/browser/chromeos/disks/disk_mount_manager.h
+++ b/chrome/browser/chromeos/disks/disk_mount_manager.h
@@ -236,6 +236,12 @@ class DiskMountManager {
// Creates the global DiskMountManager instance.
static void Initialize();
+ // Similar to Initialize(), but can inject an alternative
+ // DiskMountManager such as MockDiskMountManager for testing.
+ // The injected object will be owned by the internal pointer and deleted
+ // by Shutdown().
+ static void InitializeForTesting(DiskMountManager* disk_mount_manager);
+
// Destroys the global DiskMountManager instance if it exists.
static void Shutdown();