Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // chrome::MediaStorageUtil implementation. | 5 // chrome::MediaStorageUtil implementation. |
| 6 | 6 |
| 7 #include "chrome/browser/system_monitor/media_storage_util.h" | 7 #include "chrome/browser/system_monitor/media_storage_util.h" |
| 8 | 8 |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/callback.h" | 11 #include "base/callback.h" |
| 12 #include "base/file_util.h" | 12 #include "base/file_util.h" |
| 13 #include "base/logging.h" | 13 #include "base/logging.h" |
| 14 #include "base/metrics/histogram.h" | 14 #include "base/metrics/histogram.h" |
| 15 #include "base/system_monitor/system_monitor.h" | 15 #include "base/system_monitor/system_monitor.h" |
| 16 #include "base/utf_string_conversions.h" | 16 #include "base/utf_string_conversions.h" |
| 17 #include "chrome/browser/system_monitor/media_device_notifications_utils.h" | |
| 17 #include "content/public/browser/browser_thread.h" | 18 #include "content/public/browser/browser_thread.h" |
| 18 | 19 |
| 19 #if defined(OS_CHROMEOS) | 20 #if defined(OS_CHROMEOS) |
| 20 #include "chrome/browser/system_monitor/removable_device_notifications_chromeos. h" | 21 #include "chrome/browser/system_monitor/removable_device_notifications_chromeos. h" |
| 21 #elif defined(OS_LINUX) | 22 #elif defined(OS_LINUX) |
| 22 #include "chrome/browser/system_monitor/removable_device_notifications_linux.h" | 23 #include "chrome/browser/system_monitor/removable_device_notifications_linux.h" |
| 23 #elif defined(OS_MACOSX) | 24 #elif defined(OS_MACOSX) |
| 24 #include "chrome/browser/system_monitor/removable_device_notifications_mac.h" | 25 #include "chrome/browser/system_monitor/removable_device_notifications_mac.h" |
| 25 #elif defined(OS_WIN) | 26 #elif defined(OS_WIN) |
| 26 #include "chrome/browser/system_monitor/removable_device_notifications_window_wi n.h" | 27 #include "chrome/browser/system_monitor/removable_device_notifications_window_wi n.h" |
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 247 | 248 |
| 248 #if defined(OS_LINUX) | 249 #if defined(OS_LINUX) |
| 249 if (!found_device) { | 250 if (!found_device) { |
| 250 MediaTransferProtocolDeviceObserverLinux* mtp_manager = | 251 MediaTransferProtocolDeviceObserverLinux* mtp_manager = |
| 251 MediaTransferProtocolDeviceObserverLinux::GetInstance(); | 252 MediaTransferProtocolDeviceObserverLinux::GetInstance(); |
| 252 found_device = mtp_manager->GetStorageInfoForPath(path, &device_info); | 253 found_device = mtp_manager->GetStorageInfoForPath(path, &device_info); |
| 253 } | 254 } |
| 254 #endif | 255 #endif |
| 255 | 256 |
| 256 if (found_device && IsRemovableDevice(device_info.device_id)) { | 257 if (found_device && IsRemovableDevice(device_info.device_id)) { |
| 258 FilePath sub_folder_path; | |
|
Lei Zhang
2012/11/12 23:20:52
put this bit of new code below the |device_id| cod
kmadhusu
2012/11/13 01:03:58
Done.
| |
| 259 if (device_name || relative_path) { | |
| 260 bool success = FilePath(device_info.location) | |
| 261 .AppendRelativePath(path, &sub_folder_path); | |
| 262 DCHECK(success); | |
| 263 } | |
| 264 | |
| 257 if (device_id) | 265 if (device_id) |
| 258 *device_id = device_info.device_id; | 266 *device_id = device_info.device_id; |
| 259 if (device_name) | 267 |
| 268 if (device_name) { | |
| 269 #if defined(OS_CHROMEOS) | |
| 270 *device_name = GetDisplayNameForDevice( | |
| 271 notifier->GetStorageSize(device_info.location), | |
| 272 sub_folder_path.value().empty() ? | |
| 273 device_info.name : | |
| 274 sub_folder_path.BaseName().LossyDisplayName() + | |
| 275 ASCIIToUTF16(" - ") + device_info.name); | |
| 276 #else | |
| 260 *device_name = device_info.name; | 277 *device_name = device_info.name; |
| 261 if (relative_path) { | |
| 262 *relative_path = FilePath(); | |
| 263 FilePath mount_point(device_info.location); | |
| 264 bool success = mount_point.AppendRelativePath(path, relative_path); | |
| 265 #if defined(OS_POSIX) | |
| 266 if (!relative_path->value().empty() && device_name) { | |
| 267 *device_name += ASCIIToUTF16(" (") + | |
| 268 relative_path->BaseName().LossyDisplayName() + ASCIIToUTF16(")"); | |
| 269 } | |
| 270 #endif | 278 #endif |
| 271 DCHECK(success); | |
| 272 } | 279 } |
| 280 | |
| 281 if (relative_path) | |
| 282 *relative_path = sub_folder_path; | |
| 273 return true; | 283 return true; |
| 274 } | 284 } |
| 275 | 285 |
| 276 // On Posix systems, there's one root so any absolute path could be valid. | 286 // On Posix systems, there's one root so any absolute path could be valid. |
| 277 #if !defined(OS_POSIX) | 287 #if !defined(OS_POSIX) |
| 278 if (!found_device) | 288 if (!found_device) |
| 279 return false; | 289 return false; |
| 280 #endif | 290 #endif |
| 281 | 291 |
| 282 if (device_id) | 292 if (device_id) |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 331 | 341 |
| 332 // static | 342 // static |
| 333 void MediaStorageUtil::SetGetDeviceInfoFromPathFunctionForTesting( | 343 void MediaStorageUtil::SetGetDeviceInfoFromPathFunctionForTesting( |
| 334 GetDeviceInfoFromPathFunction function) { | 344 GetDeviceInfoFromPathFunction function) { |
| 335 g_test_get_device_info_from_path_function = function; | 345 g_test_get_device_info_from_path_function = function; |
| 336 } | 346 } |
| 337 | 347 |
| 338 MediaStorageUtil::MediaStorageUtil() {} | 348 MediaStorageUtil::MediaStorageUtil() {} |
| 339 | 349 |
| 340 } // namespace chrome | 350 } // namespace chrome |
| OLD | NEW |