| Index: chrome/browser/resources/chromeos/login/lock.js
|
| diff --git a/chrome/browser/resources/chromeos/login/lock.js b/chrome/browser/resources/chromeos/login/lock.js
|
| index 9eb6fe0c1906cc713107446f4de23564a3dc672b..f6b821e1aa83c4639c720fc26e168b85cbaccdae 100644
|
| --- a/chrome/browser/resources/chromeos/login/lock.js
|
| +++ b/chrome/browser/resources/chromeos/login/lock.js
|
| @@ -9,16 +9,24 @@
|
| // <include src="login_shared.js">
|
|
|
| /**
|
| - * Asynchronously loads the pin keyboard.
|
| + * Ensures that the pin keyboard is loaded.
|
| + * @param {function()} onLoaded Callback run when the pin keyboard is loaded.
|
| */
|
| -function showPinKeyboardAsync() {
|
| +function ensurePinKeyboardLoaded(onLoaded) {
|
| 'use strict';
|
|
|
| - // This function could get called multiple times. Do nothing if we have
|
| - // already loaded. This check needs to happen before the registerAssets call,
|
| - // because that will clobber the loaded state.
|
| - if (cr.ui.login.ResourceLoader.hasDeferredAssets('custom-elements'))
|
| + // The element we want to see if loaded.
|
| + var getPinKeyboard = function() {
|
| + return $('pod-row').querySelectorAll('pin-keyboard')[0];
|
| + };
|
| +
|
| + // Do not reload assets if they are already loaded. Run |onLoaded| once assets
|
| + // are done loading, though.
|
| + if (cr.ui.login.ResourceLoader.hasDeferredAssets('custom-elements')) {
|
| + cr.ui.login.ResourceLoader.waitUntilLayoutComplete(getPinKeyboard,
|
| + onLoaded);
|
| return;
|
| + }
|
|
|
| // Register loader for custom elements.
|
| cr.ui.login.ResourceLoader.registerAssets({
|
| @@ -26,18 +34,6 @@ function showPinKeyboardAsync() {
|
| html: [{ url: 'chrome://oobe/custom_elements.html' }]
|
| });
|
|
|
| - // Called after polymer has been loaded. Fades the pin element in.
|
| - var onPinLoaded = function(pinKeyboard) {
|
| - var podRow = $('pod-row');
|
| - podRow.toggleTransitions(true);
|
| - podRow.setFocusedPodPinVisibility(true);
|
| - };
|
| -
|
| - // The element we want to see if loaded.
|
| - var getPinKeyboard = function() {
|
| - return $('pod-row').querySelectorAll('pin-keyboard')[0];
|
| - };
|
| -
|
| // We only load the PIN element when it is actually shown so that lock screen
|
| // load times remain low when the user is not using a PIN.
|
| //
|
| @@ -46,7 +42,7 @@ function showPinKeyboardAsync() {
|
| // fly-in animation to complete without interruption.
|
| cr.ui.login.ResourceLoader.loadAssetsOnIdle('custom-elements', function() {
|
| cr.ui.login.ResourceLoader.waitUntilLayoutComplete(getPinKeyboard,
|
| - onPinLoaded);
|
| + onLoaded);
|
| });
|
| }
|
|
|
| @@ -71,7 +67,7 @@ cr.define('cr.ui.Oobe', function() {
|
| * lock session so it should also get preloaded.
|
| */
|
| preloadPinKeyboard: function() {
|
| - showPinKeyboardAsync();
|
| + ensurePinKeyboardLoaded(function() {});
|
| },
|
|
|
| // Dummy Oobe functions not present with stripped login UI.
|
|
|