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 67fbf220b755212df900a9a85534485cc37e8561..8e5c9b4bb05b6481a5c6753e88fdbedd8f991323 100644 |
--- a/chrome/browser/media_galleries/media_galleries_preferences.cc |
+++ b/chrome/browser/media_galleries/media_galleries_preferences.cc |
@@ -22,6 +22,7 @@ |
#include "chrome/browser/prefs/scoped_user_pref_update.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/storage_monitor/media_storage_util.h" |
+#include "chrome/browser/storage_monitor/schedule.h" |
#include "chrome/browser/storage_monitor/storage_monitor.h" |
#include "chrome/common/chrome_paths.h" |
#include "chrome/common/extensions/extension.h" |
@@ -334,7 +335,6 @@ MediaGalleriesPreferences::MediaGalleriesPreferences(Profile* profile) |
: weak_factory_(this), |
initializing_(false), |
initialized_(false), |
- pre_initialization_callbacks_waiting_(0), |
profile_(profile), |
extension_prefs_for_testing_(NULL) {} |
@@ -363,37 +363,34 @@ void MediaGalleriesPreferences::EnsureInitialized(base::Closure callback) { |
AddDefaultGalleriesIfFreshProfile(); |
- pre_initialization_callbacks_waiting_ = 2; |
+ chrome::ScheduleBuilder b("MediaGalleriesPreferencesInit", FROM_HERE); |
// Ensure StorageMonitor is initialized. |
- StorageMonitor::GetInstance()->EnsureInitialized( |
- base::Bind(&MediaGalleriesPreferences::OnInitializationCallbackReturned, |
- weak_factory_.GetWeakPtr())); |
- |
- // Look for optional default galleries every time. |
- itunes::ITunesFinder::FindITunesLibrary( |
- base::Bind(&MediaGalleriesPreferences::OnFinderDeviceID, |
- weak_factory_.GetWeakPtr())); |
- |
+ b.RunAsync(base::Bind(&StorageMonitor::EnsureInitialized, |
+ base::Unretained(StorageMonitor::GetInstance()), |
+ b.ContinueClosure())); |
+ b.RunAsync(base::Bind(&itunes::ITunesFinder::FindITunesLibrary, |
+ base::Bind(&MediaGalleriesPreferences::OnFinderDeviceID, |
+ weak_factory_.GetWeakPtr(), |
+ b.ContinueClosure()))); |
// TODO(tommycli): Turn on when Picasa code is ready. |
#if 0 |
- picasa::PicasaFinder::FindPicasaDatabaseOnUIThread( |
- base::Bind(&MediaGalleriesPreferences::OnFinderDeviceID, |
- weak_factory_.GetWeakPtr())); |
+ b.RunAsync(base::Bind(&picasa::PicasaFinder::FindPicasaDatabaseOnUIThread, |
+ base::Bind(&MediaGalleriesPreferences::OnFinderDeviceID, |
+ weak_factory_.GetWeakPtr(), |
+ b.ContinueClosure()))); |
#endif |
+ |
+ b.NextStage(); |
+ b.Run(base::Bind(&MediaGalleriesPreferences::FinishInitialization, |
+ weak_factory_.GetWeakPtr())); |
+ b.Build()->Start(); |
Greg Billock
2013/09/19 22:34:08
This looks nice. Agreed it makes it easier to foll
tommycli
2013/09/19 22:37:05
Yeah! That'd be pimp. I'm also a bit annoyed that
|
} |
bool MediaGalleriesPreferences::IsInitialized() const { return initialized_; } |
Profile* MediaGalleriesPreferences::profile() { return profile_; } |
-void MediaGalleriesPreferences::OnInitializationCallbackReturned() { |
- DCHECK(!IsInitialized()); |
- DCHECK(pre_initialization_callbacks_waiting_ > 0); |
- if (--pre_initialization_callbacks_waiting_ == 0) |
- FinishInitialization(); |
-} |
- |
void MediaGalleriesPreferences::FinishInitialization() { |
DCHECK(!IsInitialized()); |
@@ -499,7 +496,8 @@ bool MediaGalleriesPreferences::UpdateDeviceIDForSingletonType( |
return false; |
} |
-void MediaGalleriesPreferences::OnFinderDeviceID(const std::string& device_id) { |
+void MediaGalleriesPreferences::OnFinderDeviceID(base::Closure callback, |
+ const std::string& device_id) { |
if (!device_id.empty() && !UpdateDeviceIDForSingletonType(device_id)) { |
std::string gallery_name; |
if (StorageInfo::IsITunesDevice(device_id)) |
@@ -515,8 +513,8 @@ void MediaGalleriesPreferences::OnFinderDeviceID(const std::string& device_id) { |
base::Time(), false, 2); |
} |
- if (!IsInitialized()) |
- OnInitializationCallbackReturned(); |
+ if (!callback.is_null()) |
Greg Billock
2013/09/19 22:34:08
Although we may not use it, this is a nice testabi
tommycli
2013/09/19 22:37:05
Yeah I could see exploiting that in a test. Making
|
+ callback.Run(); |
} |
void MediaGalleriesPreferences::InitFromPrefs() { |