| 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 472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 483 preferences->GalleriesForExtension(*extension); | 483 preferences->GalleriesForExtension(*extension); |
| 484 | 484 |
| 485 if (galleries.empty()) { | 485 if (galleries.empty()) { |
| 486 callback.Run(std::vector<MediaFileSystemInfo>()); | 486 callback.Run(std::vector<MediaFileSystemInfo>()); |
| 487 return; | 487 return; |
| 488 } | 488 } |
| 489 | 489 |
| 490 if (!ContainsKey(pref_change_registrar_map_, profile)) { | 490 if (!ContainsKey(pref_change_registrar_map_, profile)) { |
| 491 PrefChangeRegistrar* pref_registrar = new PrefChangeRegistrar; | 491 PrefChangeRegistrar* pref_registrar = new PrefChangeRegistrar; |
| 492 pref_registrar->Init(profile->GetPrefs()); | 492 pref_registrar->Init(profile->GetPrefs()); |
| 493 pref_registrar->Add(prefs::kMediaGalleriesRememberedGalleries, this); | 493 pref_registrar->Add( |
| 494 prefs::kMediaGalleriesRememberedGalleries, |
| 495 base::Bind(&MediaFileSystemRegistry:: |
| 496 OnMediaGalleriesRememberedGalleriesChanged, |
| 497 base::Unretained(this), |
| 498 pref_registrar->prefs())); |
| 494 pref_change_registrar_map_[profile] = pref_registrar; | 499 pref_change_registrar_map_[profile] = pref_registrar; |
| 495 } | 500 } |
| 496 | 501 |
| 497 ExtensionGalleriesHost* extension_host = | 502 ExtensionGalleriesHost* extension_host = |
| 498 extension_hosts_map_[profile][extension->id()].get(); | 503 extension_hosts_map_[profile][extension->id()].get(); |
| 499 if (!extension_host) { | 504 if (!extension_host) { |
| 500 extension_host = new ExtensionGalleriesHost( | 505 extension_host = new ExtensionGalleriesHost( |
| 501 file_system_context_.get(), | 506 file_system_context_.get(), |
| 502 base::Bind(&MediaFileSystemRegistry::OnExtensionGalleriesHostEmpty, | 507 base::Bind(&MediaFileSystemRegistry::OnExtensionGalleriesHostEmpty, |
| 503 base::Unretained(this), profile, extension->id())); | 508 base::Unretained(this), profile, extension->id())); |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 665 system_monitor->AddDevicesChangedObserver(this); | 670 system_monitor->AddDevicesChangedObserver(this); |
| 666 } | 671 } |
| 667 | 672 |
| 668 MediaFileSystemRegistry::~MediaFileSystemRegistry() { | 673 MediaFileSystemRegistry::~MediaFileSystemRegistry() { |
| 669 // SystemMonitor may be NULL in unit tests. | 674 // SystemMonitor may be NULL in unit tests. |
| 670 SystemMonitor* system_monitor = SystemMonitor::Get(); | 675 SystemMonitor* system_monitor = SystemMonitor::Get(); |
| 671 if (system_monitor) | 676 if (system_monitor) |
| 672 system_monitor->RemoveDevicesChangedObserver(this); | 677 system_monitor->RemoveDevicesChangedObserver(this); |
| 673 } | 678 } |
| 674 | 679 |
| 675 void MediaFileSystemRegistry::OnPreferenceChanged( | 680 void MediaFileSystemRegistry::OnMediaGalleriesRememberedGalleriesChanged( |
| 676 PrefServiceBase* prefs, | 681 PrefServiceBase* prefs) { |
| 677 const std::string& pref_name) { | |
| 678 DCHECK_EQ(std::string(prefs::kMediaGalleriesRememberedGalleries), pref_name); | |
| 679 | |
| 680 // Find the Profile that contains the source PrefService. | 682 // Find the Profile that contains the source PrefService. |
| 681 PrefChangeRegistrarMap::iterator pref_change_it = | 683 PrefChangeRegistrarMap::iterator pref_change_it = |
| 682 pref_change_registrar_map_.begin(); | 684 pref_change_registrar_map_.begin(); |
| 683 for (; pref_change_it != pref_change_registrar_map_.end(); ++pref_change_it) { | 685 for (; pref_change_it != pref_change_registrar_map_.end(); ++pref_change_it) { |
| 684 if (pref_change_it->first->GetPrefs() == prefs) | 686 if (pref_change_it->first->GetPrefs() == prefs) |
| 685 break; | 687 break; |
| 686 } | 688 } |
| 687 DCHECK(pref_change_it != pref_change_registrar_map_.end()); | 689 DCHECK(pref_change_it != pref_change_registrar_map_.end()); |
| 688 Profile* profile = pref_change_it->first; | 690 Profile* profile = pref_change_it->first; |
| 689 | 691 |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 751 | 753 |
| 752 PrefChangeRegistrarMap::iterator pref_it = | 754 PrefChangeRegistrarMap::iterator pref_it = |
| 753 pref_change_registrar_map_.find(profile); | 755 pref_change_registrar_map_.find(profile); |
| 754 DCHECK(pref_it != pref_change_registrar_map_.end()); | 756 DCHECK(pref_it != pref_change_registrar_map_.end()); |
| 755 delete pref_it->second; | 757 delete pref_it->second; |
| 756 pref_change_registrar_map_.erase(pref_it); | 758 pref_change_registrar_map_.erase(pref_it); |
| 757 } | 759 } |
| 758 } | 760 } |
| 759 | 761 |
| 760 } // namespace chrome | 762 } // namespace chrome |
| OLD | NEW |