| 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 #include "chrome/browser/storage_monitor/storage_monitor.h" | 5 #include "chrome/browser/storage_monitor/storage_monitor.h" |
| 6 | 6 |
| 7 #include "base/stl_util.h" | 7 #include "base/stl_util.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "chrome/browser/browser_process.h" | 9 #include "chrome/browser/browser_process.h" |
| 10 #include "chrome/browser/storage_monitor/removable_storage_observer.h" | 10 #include "chrome/browser/storage_monitor/removable_storage_observer.h" |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 | 38 |
| 39 void StorageMonitor::ReceiverImpl::ProcessDetach(const std::string& id) { | 39 void StorageMonitor::ReceiverImpl::ProcessDetach(const std::string& id) { |
| 40 notifications_->ProcessDetach(id); | 40 notifications_->ProcessDetach(id); |
| 41 } | 41 } |
| 42 | 42 |
| 43 void StorageMonitor::ReceiverImpl::MarkInitialized() { | 43 void StorageMonitor::ReceiverImpl::MarkInitialized() { |
| 44 notifications_->MarkInitialized(); | 44 notifications_->MarkInitialized(); |
| 45 } | 45 } |
| 46 | 46 |
| 47 StorageMonitor* StorageMonitor::GetInstance() { | 47 StorageMonitor* StorageMonitor::GetInstance() { |
| 48 if (g_browser_process) | 48 return g_browser_process ? g_browser_process->storage_monitor() : NULL; |
| 49 return g_browser_process->storage_monitor(); | |
| 50 | |
| 51 return NULL; | |
| 52 } | 49 } |
| 53 | 50 |
| 54 std::vector<StorageInfo> StorageMonitor::GetAllAvailableStorages() const { | 51 std::vector<StorageInfo> StorageMonitor::GetAllAvailableStorages() const { |
| 55 std::vector<StorageInfo> results; | 52 std::vector<StorageInfo> results; |
| 56 | 53 |
| 57 base::AutoLock lock(storage_lock_); | 54 base::AutoLock lock(storage_lock_); |
| 58 for (StorageMap::const_iterator it = storage_map_.begin(); | 55 for (StorageMap::const_iterator it = storage_map_.begin(); |
| 59 it != storage_map_.end(); | 56 it != storage_map_.end(); |
| 60 ++it) { | 57 ++it) { |
| 61 results.push_back(it->second); | 58 results.push_back(it->second); |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 { | 139 { |
| 143 base::AutoLock lock(storage_lock_); | 140 base::AutoLock lock(storage_lock_); |
| 144 if (ContainsKey(storage_map_, info.device_id())) { | 141 if (ContainsKey(storage_map_, info.device_id())) { |
| 145 // This can happen if our unique id scheme fails. Ignore the incoming | 142 // This can happen if our unique id scheme fails. Ignore the incoming |
| 146 // non-unique attachment. | 143 // non-unique attachment. |
| 147 return; | 144 return; |
| 148 } | 145 } |
| 149 storage_map_.insert(std::make_pair(info.device_id(), info)); | 146 storage_map_.insert(std::make_pair(info.device_id(), info)); |
| 150 } | 147 } |
| 151 | 148 |
| 152 DVLOG(1) << "StorageAttached with name " << UTF16ToUTF8(info.name()) | 149 DVLOG(1) << "StorageAttached with id " << info.device_id(); |
| 153 << " and id " << info.device_id(); | |
| 154 if (StorageInfo::IsRemovableDevice(info.device_id())) { | 150 if (StorageInfo::IsRemovableDevice(info.device_id())) { |
| 155 observer_list_->Notify( | 151 observer_list_->Notify( |
| 156 &RemovableStorageObserver::OnRemovableStorageAttached, info); | 152 &RemovableStorageObserver::OnRemovableStorageAttached, info); |
| 157 } | 153 } |
| 158 } | 154 } |
| 159 | 155 |
| 160 void StorageMonitor::ProcessDetach(const std::string& id) { | 156 void StorageMonitor::ProcessDetach(const std::string& id) { |
| 161 StorageInfo info; | 157 StorageInfo info; |
| 162 { | 158 { |
| 163 base::AutoLock lock(storage_lock_); | 159 base::AutoLock lock(storage_lock_); |
| 164 StorageMap::iterator it = storage_map_.find(id); | 160 StorageMap::iterator it = storage_map_.find(id); |
| 165 if (it == storage_map_.end()) | 161 if (it == storage_map_.end()) |
| 166 return; | 162 return; |
| 167 info = it->second; | 163 info = it->second; |
| 168 storage_map_.erase(it); | 164 storage_map_.erase(it); |
| 169 } | 165 } |
| 170 | 166 |
| 171 DVLOG(1) << "StorageDetached for id " << id; | 167 DVLOG(1) << "StorageDetached for id " << id; |
| 172 if (StorageInfo::IsRemovableDevice(info.device_id())) { | 168 if (StorageInfo::IsRemovableDevice(info.device_id())) { |
| 173 observer_list_->Notify( | 169 observer_list_->Notify( |
| 174 &RemovableStorageObserver::OnRemovableStorageDetached, info); | 170 &RemovableStorageObserver::OnRemovableStorageDetached, info); |
| 175 } | 171 } |
| 176 } | 172 } |
| 177 | 173 |
| 178 } // namespace chrome | 174 } // namespace chrome |
| OLD | NEW |