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

Unified Diff: chrome/browser/storage_monitor/storage_monitor_linux.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_linux.cc
===================================================================
--- chrome/browser/storage_monitor/storage_monitor_linux.cc (revision 194743)
+++ chrome/browser/storage_monitor/storage_monitor_linux.cc (working copy)
@@ -22,6 +22,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/browser/storage_monitor/udev_util_linux.h"
#include "chrome/common/chrome_switches.h"
#include "device/media_transfer_protocol/media_transfer_protocol_manager.h"
@@ -232,12 +233,17 @@
get_device_info_callback_(base::Bind(&GetDeviceInfo)),
ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+
+ // TODO(thestig) Do not do this here. Do it in TestingBrowserProcess when
+ // BrowserProcess owns StorageMonitor.
+ if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) {
+ SetMediaTransferProtocolManagerForTest(
+ new TestMediaTransferProtocolManagerLinux());
+ }
}
StorageMonitorLinux::~StorageMonitorLinux() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType))
- device::MediaTransferProtocolManager::Shutdown();
}
void StorageMonitorLinux::Init() {
@@ -251,15 +257,15 @@
base::Bind(&StorageMonitorLinux::OnMtabWatcherCreated,
weak_ptr_factory_.GetWeakPtr()));
- if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) {
- scoped_refptr<base::MessageLoopProxy> loop_proxy;
- loop_proxy = content::BrowserThread::GetMessageLoopProxyForThread(
- content::BrowserThread::FILE);
- device::MediaTransferProtocolManager::Initialize(loop_proxy);
-
- media_transfer_protocol_device_observer_.reset(
- new MediaTransferProtocolDeviceObserverLinux(receiver()));
+ if (!media_transfer_protocol_manager_) {
+ scoped_refptr<base::MessageLoopProxy> loop_proxy =
+ BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE);
+ media_transfer_protocol_manager_.reset(
+ device::MediaTransferProtocolManager::Initialize(loop_proxy));
}
+
+ media_transfer_protocol_device_observer_.reset(
+ new MediaTransferProtocolDeviceObserverLinux(receiver()));
}
bool StorageMonitorLinux::GetStorageInfoForPath(
@@ -290,11 +296,22 @@
return true;
}
+device::MediaTransferProtocolManager*
+StorageMonitorLinux::media_transfer_protocol_manager() {
+ return media_transfer_protocol_manager_.get();
+}
+
void StorageMonitorLinux::SetGetDeviceInfoCallbackForTest(
const GetDeviceInfoCallback& get_device_info_callback) {
get_device_info_callback_ = get_device_info_callback;
}
+void StorageMonitorLinux::SetMediaTransferProtocolManagerForTest(
+ device::MediaTransferProtocolManager* test_manager) {
+ DCHECK(!media_transfer_protocol_manager_);
+ media_transfer_protocol_manager_.reset(test_manager);
+}
+
void StorageMonitorLinux::OnMtabWatcherCreated(MtabWatcherLinux* watcher) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
mtab_watcher_.reset(watcher);

Powered by Google App Engine
This is Rietveld 408576698