| Index: chrome/browser/storage_monitor/storage_monitor_chromeos.cc
|
| ===================================================================
|
| --- chrome/browser/storage_monitor/storage_monitor_chromeos.cc (revision 194743)
|
| +++ chrome/browser/storage_monitor/storage_monitor_chromeos.cc (working copy)
|
| @@ -16,6 +16,7 @@
|
| #include "chrome/browser/storage_monitor/media_storage_util.h"
|
| #include "chrome/browser/storage_monitor/media_transfer_protocol_device_observer_linux.h"
|
| #include "chrome/browser/storage_monitor/removable_device_constants.h"
|
| +#include "chrome/browser/storage_monitor/test_media_transfer_protocol_manager_linux.h"
|
| #include "chrome/common/chrome_switches.h"
|
| #include "content/public/browser/browser_thread.h"
|
| #include "device/media_transfer_protocol/media_transfer_protocol_manager.h"
|
| @@ -117,13 +118,15 @@
|
|
|
| StorageMonitorCros::StorageMonitorCros()
|
| : ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) {
|
| + // TODO(thestig) Do not do this here. Do it in TestingBrowserProcess when
|
| + // BrowserProcess owns StorageMonitor.
|
| + if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) {
|
| + SetMediaTransferProtocolManagerForTest(
|
| + new chrome::TestMediaTransferProtocolManagerLinux());
|
| + }
|
| }
|
|
|
| StorageMonitorCros::~StorageMonitorCros() {
|
| - if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) {
|
| - device::MediaTransferProtocolManager::Shutdown();
|
| - }
|
| -
|
| disks::DiskMountManager* manager = disks::DiskMountManager::GetInstance();
|
| if (manager) {
|
| manager->RemoveObserver(this);
|
| @@ -135,13 +138,14 @@
|
| disks::DiskMountManager::GetInstance()->AddObserver(this);
|
| CheckExistingMountPoints();
|
|
|
| - if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) {
|
| + if (!media_transfer_protocol_manager_) {
|
| scoped_refptr<base::MessageLoopProxy> loop_proxy;
|
| - device::MediaTransferProtocolManager::Initialize(loop_proxy);
|
| -
|
| - media_transfer_protocol_device_observer_.reset(
|
| - new chrome::MediaTransferProtocolDeviceObserverLinux(receiver()));
|
| + media_transfer_protocol_manager_.reset(
|
| + device::MediaTransferProtocolManager::Initialize(loop_proxy));
|
| }
|
| +
|
| + media_transfer_protocol_device_observer_.reset(
|
| + new chrome::MediaTransferProtocolDeviceObserverLinux(receiver()));
|
| }
|
|
|
| void StorageMonitorCros::CheckExistingMountPoints() {
|
| @@ -214,13 +218,17 @@
|
| const std::string& device_path) {
|
| }
|
|
|
| +void StorageMonitorCros::SetMediaTransferProtocolManagerForTest(
|
| + device::MediaTransferProtocolManager* test_manager) {
|
| + DCHECK(!media_transfer_protocol_manager_);
|
| + media_transfer_protocol_manager_.reset(test_manager);
|
| +}
|
| +
|
| +
|
| bool StorageMonitorCros::GetStorageInfoForPath(
|
| const base::FilePath& path,
|
| StorageInfo* device_info) const {
|
| - // TODO(thestig) |media_transfer_protocol_device_observer_| should always be
|
| - // valid.
|
| - if (media_transfer_protocol_device_observer_ &&
|
| - media_transfer_protocol_device_observer_->GetStorageInfoForPath(
|
| + if (media_transfer_protocol_device_observer_->GetStorageInfoForPath(
|
| path, device_info)) {
|
| return true;
|
| }
|
| @@ -279,6 +287,11 @@
|
| base::Bind(NotifyUnmountResult, callback));
|
| }
|
|
|
| +device::MediaTransferProtocolManager*
|
| +StorageMonitorCros::media_transfer_protocol_manager() {
|
| + return media_transfer_protocol_manager_.get();
|
| +}
|
| +
|
| void StorageMonitorCros::AddMountedPath(
|
| const disks::DiskMountManager::MountPointInfo& mount_info, bool has_dcim) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
|
|