| Index: chrome/browser/storage_monitor/removable_device_notifications_chromeos.cc | 
| diff --git a/chrome/browser/storage_monitor/removable_device_notifications_chromeos.cc b/chrome/browser/storage_monitor/removable_device_notifications_chromeos.cc | 
| deleted file mode 100644 | 
| index 9847fc5b1f43fe62aea382b0f596d91c3d354489..0000000000000000000000000000000000000000 | 
| --- a/chrome/browser/storage_monitor/removable_device_notifications_chromeos.cc | 
| +++ /dev/null | 
| @@ -1,255 +0,0 @@ | 
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| -// Use of this source code is governed by a BSD-style license that can be | 
| -// found in the LICENSE file. | 
| - | 
| -// chromeos::RemovableDeviceNotificationsCros implementation. | 
| - | 
| -#include "chrome/browser/storage_monitor/removable_device_notifications_chromeos.h" | 
| - | 
| -#include "base/files/file_path.h" | 
| -#include "base/logging.h" | 
| -#include "base/stl_util.h" | 
| -#include "base/string_util.h" | 
| -#include "base/strings/string_number_conversions.h" | 
| -#include "base/utf_string_conversions.h" | 
| -#include "chrome/browser/storage_monitor/media_device_notifications_utils.h" | 
| -#include "chrome/browser/storage_monitor/media_storage_util.h" | 
| -#include "chrome/browser/storage_monitor/removable_device_constants.h" | 
| -#include "content/public/browser/browser_thread.h" | 
| - | 
| -namespace chromeos { | 
| - | 
| -namespace { | 
| - | 
| -// Constructs a device name using label or manufacturer (vendor and product) | 
| -// name details. | 
| -string16 GetDeviceName(const disks::DiskMountManager::Disk& disk) { | 
| -  if (disk.device_type() == DEVICE_TYPE_SD) { | 
| -    // Mount path of an SD card will be one of the following: | 
| -    // (1) /media/removable/<volume_label> | 
| -    // (2) /media/removable/SD Card | 
| -    // If the volume label is available, mount path will be (1) else (2). | 
| -    base::FilePath mount_point(disk.mount_path()); | 
| -    const string16 display_name(mount_point.BaseName().LossyDisplayName()); | 
| -    if (!display_name.empty()) | 
| -      return display_name; | 
| -  } | 
| - | 
| -  const std::string& device_label = disk.device_label(); | 
| -  if (!device_label.empty() && IsStringUTF8(device_label)) | 
| -    return UTF8ToUTF16(device_label); | 
| -  return chrome::GetFullProductName(disk.vendor_name(), disk.product_name()); | 
| -} | 
| - | 
| -// Constructs a device id using uuid or manufacturer (vendor and product) id | 
| -// details. | 
| -std::string MakeDeviceUniqueId(const disks::DiskMountManager::Disk& disk) { | 
| -  std::string uuid = disk.fs_uuid(); | 
| -  if (!uuid.empty()) | 
| -    return chrome::kFSUniqueIdPrefix + uuid; | 
| - | 
| -  // If one of the vendor or product information is missing, its value in the | 
| -  // string is empty. | 
| -  // Format: VendorModelSerial:VendorInfo:ModelInfo:SerialInfo | 
| -  // TODO(kmadhusu) Extract serial information for the disks and append it to | 
| -  // the device unique id. | 
| -  const std::string& vendor = disk.vendor_id(); | 
| -  const std::string& product = disk.product_id(); | 
| -  if (vendor.empty() && product.empty()) | 
| -    return std::string(); | 
| -  return chrome::kVendorModelSerialPrefix + vendor + ":" + product + ":"; | 
| -} | 
| - | 
| -// Returns true if the requested device is valid, else false. On success, fills | 
| -// in |unique_id|, |device_label| and |storage_size_in_bytes|. | 
| -bool GetDeviceInfo(const std::string& source_path, | 
| -                   std::string* unique_id, | 
| -                   string16* device_label, | 
| -                   uint64* storage_size_in_bytes) { | 
| -  const disks::DiskMountManager::Disk* disk = | 
| -      disks::DiskMountManager::GetInstance()->FindDiskBySourcePath(source_path); | 
| -  if (!disk || disk->device_type() == DEVICE_TYPE_UNKNOWN) | 
| -    return false; | 
| - | 
| -  if (unique_id) | 
| -    *unique_id = MakeDeviceUniqueId(*disk); | 
| - | 
| -  if (device_label) | 
| -    *device_label = GetDeviceName(*disk); | 
| - | 
| -  if (storage_size_in_bytes) | 
| -    *storage_size_in_bytes = disk->total_size_in_bytes(); | 
| -  return true; | 
| -} | 
| - | 
| -}  // namespace | 
| - | 
| -using content::BrowserThread; | 
| - | 
| -RemovableDeviceNotificationsCros::RemovableDeviceNotificationsCros() { | 
| -  DCHECK(disks::DiskMountManager::GetInstance()); | 
| -  disks::DiskMountManager::GetInstance()->AddObserver(this); | 
| -  CheckExistingMountPointsOnUIThread(); | 
| -} | 
| - | 
| -RemovableDeviceNotificationsCros::~RemovableDeviceNotificationsCros() { | 
| -  disks::DiskMountManager* manager = disks::DiskMountManager::GetInstance(); | 
| -  if (manager) { | 
| -    manager->RemoveObserver(this); | 
| -  } | 
| -} | 
| - | 
| -void RemovableDeviceNotificationsCros::CheckExistingMountPointsOnUIThread() { | 
| -  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 
| -  const disks::DiskMountManager::MountPointMap& mount_point_map = | 
| -      disks::DiskMountManager::GetInstance()->mount_points(); | 
| -  for (disks::DiskMountManager::MountPointMap::const_iterator it = | 
| -           mount_point_map.begin(); it != mount_point_map.end(); ++it) { | 
| -    BrowserThread::PostTask( | 
| -        BrowserThread::FILE, FROM_HERE, | 
| -        base::Bind( | 
| -            &RemovableDeviceNotificationsCros::CheckMountedPathOnFileThread, | 
| -            this, it->second)); | 
| -  } | 
| -} | 
| - | 
| -void RemovableDeviceNotificationsCros::OnDiskEvent( | 
| -    disks::DiskMountManager::DiskEvent event, | 
| -    const disks::DiskMountManager::Disk* disk) { | 
| -} | 
| - | 
| -void RemovableDeviceNotificationsCros::OnDeviceEvent( | 
| -    disks::DiskMountManager::DeviceEvent event, | 
| -    const std::string& device_path) { | 
| -} | 
| - | 
| -void RemovableDeviceNotificationsCros::OnMountEvent( | 
| -    disks::DiskMountManager::MountEvent event, | 
| -    MountError error_code, | 
| -    const disks::DiskMountManager::MountPointInfo& mount_info) { | 
| -  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 
| - | 
| -  // Ignore mount points that are not devices. | 
| -  if (mount_info.mount_type != MOUNT_TYPE_DEVICE) | 
| -    return; | 
| -  // Ignore errors. | 
| -  if (error_code != MOUNT_ERROR_NONE) | 
| -    return; | 
| -  if (mount_info.mount_condition != disks::MOUNT_CONDITION_NONE) | 
| -    return; | 
| - | 
| -  switch (event) { | 
| -    case disks::DiskMountManager::MOUNTING: { | 
| -      if (ContainsKey(mount_map_, mount_info.mount_path)) { | 
| -        NOTREACHED(); | 
| -        return; | 
| -      } | 
| - | 
| -      BrowserThread::PostTask( | 
| -          BrowserThread::FILE, FROM_HERE, | 
| -          base::Bind( | 
| -              &RemovableDeviceNotificationsCros::CheckMountedPathOnFileThread, | 
| -              this, mount_info)); | 
| -      break; | 
| -    } | 
| -    case disks::DiskMountManager::UNMOUNTING: { | 
| -      MountMap::iterator it = mount_map_.find(mount_info.mount_path); | 
| -      if (it == mount_map_.end()) | 
| -        return; | 
| -      receiver()->ProcessDetach(it->second.storage_info.device_id); | 
| -      mount_map_.erase(it); | 
| -      break; | 
| -    } | 
| -  } | 
| -} | 
| - | 
| -void RemovableDeviceNotificationsCros::OnFormatEvent( | 
| -    disks::DiskMountManager::FormatEvent event, | 
| -    FormatError error_code, | 
| -    const std::string& device_path) { | 
| -} | 
| - | 
| -bool RemovableDeviceNotificationsCros::GetStorageInfoForPath( | 
| -    const base::FilePath& path, | 
| -    StorageInfo* device_info) const { | 
| -  if (!path.IsAbsolute()) | 
| -    return false; | 
| - | 
| -  base::FilePath current = path; | 
| -  while (!ContainsKey(mount_map_, current.value()) && | 
| -         current != current.DirName()) { | 
| -    current = current.DirName(); | 
| -  } | 
| - | 
| -  MountMap::const_iterator info_it = mount_map_.find(current.value()); | 
| -  if (info_it == mount_map_.end()) | 
| -    return false; | 
| - | 
| -  if (device_info) | 
| -    *device_info = info_it->second.storage_info; | 
| -  return true; | 
| -} | 
| - | 
| -uint64 RemovableDeviceNotificationsCros::GetStorageSize( | 
| -    const std::string& device_location) const { | 
| -  MountMap::const_iterator info_it = mount_map_.find(device_location); | 
| -  return (info_it != mount_map_.end()) ? | 
| -      info_it->second.storage_size_in_bytes : 0; | 
| -} | 
| - | 
| -void RemovableDeviceNotificationsCros::CheckMountedPathOnFileThread( | 
| -    const disks::DiskMountManager::MountPointInfo& mount_info) { | 
| -  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 
| - | 
| -  bool has_dcim = chrome::IsMediaDevice(mount_info.mount_path); | 
| - | 
| -  BrowserThread::PostTask( | 
| -      BrowserThread::UI, FROM_HERE, | 
| -      base::Bind(&RemovableDeviceNotificationsCros::AddMountedPathOnUIThread, | 
| -                 this, mount_info, has_dcim)); | 
| -} | 
| - | 
| -void RemovableDeviceNotificationsCros::AddMountedPathOnUIThread( | 
| -    const disks::DiskMountManager::MountPointInfo& mount_info, bool has_dcim) { | 
| -  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 
| - | 
| -  if (ContainsKey(mount_map_, mount_info.mount_path)) { | 
| -    // CheckExistingMountPointsOnUIThread() added the mount point information | 
| -    // in the map before the device attached handler is called. Therefore, an | 
| -    // entry for the device already exists in the map. | 
| -    return; | 
| -  } | 
| - | 
| -  // Get the media device uuid and label if exists. | 
| -  std::string unique_id; | 
| -  string16 device_label; | 
| -  uint64 storage_size_in_bytes; | 
| -  if (!GetDeviceInfo(mount_info.source_path, &unique_id, &device_label, | 
| -                     &storage_size_in_bytes)) | 
| -    return; | 
| - | 
| -  // Keep track of device uuid and label, to see how often we receive empty | 
| -  // values. | 
| -  chrome::MediaStorageUtil::RecordDeviceInfoHistogram(true, unique_id, | 
| -                                                      device_label); | 
| -  if (unique_id.empty() || device_label.empty()) | 
| -    return; | 
| - | 
| -  chrome::MediaStorageUtil::Type type = has_dcim ? | 
| -      chrome::MediaStorageUtil::REMOVABLE_MASS_STORAGE_WITH_DCIM : | 
| -      chrome::MediaStorageUtil::REMOVABLE_MASS_STORAGE_NO_DCIM; | 
| - | 
| -  std::string device_id = chrome::MediaStorageUtil::MakeDeviceId(type, | 
| -                                                                 unique_id); | 
| -  StorageObjectInfo object_info = { | 
| -      StorageInfo(device_id, device_label, mount_info.mount_path), | 
| -      storage_size_in_bytes | 
| -  }; | 
| -  mount_map_.insert(std::make_pair(mount_info.mount_path, object_info)); | 
| -  receiver()->ProcessAttach(StorageInfo( | 
| -      device_id, | 
| -      chrome::GetDisplayNameForDevice(storage_size_in_bytes, device_label), | 
| -      mount_info.mount_path)); | 
| -} | 
| - | 
| -}  // namespace chromeos | 
|  |