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 // MediaFileSystemRegistry implementation. | 5 // MediaFileSystemRegistry implementation. |
6 | 6 |
7 #include "chrome/browser/media_gallery/media_file_system_registry.h" | 7 #include "chrome/browser/media_gallery/media_file_system_registry.h" |
8 | 8 |
9 #include <set> | 9 #include <set> |
10 | 10 |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 141 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
142 const RenderProcessHost* rph = | 142 const RenderProcessHost* rph = |
143 content::Source<content::RenderProcessHost>(source).ptr(); | 143 content::Source<content::RenderProcessHost>(source).ptr(); |
144 ChildIdToMediaFSMap::iterator child_it = media_fs_map_.find(rph); | 144 ChildIdToMediaFSMap::iterator child_it = media_fs_map_.find(rph); |
145 CHECK(child_it != media_fs_map_.end()); | 145 CHECK(child_it != media_fs_map_.end()); |
146 // No need to revoke the isolated file systems. The RPH will do that. | 146 // No need to revoke the isolated file systems. The RPH will do that. |
147 media_fs_map_.erase(child_it); | 147 media_fs_map_.erase(child_it); |
148 UnregisterForRPHGoneNotifications(rph); | 148 UnregisterForRPHGoneNotifications(rph); |
149 } | 149 } |
150 | 150 |
| 151 std::string MediaFileSystemRegistry::GetDeviceIdFromPath( |
| 152 const FilePath& path) const { |
| 153 // TODO(vandebo) Do something better here, at least iterate system monitor |
| 154 // attached media devices looking for a match. If not, return the path. |
| 155 return path.AsUTF8Unsafe(); |
| 156 } |
| 157 |
151 /****************** | 158 /****************** |
152 * Private methods | 159 * Private methods |
153 ******************/ | 160 ******************/ |
154 | 161 |
155 MediaFileSystemRegistry::MediaFileSystemRegistry() { | 162 MediaFileSystemRegistry::MediaFileSystemRegistry() { |
156 SystemMonitor::Get()->AddDevicesChangedObserver(this); | 163 // SystemMonitor may be NULL in unit tests. |
| 164 SystemMonitor* system_monitor = SystemMonitor::Get(); |
| 165 if (system_monitor) |
| 166 system_monitor->AddDevicesChangedObserver(this); |
157 } | 167 } |
158 | 168 |
159 MediaFileSystemRegistry::~MediaFileSystemRegistry() { | 169 MediaFileSystemRegistry::~MediaFileSystemRegistry() { |
160 SystemMonitor::Get()->RemoveDevicesChangedObserver(this); | 170 // SystemMonitor may be NULL in unit tests. |
| 171 SystemMonitor* system_monitor = SystemMonitor::Get(); |
| 172 if (system_monitor) |
| 173 system_monitor->RemoveDevicesChangedObserver(this); |
161 } | 174 } |
162 | 175 |
163 void MediaFileSystemRegistry::RegisterForRPHGoneNotifications( | 176 void MediaFileSystemRegistry::RegisterForRPHGoneNotifications( |
164 const content::RenderProcessHost* rph) { | 177 const content::RenderProcessHost* rph) { |
165 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_TERMINATED, | 178 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_TERMINATED, |
166 content::Source<RenderProcessHost>(rph)); | 179 content::Source<RenderProcessHost>(rph)); |
167 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_CLOSED, | 180 registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_CLOSED, |
168 content::Source<RenderProcessHost>(rph)); | 181 content::Source<RenderProcessHost>(rph)); |
169 } | 182 } |
170 | 183 |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
229 #endif | 242 #endif |
230 break; | 243 break; |
231 case SystemMonitor::TYPE_PATH: | 244 case SystemMonitor::TYPE_PATH: |
232 break; | 245 break; |
233 } | 246 } |
234 child_map.erase(media_path_it); | 247 child_map.erase(media_path_it); |
235 } | 248 } |
236 } | 249 } |
237 | 250 |
238 } // namespace chrome | 251 } // namespace chrome |
OLD | NEW |