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

Side by Side Diff: chrome/browser/storage_monitor/storage_monitor_linux.cc

Issue 12544005: Consolidate storage_monitor/MediaDeviceNotificationsUtils into MediaStorageUtil. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: another chromeos fix Created 7 years, 9 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 unified diff | Download patch
OLDNEW
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 // StorageMonitorLinux implementation. 5 // StorageMonitorLinux implementation.
6 6
7 #include "chrome/browser/storage_monitor/storage_monitor_linux.h" 7 #include "chrome/browser/storage_monitor/storage_monitor_linux.h"
8 8
9 #include <mntent.h> 9 #include <mntent.h>
10 #include <stdio.h> 10 #include <stdio.h>
11 11
12 #include <list> 12 #include <list>
13 13
14 #include "base/basictypes.h" 14 #include "base/basictypes.h"
15 #include "base/bind.h" 15 #include "base/bind.h"
16 #include "base/files/file_path.h" 16 #include "base/files/file_path.h"
17 #include "base/metrics/histogram.h" 17 #include "base/metrics/histogram.h"
18 #include "base/stl_util.h" 18 #include "base/stl_util.h"
19 #include "base/string_util.h" 19 #include "base/string_util.h"
20 #include "base/strings/string_number_conversions.h" 20 #include "base/strings/string_number_conversions.h"
21 #include "base/utf_string_conversions.h" 21 #include "base/utf_string_conversions.h"
22 #include "chrome/browser/storage_monitor/media_device_notifications_utils.h"
23 #include "chrome/browser/storage_monitor/media_storage_util.h" 22 #include "chrome/browser/storage_monitor/media_storage_util.h"
24 #include "chrome/browser/storage_monitor/removable_device_constants.h" 23 #include "chrome/browser/storage_monitor/removable_device_constants.h"
25 #include "chrome/browser/storage_monitor/udev_util_linux.h" 24 #include "chrome/browser/storage_monitor/udev_util_linux.h"
26 25
27 namespace chrome { 26 namespace chrome {
28 27
29 using content::BrowserThread; 28 using content::BrowserThread;
30 29
31 namespace { 30 namespace {
32 31
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 std::string device_label = GetUdevDevicePropertyValue(device, kLabel); 138 std::string device_label = GetUdevDevicePropertyValue(device, kLabel);
140 if (!device_label.empty() && IsStringUTF8(device_label)) 139 if (!device_label.empty() && IsStringUTF8(device_label))
141 return UTF8ToUTF16(device_label); 140 return UTF8ToUTF16(device_label);
142 141
143 device_label = GetUdevDevicePropertyValue(device, kFsUUID); 142 device_label = GetUdevDevicePropertyValue(device, kFsUUID);
144 // Keep track of device uuid, to see how often we receive empty uuid values. 143 // Keep track of device uuid, to see how often we receive empty uuid values.
145 UMA_HISTOGRAM_BOOLEAN( 144 UMA_HISTOGRAM_BOOLEAN(
146 "RemovableDeviceNotificationsLinux.device_file_system_uuid_available", 145 "RemovableDeviceNotificationsLinux.device_file_system_uuid_available",
147 !device_label.empty()); 146 !device_label.empty());
148 147
149 const string16 name = GetFullProductName( 148 const string16 name = MediaStorageUtil::GetFullProductName(
150 GetUdevDevicePropertyValue(device, kVendor), 149 GetUdevDevicePropertyValue(device, kVendor),
151 GetUdevDevicePropertyValue(device, kModel)); 150 GetUdevDevicePropertyValue(device, kModel));
152 151
153 const string16 device_label_utf16 = 152 const string16 device_label_utf16 =
154 (!device_label.empty() && IsStringUTF8(device_label)) ? 153 (!device_label.empty() && IsStringUTF8(device_label)) ?
155 UTF8ToUTF16(device_label) : string16(); 154 UTF8ToUTF16(device_label) : string16();
156 if (!name.empty() && !device_label_utf16.empty()) 155 if (!name.empty() && !device_label_utf16.empty())
157 return device_label_utf16 + ASCIIToUTF16(" ") + name; 156 return device_label_utf16 + ASCIIToUTF16(" ") + name;
158 return name.empty() ? device_label_utf16 : name; 157 return name.empty() ? device_label_utf16 : name;
159 } 158 }
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 bool removable; 420 bool removable;
422 uint64 partition_size_in_bytes; 421 uint64 partition_size_in_bytes;
423 get_device_info_func_(mount_device, &unique_id, &name, &removable, 422 get_device_info_func_(mount_device, &unique_id, &name, &removable,
424 &partition_size_in_bytes); 423 &partition_size_in_bytes);
425 424
426 // Keep track of device info details to see how often we get invalid values. 425 // Keep track of device info details to see how often we get invalid values.
427 MediaStorageUtil::RecordDeviceInfoHistogram(true, unique_id, name); 426 MediaStorageUtil::RecordDeviceInfoHistogram(true, unique_id, name);
428 if (unique_id.empty() || name.empty()) 427 if (unique_id.empty() || name.empty())
429 return; 428 return;
430 429
431 bool has_dcim = IsMediaDevice(mount_point.value()); 430 bool has_dcim = MediaStorageUtil::HasDcim(mount_point.value());
432 MediaStorageUtil::Type type; 431 MediaStorageUtil::Type type;
433 if (removable) { 432 if (removable) {
434 if (has_dcim) { 433 if (has_dcim) {
435 type = MediaStorageUtil::REMOVABLE_MASS_STORAGE_WITH_DCIM; 434 type = MediaStorageUtil::REMOVABLE_MASS_STORAGE_WITH_DCIM;
436 } else { 435 } else {
437 type = MediaStorageUtil::REMOVABLE_MASS_STORAGE_NO_DCIM; 436 type = MediaStorageUtil::REMOVABLE_MASS_STORAGE_NO_DCIM;
438 } 437 }
439 } else { 438 } else {
440 type = MediaStorageUtil::FIXED_MASS_STORAGE; 439 type = MediaStorageUtil::FIXED_MASS_STORAGE;
441 } 440 }
442 std::string device_id = MediaStorageUtil::MakeDeviceId(type, unique_id); 441 std::string device_id = MediaStorageUtil::MakeDeviceId(type, unique_id);
443 442
444 MountPointInfo mount_point_info; 443 MountPointInfo mount_point_info;
445 mount_point_info.mount_device = mount_device; 444 mount_point_info.mount_device = mount_device;
446 mount_point_info.device_id = device_id; 445 mount_point_info.device_id = device_id;
447 mount_point_info.device_name = name; 446 mount_point_info.device_name = name;
448 mount_point_info.partition_size_in_bytes = partition_size_in_bytes; 447 mount_point_info.partition_size_in_bytes = partition_size_in_bytes;
449 448
450 mount_info_map_[mount_point] = mount_point_info; 449 mount_info_map_[mount_point] = mount_point_info;
451 mount_priority_map_[mount_device][mount_point] = removable; 450 mount_priority_map_[mount_device][mount_point] = removable;
452 451
453 if (removable) { 452 if (removable) {
454 receiver()->ProcessAttach(StorageInfo( 453 string16 display_name = MediaStorageUtil::GetDisplayNameForDevice(
455 device_id, GetDisplayNameForDevice(partition_size_in_bytes, name), 454 partition_size_in_bytes, name);
456 mount_point.value())); 455
456 StorageInfo storage_info(device_id, display_name, mount_point.value());
Greg Billock 2013/03/06 21:48:27 I'd get rid of this temporary here and elsewhere.
457 receiver()->ProcessAttach(storage_info);
457 } 458 }
458 } 459 }
459 460
460 } // namespace chrome 461 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698