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

Unified Diff: trunk/src/chrome/browser/resources/chromeos/login/user_pod_row.js

Issue 54333005: Revert 230138 "Delay wallpaper load by 2 * average wallpaper loa..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 2 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: trunk/src/chrome/browser/resources/chromeos/login/user_pod_row.js
===================================================================
--- trunk/src/chrome/browser/resources/chromeos/login/user_pod_row.js (revision 232138)
+++ trunk/src/chrome/browser/resources/chromeos/login/user_pod_row.js (working copy)
@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-<include src="wallpaper_loader.js"></include>
-
/**
* @fileoverview User pod row implementation.
*/
@@ -24,6 +22,20 @@
var PRESELECT_FIRST_POD = true;
/**
+ * Wallpaper load delay in milliseconds.
+ * @type {number}
+ * @const
+ */
+ var WALLPAPER_LOAD_DELAY_MS = 500;
+
+ /**
+ * Wallpaper load delay in milliseconds. TODO(nkostylev): Tune this constant.
+ * @type {number}
+ * @const
+ */
+ var WALLPAPER_BOOT_LOAD_DELAY_MS = 100;
+
+ /**
* Maximum time for which the pod row remains hidden until all user images
* have been loaded.
* @type {number}
@@ -947,9 +959,17 @@
// Whether this user pod row is shown for the first time.
firstShown_: true,
+ // Whether the initial wallpaper load after boot has been requested. Used
+ // only if |Oobe.getInstance().shouldLoadWallpaperOnBoot()| is true.
+ bootWallpaperLoaded_: false,
+
// True if inside focusPod().
insideFocusPod_: false,
+ // True if user pod has been activated with keyboard.
+ // In case of activation with keyboard we delay wallpaper change.
+ keyboardActivated_: false,
+
// Focused pod.
focusedPod_: undefined,
@@ -959,8 +979,9 @@
// Pod that was most recently focused, if any.
lastFocusedPod_: undefined,
- // Note: created only in decorate() !
- wallpaperLoader_: undefined,
+ // When moving through users quickly at login screen, set a timeout to
+ // prevent loading intermediate wallpapers.
+ loadWallpaperTimeout_: null,
// Pods whose initial images haven't been loaded yet.
podsWithPendingImages_: [],
@@ -977,7 +998,6 @@
mousemove: [this.handleMouseMove_.bind(this), false],
keydown: [this.handleKeyDown.bind(this), false]
};
- this.wallpaperLoader_ = new login.WallpaperLoader();
},
/**
@@ -1222,7 +1242,7 @@
}
this.insideFocusPod_ = true;
- this.wallpaperLoader_.reset();
+ clearTimeout(this.loadWallpaperTimeout_);
for (var i = 0, pod; pod = this.pods[i]; ++i) {
if (!this.isSinglePod) {
pod.isActionBoxMenuActive = false;
@@ -1246,8 +1266,15 @@
podToFocus.classList.add('focused');
podToFocus.reset(true); // Reset and give focus.
chrome.send('focusPod', [podToFocus.user.emailAddress]);
-
- this.wallpaperLoader_.scheduleLoad(podToFocus.user.emailAddress);
+ if (hadFocus && this.keyboardActivated_) {
+ // Delay wallpaper loading to let user tab through pods without lag.
+ this.loadWallpaperTimeout_ = window.setTimeout(
+ this.loadWallpaper_.bind(this), WALLPAPER_LOAD_DELAY_MS);
+ } else if (!this.firstShown_) {
+ // Load wallpaper immediately if there no pod was focused
+ // previously, and it is not a boot into user pod list case.
+ this.loadWallpaper_();
+ }
this.firstShown_ = false;
this.lastFocusedPod_ = podToFocus;
}
@@ -1256,19 +1283,20 @@
},
/**
- * Resets wallpaper to the last active user's wallpaper, if any.
+ * Loads wallpaper for the active user pod, if any.
+ * @private
*/
- loadLastWallpaper: function() {
- if (this.lastFocusedPod_)
- this.wallpaperLoader_.scheduleLoad(this.lastFocusedPod_.user.username);
+ loadWallpaper_: function() {
+ if (this.focusedPod_)
+ chrome.send('loadWallpaper', [this.focusedPod_.user.username]);
},
/**
- * Handles 'onWallpaperLoaded' event. Recalculates statistics and
- * [re]schedules next wallpaper load.
+ * Resets wallpaper to the last active user's wallpaper, if any.
*/
- onWallpaperLoaded: function(email) {
- this.wallpaperLoader_.onWallpaperLoaded(email);
+ loadLastWallpaper: function() {
+ if (this.lastFocusedPod_)
+ chrome.send('loadWallpaper', [this.lastFocusedPod_.user.username]);
},
/**
@@ -1532,7 +1560,13 @@
focusedPod.reset(true);
// Notify screen that it is ready.
screen.onShow();
- self.wallpaperLoader_.scheduleLoad(focusedPod.user.username);
+ // Boot transition: load wallpaper.
+ if (!self.bootWallpaperLoaded_ &&
+ Oobe.getInstance().shouldLoadWallpaperOnBoot()) {
+ self.loadWallpaperTimeout_ = window.setTimeout(
+ self.loadWallpaper_.bind(self), WALLPAPER_BOOT_LOAD_DELAY_MS);
+ self.bootWallpaperLoaded_ = true;
+ }
}
});
// Guard timer for 1 second -- it would conver all possible animations.

Powered by Google App Engine
This is Rietveld 408576698