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_galleries/media_file_system_registry.h" | 7 #include "chrome/browser/media_galleries/media_file_system_registry.h" |
8 | 8 |
9 #include <set> | 9 #include <set> |
10 #include <vector> | 10 #include <vector> |
(...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
467 // once per profile. | 467 // once per profile. |
468 extension_hosts_map_[profile] = ExtensionHostMap(); | 468 extension_hosts_map_[profile] = ExtensionHostMap(); |
469 | 469 |
470 // TODO(gbillock): Move this stanza to MediaGalleriesPreferences init code. | 470 // TODO(gbillock): Move this stanza to MediaGalleriesPreferences init code. |
471 // StorageMonitor may be NULL in unit tests. | 471 // StorageMonitor may be NULL in unit tests. |
472 StorageMonitor* monitor = StorageMonitor::GetInstance(); | 472 StorageMonitor* monitor = StorageMonitor::GetInstance(); |
473 if (!monitor) | 473 if (!monitor) |
474 return preferences; | 474 return preferences; |
475 std::vector<StorageInfo> existing_devices = monitor->GetAttachedStorage(); | 475 std::vector<StorageInfo> existing_devices = monitor->GetAttachedStorage(); |
476 for (size_t i = 0; i < existing_devices.size(); i++) { | 476 for (size_t i = 0; i < existing_devices.size(); i++) { |
477 if (!StorageInfo::IsMediaDevice(existing_devices[i].device_id)) | 477 if (!StorageInfo::IsMediaDevice(existing_devices[i].device_id())) |
478 continue; | 478 continue; |
479 if (!existing_devices[i].name.empty()) { | 479 if (!existing_devices[i].name().empty()) { |
480 preferences->AddGalleryWithName(existing_devices[i].device_id, | 480 preferences->AddGalleryWithName(existing_devices[i].device_id(), |
481 existing_devices[i].name, | 481 existing_devices[i].name(), |
482 base::FilePath(), | 482 base::FilePath(), |
483 false /*not user added*/); | 483 false /*not user added*/); |
484 } else { | 484 } else { |
485 preferences->AddGallery(existing_devices[i].device_id, | 485 preferences->AddGallery(existing_devices[i].device_id(), |
486 base::FilePath(), | 486 base::FilePath(), |
487 false, | 487 false, |
488 existing_devices[i].storage_label, | 488 existing_devices[i].storage_label(), |
489 existing_devices[i].vendor_name, | 489 existing_devices[i].vendor_name(), |
490 existing_devices[i].model_name, | 490 existing_devices[i].model_name(), |
491 existing_devices[i].total_size_in_bytes, | 491 existing_devices[i].total_size_in_bytes(), |
492 base::Time::Now()); | 492 base::Time::Now()); |
493 } | 493 } |
494 } | 494 } |
495 return preferences; | 495 return preferences; |
496 } | 496 } |
497 | 497 |
498 void MediaFileSystemRegistry::OnRemovableStorageDetached( | 498 void MediaFileSystemRegistry::OnRemovableStorageDetached( |
499 const StorageInfo& info) { | 499 const StorageInfo& info) { |
500 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 500 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
501 | 501 |
502 // Since revoking a gallery in the ExtensionGalleriesHost may cause it | 502 // Since revoking a gallery in the ExtensionGalleriesHost may cause it |
503 // to be removed from the map and therefore invalidate any iterator pointing | 503 // to be removed from the map and therefore invalidate any iterator pointing |
504 // to it, this code first copies all the invalid gallery ids and the | 504 // to it, this code first copies all the invalid gallery ids and the |
505 // extension hosts in which they may appear (per profile) and revoked it in | 505 // extension hosts in which they may appear (per profile) and revoked it in |
506 // a second step. | 506 // a second step. |
507 std::vector<InvalidatedGalleriesInfo> invalid_galleries_info; | 507 std::vector<InvalidatedGalleriesInfo> invalid_galleries_info; |
508 | 508 |
509 for (ExtensionGalleriesHostMap::iterator profile_it = | 509 for (ExtensionGalleriesHostMap::iterator profile_it = |
510 extension_hosts_map_.begin(); | 510 extension_hosts_map_.begin(); |
511 profile_it != extension_hosts_map_.end(); | 511 profile_it != extension_hosts_map_.end(); |
512 ++profile_it) { | 512 ++profile_it) { |
513 MediaGalleriesPreferences* preferences = GetPreferences(profile_it->first); | 513 MediaGalleriesPreferences* preferences = GetPreferences(profile_it->first); |
514 InvalidatedGalleriesInfo invalid_galleries_in_profile; | 514 InvalidatedGalleriesInfo invalid_galleries_in_profile; |
515 invalid_galleries_in_profile.pref_ids = | 515 invalid_galleries_in_profile.pref_ids = |
516 preferences->LookUpGalleriesByDeviceId(info.device_id); | 516 preferences->LookUpGalleriesByDeviceId(info.device_id()); |
517 | 517 |
518 for (ExtensionHostMap::const_iterator extension_host_it = | 518 for (ExtensionHostMap::const_iterator extension_host_it = |
519 profile_it->second.begin(); | 519 profile_it->second.begin(); |
520 extension_host_it != profile_it->second.end(); | 520 extension_host_it != profile_it->second.end(); |
521 ++extension_host_it) { | 521 ++extension_host_it) { |
522 invalid_galleries_in_profile.extension_hosts.insert( | 522 invalid_galleries_in_profile.extension_hosts.insert( |
523 extension_host_it->second.get()); | 523 extension_host_it->second.get()); |
524 } | 524 } |
525 | 525 |
526 invalid_galleries_info.push_back(invalid_galleries_in_profile); | 526 invalid_galleries_info.push_back(invalid_galleries_in_profile); |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
720 // previously used. | 720 // previously used. |
721 PrefChangeRegistrarMap::iterator pref_it = | 721 PrefChangeRegistrarMap::iterator pref_it = |
722 pref_change_registrar_map_.find(profile); | 722 pref_change_registrar_map_.find(profile); |
723 DCHECK(pref_it != pref_change_registrar_map_.end()); | 723 DCHECK(pref_it != pref_change_registrar_map_.end()); |
724 delete pref_it->second; | 724 delete pref_it->second; |
725 pref_change_registrar_map_.erase(pref_it); | 725 pref_change_registrar_map_.erase(pref_it); |
726 } | 726 } |
727 } | 727 } |
728 | 728 |
729 } // namespace chrome | 729 } // namespace chrome |
OLD | NEW |