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 #include <vector> | 10 #include <vector> |
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
328 | 328 |
329 PrefIdFsInfoMap::const_iterator existing_info = | 329 PrefIdFsInfoMap::const_iterator existing_info = |
330 pref_id_map_.find(pref_id); | 330 pref_id_map_.find(pref_id); |
331 if (existing_info != pref_id_map_.end()) { | 331 if (existing_info != pref_id_map_.end()) { |
332 result.push_back(existing_info->second); | 332 result.push_back(existing_info->second); |
333 new_galleries.insert(pref_id); | 333 new_galleries.insert(pref_id); |
334 continue; | 334 continue; |
335 } | 335 } |
336 | 336 |
337 FilePath path = gallery_info.AbsolutePath(); | 337 FilePath path = gallery_info.AbsolutePath(); |
338 if (!path.IsAbsolute()) | 338 if (!MediaStorageUtil::CanCreateFileSystem(device_id, path)) |
339 continue; | 339 continue; |
340 | 340 |
341 std::string fsid; | 341 std::string fsid; |
342 if (MediaStorageUtil::IsMassStorageDevice(device_id)) { | 342 if (MediaStorageUtil::IsMassStorageDevice(device_id)) { |
343 fsid = file_system_context_->RegisterFileSystemForMassStorage( | 343 fsid = file_system_context_->RegisterFileSystemForMassStorage( |
344 device_id, path); | 344 device_id, path); |
345 } else { | 345 } else { |
346 #if defined(SUPPORT_MTP_DEVICE_FILESYSTEM) | 346 #if defined(SUPPORT_MTP_DEVICE_FILESYSTEM) |
347 scoped_refptr<ScopedMTPDeviceMapEntry> mtp_device_host; | 347 scoped_refptr<ScopedMTPDeviceMapEntry> mtp_device_host; |
348 fsid = file_system_context_->RegisterFileSystemForMTPDevice( | 348 fsid = file_system_context_->RegisterFileSystemForMTPDevice( |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
633 } | 633 } |
634 | 634 |
635 #if defined(SUPPORT_MTP_DEVICE_FILESYSTEM) | 635 #if defined(SUPPORT_MTP_DEVICE_FILESYSTEM) |
636 virtual std::string RegisterFileSystemForMTPDevice( | 636 virtual std::string RegisterFileSystemForMTPDevice( |
637 const std::string& device_id, const FilePath& path, | 637 const std::string& device_id, const FilePath& path, |
638 scoped_refptr<ScopedMTPDeviceMapEntry>* entry) { | 638 scoped_refptr<ScopedMTPDeviceMapEntry>* entry) { |
639 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 639 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
640 DCHECK(!MediaStorageUtil::IsMassStorageDevice(device_id)); | 640 DCHECK(!MediaStorageUtil::IsMassStorageDevice(device_id)); |
641 | 641 |
642 // Sanity checks for |path|. | 642 // Sanity checks for |path|. |
643 CHECK(path.IsAbsolute()); | 643 CHECK(MediaStorageUtil::CanCreateFileSystem(device_id, path)); |
644 CHECK(!path.ReferencesParent()); | |
645 std::string fs_name(extension_misc::kMediaFileSystemPathPart); | 644 std::string fs_name(extension_misc::kMediaFileSystemPathPart); |
646 const std::string fsid = | 645 const std::string fsid = |
647 IsolatedContext::GetInstance()->RegisterFileSystemForPath( | 646 IsolatedContext::GetInstance()->RegisterFileSystemForPath( |
648 fileapi::kFileSystemTypeDeviceMedia, path, &fs_name); | 647 fileapi::kFileSystemTypeDeviceMedia, path, &fs_name); |
649 CHECK(!fsid.empty()); | 648 CHECK(!fsid.empty()); |
650 DCHECK(entry); | 649 DCHECK(entry); |
651 *entry = registry_->GetOrCreateScopedMTPDeviceMapEntry(path.value()); | 650 *entry = registry_->GetOrCreateScopedMTPDeviceMapEntry(path.value()); |
652 return fsid; | 651 return fsid; |
653 } | 652 } |
654 #endif | 653 #endif |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
757 | 756 |
758 PrefChangeRegistrarMap::iterator pref_it = | 757 PrefChangeRegistrarMap::iterator pref_it = |
759 pref_change_registrar_map_.find(profile); | 758 pref_change_registrar_map_.find(profile); |
760 DCHECK(pref_it != pref_change_registrar_map_.end()); | 759 DCHECK(pref_it != pref_change_registrar_map_.end()); |
761 delete pref_it->second; | 760 delete pref_it->second; |
762 pref_change_registrar_map_.erase(pref_it); | 761 pref_change_registrar_map_.erase(pref_it); |
763 } | 762 } |
764 } | 763 } |
765 | 764 |
766 } // namespace chrome | 765 } // namespace chrome |
OLD | NEW |