Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(165)

Unified Diff: chrome/browser/storage_monitor/storage_monitor_chromeos.cc

Issue 14016002: Storage Monitor: Make StorageMonitorLinux own the MediaTransferProtocolManager. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix browser_tests Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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));

Powered by Google App Engine
This is Rietveld 408576698