Index: chrome/browser/chromeos/cros/mount_library.cc |
diff --git a/chrome/browser/chromeos/cros/mount_library.cc b/chrome/browser/chromeos/cros/mount_library.cc |
index 32086caba275bc4cee09aeb69686fcd83d4f654f..7d256c0759a01cbd534d144c3fceb33ce6887ebf 100644 |
--- a/chrome/browser/chromeos/cros/mount_library.cc |
+++ b/chrome/browser/chromeos/cros/mount_library.cc |
@@ -101,43 +101,45 @@ class MountLibcrosProxyImpl : public MountLibcrosProxy { |
const MountPathOptions& options, |
MountCompletedMonitor callback, |
void* object) OVERRIDE { |
- MountSourcePath(source_path, type, options, callback, object); |
+ chromeos::MountSourcePath(source_path, type, options, callback, object); |
} |
virtual void CallUnmountPath(const char* path, |
UnmountRequestCallback callback, |
void* object) OVERRIDE { |
- UnmountMountPoint(path, callback, object); |
+ chromeos::UnmountMountPoint(path, callback, object); |
} |
virtual void CallRequestMountInfo(RequestMountInfoCallback callback, |
void* object) OVERRIDE { |
- RequestMountInfo(callback, object); |
+ chromeos::RequestMountInfo(callback, object); |
} |
virtual void CallFormatDevice(const char* file_path, |
const char* filesystem, |
FormatRequestCallback callback, |
void* object) OVERRIDE { |
- FormatDevice(file_path, filesystem, callback, object); |
+ chromeos::FormatDevice(file_path, filesystem, callback, object); |
} |
virtual void CallGetDiskProperties(const char* device_path, |
GetDiskPropertiesCallback callback, |
void* object) OVERRIDE { |
- GetDiskProperties(device_path, callback, object); |
+ chromeos::GetDiskProperties(device_path, callback, object); |
} |
- virtual MountEventConnection MonitorCrosDisks(MountEventMonitor monitor, |
+ virtual MountEventConnection MonitorCrosDisks( |
+ MountEventMonitor monitor, |
MountCompletedMonitor mount_completed_monitor, |
void* object) OVERRIDE { |
- return MonitorAllMountEvents(monitor, mount_completed_monitor, object); |
+ return chromeos::MonitorAllMountEvents( |
+ monitor, mount_completed_monitor, object); |
} |
- virtual void DisconnectCrosDisksMonitorIfSet(MountEventConnection conn) |
- OVERRIDE { |
+ virtual void DisconnectCrosDisksMonitorIfSet( |
+ MountEventConnection conn) OVERRIDE { |
if (conn) |
- DisconnectMountEventMonitor(conn); |
+ chromeos::DisconnectMountEventMonitor(conn); |
} |
}; |
@@ -163,10 +165,6 @@ class MountLibraryImpl : public MountLibrary { |
public: |
MountLibraryImpl() : libcros_proxy_(new MountLibcrosProxyImpl()), |
mount_status_connection_(NULL) { |
- if (CrosLibrary::Get()->EnsureLoaded()) |
- Init(); |
- else |
- LOG(ERROR) << kLibraryNotLoaded; |
} |
virtual ~MountLibraryImpl() { |
@@ -175,6 +173,13 @@ class MountLibraryImpl : public MountLibrary { |
} |
// MountLibrary overrides. |
+ virtual void Init() OVERRIDE { |
+ DCHECK(CrosLibrary::Get()->libcros_loaded()); |
+ // Getting the monitor status so that the daemon starts up. |
+ mount_status_connection_ = libcros_proxy_->MonitorCrosDisks( |
+ &MonitorMountEventsHandler, &MountCompletedHandler, this); |
+ } |
+ |
virtual void AddObserver(Observer* observer) OVERRIDE { |
observers_.AddObserver(observer); |
} |
@@ -187,40 +192,18 @@ class MountLibraryImpl : public MountLibrary { |
MountType type, |
const MountPathOptions& options) OVERRIDE { |
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- if (!CrosLibrary::Get()->EnsureLoaded()) { |
- OnMountCompleted(MOUNT_ERROR_LIBRARY_NOT_LOADED, |
- MountPointInfo(source_path, |
- NULL, |
- type, |
- MOUNT_CONDITION_NONE)); |
- return; |
- } |
libcros_proxy_->CallMountPath(source_path, type, options, |
&MountCompletedHandler, this); |
} |
virtual void UnmountPath(const char* mount_path) OVERRIDE { |
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- if (!CrosLibrary::Get()->EnsureLoaded()) { |
- OnUnmountPath(mount_path, |
- MOUNT_METHOD_ERROR_LOCAL, |
- kLibraryNotLoaded); |
- return; |
- } |
- |
libcros_proxy_->CallUnmountPath(mount_path, &UnmountMountPointCallback, |
this); |
} |
virtual void FormatUnmountedDevice(const char* file_path) OVERRIDE { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- if (!CrosLibrary::Get()->EnsureLoaded()) { |
- OnFormatDevice(file_path, |
- false, |
- MOUNT_METHOD_ERROR_LOCAL, |
- kLibraryNotLoaded); |
- return; |
- } |
for (MountLibrary::DiskMap::iterator it = disks_.begin(); |
it != disks_.end(); ++it) { |
if (it->second->file_path().compare(file_path) == 0 && |
@@ -274,30 +257,25 @@ class MountLibraryImpl : public MountLibrary { |
const char* error_message = NULL; |
std::vector<const char*> devices_to_unmount; |
- if (!CrosLibrary::Get()->EnsureLoaded()) { |
- success = false; |
- error_message = kLibraryNotLoaded; |
- } else { |
- // Get list of all devices to unmount. |
- int device_path_len = strlen(device_path); |
- for (DiskMap::iterator it = disks_.begin(); it != disks_.end(); ++it) { |
- if (!it->second->mount_path().empty() && |
- strncmp(device_path, it->second->device_path().c_str(), |
- device_path_len) == 0) { |
- devices_to_unmount.push_back(it->second->mount_path().c_str()); |
- } |
+ // Get list of all devices to unmount. |
+ int device_path_len = strlen(device_path); |
+ for (DiskMap::iterator it = disks_.begin(); it != disks_.end(); ++it) { |
+ if (!it->second->mount_path().empty() && |
+ strncmp(device_path, it->second->device_path().c_str(), |
+ device_path_len) == 0) { |
+ devices_to_unmount.push_back(it->second->mount_path().c_str()); |
} |
+ } |
- // We should detect at least original device. |
- if (devices_to_unmount.size() == 0) { |
- if (disks_.find(device_path) == disks_.end()) { |
- success = false; |
- error_message = kDeviceNotFound; |
- } else { |
- // Nothing to unmount. |
- callback(user_data, true); |
- return; |
- } |
+ // We should detect at least original device. |
+ if (devices_to_unmount.size() == 0) { |
+ if (disks_.find(device_path) == disks_.end()) { |
+ success = false; |
+ error_message = kDeviceNotFound; |
+ } else { |
+ // Nothing to unmount. |
+ callback(user_data, true); |
+ return; |
} |
} |
@@ -322,13 +300,6 @@ class MountLibraryImpl : public MountLibrary { |
virtual void RequestMountInfoRefresh() OVERRIDE { |
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- if (!CrosLibrary::Get()->EnsureLoaded()) { |
- OnRequestMountInfo(NULL, |
- 0, |
- MOUNT_METHOD_ERROR_LOCAL, |
- kLibraryNotLoaded); |
- return; |
- } |
libcros_proxy_->CallRequestMountInfo(RequestMountInfoCallback, this); |
} |
@@ -722,12 +693,6 @@ class MountLibraryImpl : public MountLibrary { |
FireDeviceStatusUpdate(type, std::string(device_path)); |
} |
- void Init() { |
- // Getting the monitor status so that the daemon starts up. |
- mount_status_connection_ = libcros_proxy_->MonitorCrosDisks( |
- &MonitorMountEventsHandler, &MountCompletedHandler, this); |
- } |
- |
void FireDiskStatusUpdate(MountLibraryEventType evt, |
const Disk* disk) { |
// Make sure we run on UI thread. |
@@ -813,6 +778,7 @@ class MountLibraryStubImpl : public MountLibrary { |
virtual ~MountLibraryStubImpl() {} |
// MountLibrary overrides. |
+ virtual void Init() OVERRIDE {} |
virtual void AddObserver(Observer* observer) OVERRIDE {} |
virtual void RemoveObserver(Observer* observer) OVERRIDE {} |
virtual const DiskMap& disks() const OVERRIDE { return disks_; } |
@@ -838,15 +804,13 @@ class MountLibraryStubImpl : public MountLibrary { |
// static |
MountLibrary* MountLibrary::GetImpl(bool stub) { |
+ MountLibrary* impl; |
if (stub) |
- return new MountLibraryStubImpl(); |
+ impl = new MountLibraryStubImpl(); |
else |
- return new MountLibraryImpl(); |
+ impl = new MountLibraryImpl(); |
+ impl->Init(); |
+ return impl; |
} |
} // namespace chromeos |
- |
-// Allows InvokeLater without adding refcounting. This class is a Singleton and |
-// won't be deleted until it's last InvokeLater is run. |
-DISABLE_RUNNABLE_METHOD_REFCOUNT(chromeos::MountLibraryImpl); |
- |