Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5797)

Unified Diff: chrome/browser/chromeos/login/wallpaper_manager.cc

Issue 24625003: Delay wallpaper load by 2 * average wallpaper load time. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Catch WallpaperAnimationFinished event and inform JS. Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/login/wallpaper_manager.cc
diff --git a/chrome/browser/chromeos/login/wallpaper_manager.cc b/chrome/browser/chromeos/login/wallpaper_manager.cc
index 3692a2acafa4b939a5842cc4274123a8646b26d4..7235f64df4ba275c6c896f7e36fa5fc00af68bb9 100644
--- a/chrome/browser/chromeos/login/wallpaper_manager.cc
+++ b/chrome/browser/chromeos/login/wallpaper_manager.cc
@@ -299,6 +299,7 @@ void WallpaperManager::Observe(int type,
break;
}
case chrome::NOTIFICATION_WALLPAPER_ANIMATION_FINISHED: {
+ NotifyAnimationFinished();
if (should_cache_wallpaper_) {
BrowserThread::PostDelayedTask(
BrowserThread::UI, FROM_HERE,
@@ -591,6 +592,33 @@ void WallpaperManager::UpdateWallpaper() {
SetUserWallpaper(last_selected_user_);
}
+void WallpaperManager::AddObserver(
+ base::WeakPtr<WallpaperManager::Observer> observer) {
+ ObserverList::iterator i = observers_.begin();
+ while (i != observers_.end()) {
+ if (*i != NULL) {
+ if (i->get() == observer.get())
+ return;
+ ++i;
+ continue;
+ }
+ observers_.erase(i++);
+ }
+ observers_.push_back(observer);
+}
+
+void WallpaperManager::NotifyAnimationFinished() {
+ ObserverList::iterator i = observers_.begin();
+ while (i != observers_.end()) {
+ if (*i != NULL) {
+ (*i)->OnWallpaperAnimationFinished(last_selected_user_);
+ ++i;
+ continue;
+ }
+ observers_.erase(i++);
+ }
+}
+
// WallpaperManager, private: --------------------------------------------------
void WallpaperManager::CacheUsersWallpapers() {

Powered by Google App Engine
This is Rietveld 408576698