Index: chrome/browser/media_galleries/media_galleries_preferences.cc |
diff --git a/chrome/browser/media_galleries/media_galleries_preferences.cc b/chrome/browser/media_galleries/media_galleries_preferences.cc |
index 915f918ccd88e8aed1ebc462718aec1e5320d7b2..4bebe6e31a90dac1adaf077cb97c83627f6ece43 100644 |
--- a/chrome/browser/media_galleries/media_galleries_preferences.cc |
+++ b/chrome/browser/media_galleries/media_galleries_preferences.cc |
@@ -377,10 +377,12 @@ void MediaGalleriesPreferences::EnsureInitialized(base::Closure callback) { |
// FinishInitialization. |
pre_initialization_callbacks_waiting_ = 2; |
- // Ensure StorageMonitor is initialized. |
+ // We determine the freshness of the profile here, before any of the finders |
+ // return and add media galleries to it. |
StorageMonitor::GetInstance()->EnsureInitialized( |
- base::Bind(&MediaGalleriesPreferences::OnInitializationCallbackReturned, |
- weak_factory_.GetWeakPtr())); |
+ base::Bind(&MediaGalleriesPreferences::OnStorageMonitorInit, |
+ weak_factory_.GetWeakPtr(), |
+ APIHasBeenUsed(profile_) /* add_default_galleries */)); |
// Look for optional default galleries every time. |
itunes::ITunesFinder::FindITunesLibrary( |
@@ -420,7 +422,6 @@ void MediaGalleriesPreferences::FinishInitialization() { |
StorageMonitor* monitor = StorageMonitor::GetInstance(); |
DCHECK(monitor->IsInitialized()); |
- AddDefaultGalleriesIfFreshProfile(); |
InitFromPrefs(); |
StorageMonitor::GetInstance()->AddObserver(this); |
@@ -450,12 +451,7 @@ void MediaGalleriesPreferences::FinishInitialization() { |
on_initialize_callbacks_.clear(); |
} |
-void MediaGalleriesPreferences::AddDefaultGalleriesIfFreshProfile() { |
- // Only add defaults the first time. |
- if (APIHasBeenUsed(profile_)) |
- return; |
- |
- // Fresh profile case. |
+void MediaGalleriesPreferences::AddDefaultGalleries() { |
const int kDirectoryKeys[] = { |
chrome::DIR_USER_MUSIC, |
chrome::DIR_USER_PICTURES, |
@@ -518,6 +514,13 @@ bool MediaGalleriesPreferences::UpdateDeviceIDForSingletonType( |
return false; |
} |
+void MediaGalleriesPreferences::OnStorageMonitorInit( |
+ bool need_to_add_default_galleries) { |
Lei Zhang
2013/10/08 01:18:34
nit: the parameter name here does not match the .h
|
+ if (need_to_add_default_galleries) |
+ AddDefaultGalleries(); |
+ OnInitializationCallbackReturned(); |
+} |
+ |
void MediaGalleriesPreferences::OnFinderDeviceID(const std::string& device_id) { |
if (!device_id.empty() && !UpdateDeviceIDForSingletonType(device_id)) { |
std::string gallery_name; |