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

Unified Diff: chrome/browser/resources/chromeos/login/screen_gaia_signin.js

Issue 8037035: [ChromeOS] Auto reload auth extension. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix nits Created 9 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
« no previous file with comments | « no previous file | chrome/browser/resources/chromeos/login/screen_offline_message.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/chromeos/login/screen_gaia_signin.js
diff --git a/chrome/browser/resources/chromeos/login/screen_gaia_signin.js b/chrome/browser/resources/chromeos/login/screen_gaia_signin.js
index a8a4aaa659cc6112325b4bf1320ac43bd8d431d9..f8091341165c3d3ecb9e46536487404d31e660ee 100644
--- a/chrome/browser/resources/chromeos/login/screen_gaia_signin.js
+++ b/chrome/browser/resources/chromeos/login/screen_gaia_signin.js
@@ -32,6 +32,12 @@ cr.define('login', function() {
// Authentication extension's start page URL.
extension_url_: null,
+ // Number of times that we reload extension frame.
+ retryCount_: 0,
+
+ // Timer id of pending retry.
+ retryTimer_: undefined,
+
/** @inheritDoc */
decorate: function() {
$('createAccount').innerHTML = localStrings.getStringF(
@@ -126,6 +132,7 @@ cr.define('login', function() {
Oobe.getInstance().headerHidden = false;
this.loading = true;
+ this.clearRetry_();
},
/**
@@ -153,6 +160,7 @@ cr.define('login', function() {
} else if (msg.method == 'loginUILoaded' && this.isAuthExtMessage_(e)) {
$('offline-message').update();
this.loading = false;
+ this.clearRetry_();
chrome.send('loginWebuiReady');
}
},
@@ -165,6 +173,46 @@ cr.define('login', function() {
// Reload and show the sign-in UI if needed.
if (takeFocus)
Oobe.showSigninUI();
+ },
+
+ /**
+ * Clears retry data.
+ * @private
+ */
+ clearRetry_: function() {
+ this.retryCount_ = 0;
+ if (this.retryTimer_) {
+ window.clearTimeout(this.retryTimer_);
+ this.retryTimer_ = undefined;
+ }
+ },
+
+ /**
+ * Reloads extension frame.
+ * @private
+ */
+ doReload_: function() {
+ console.log('Reload auth extension frame.');
+ $('signin-frame').src = this.extension_url_;
+ this.retryTimer_ = undefined;
+ },
+
+ /**
+ * Schedules extension frame reload.
+ */
+ schdeduleRetry: function() {
+ if (this.retryCount_ >= 3 || this.retryTimer_)
+ return;
+
+ const MAX_DELAY = 7200; // 7200 seconds (i.e. 2 hours)
+ const MIN_DELAY = 1; // 1 second
+
+ var delay = Math.pow(2, this.retryCount_) * 5;
+ delay = Math.max(MIN_DELAY, Math.min(MAX_DELAY, delay)) * 1000;
+
+ ++this.retryCount_;
+ this.retryTimer_ = window.setTimeout(this.doReload_.bind(this), delay);
+ console.log('GaiaSigninScreen schdeduleRetry in ' + delay + 'ms.');
}
};
« no previous file with comments | « no previous file | chrome/browser/resources/chromeos/login/screen_offline_message.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698