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

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

Issue 789353004: Host Chrome OS GAIA signin page in webview (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase + switch to messages instead of listener interface Created 5 years, 11 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/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 89e6671656c1e7f9258a06aed4b31464307b4673..55610e848035dfda45d0ecb54e694e085a9b6ae0 100644
--- a/chrome/browser/resources/chromeos/login/screen_gaia_signin.js
+++ b/chrome/browser/resources/chromeos/login/screen_gaia_signin.js
@@ -6,8 +6,6 @@
* @fileoverview Oobe signin screen implementation.
*/
-<include src="../../gaia_auth_host/gaia_auth_host.js">
-
login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
// Gaia loading time after which error message must be displayed and
// lazy portal check should be fired.
@@ -89,9 +87,28 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
*/
samlPasswordConfirmAttempt_: 0,
+ /**
+ * Whether we should show webview based signin.
+ * @type {boolean}
+ * @private
+ */
+ isWebviewSignin: false,
+
/** @override */
decorate: function() {
- this.gaiaAuthHost_ = new cr.login.GaiaAuthHost($('signin-frame'));
+ this.isWebviewSignin = loadTimeData.getValue('isWebviewSignin');
+ if (this.isWebviewSignin) {
+ // Replace iframe with webview.
+ var webview = this.ownerDocument.createElement('webview');
+ webview.id = 'signin-frame';
+ webview.name = 'signin-frame';
+ // TODO(dpolukhin): webview doesn't load page in hidden state,
+ // use curtain instead.
+ $('signin-frame').parentNode.replaceChild(webview, $('signin-frame'));
+ this.gaiaAuthHost_ = new cr.login.GaiaAuthHost(webview);
+ } else {
+ this.gaiaAuthHost_ = new cr.login.GaiaAuthHost($('signin-frame'));
+ }
this.gaiaAuthHost_.addEventListener(
'ready', this.onAuthReady_.bind(this));
this.gaiaAuthHost_.confirmPasswordCallback =
@@ -106,13 +123,14 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
this.samlApiUsed_.bind(this);
this.gaiaAuthHost_.addEventListener('authFlowChange',
this.onAuthFlowChange_.bind(this));
+ this.gaiaAuthHost_.addEventListener('authCompleted',
+ this.onAuthCompletedMessage_.bind(this));
$('enterprise-info-hint-link').addEventListener('click', function(e) {
chrome.send('launchHelpApp', [HELP_TOPIC_ENTERPRISE_REPORTING]);
e.preventDefault();
});
-
this.updateLocalizedContent();
},
@@ -148,7 +166,10 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
*/
showLoadingUI_: function(show) {
$('gaia-loading').hidden = !show;
- this.gaiaAuthHost_.frame.hidden = show;
+ if (!this.isWebviewSignin) {
+ // TODO(dpolukhin): proper implement curtain for webview signin.
+ this.gaiaAuthHost_.frame.hidden = show;
+ }
$('signin-right').hidden = show;
$('enterprise-info-container').hidden = show;
$('gaia-signin-divider').hidden = show;
@@ -524,6 +545,15 @@ login.createScreen('GaiaSigninScreen', 'gaia-signin', function() {
},
/**
+ * Invoked when onAuthCompleted message received.
+ * @param {!Object} e Payload of the received HTML5 message.
+ * @private
+ */
+ onAuthCompletedMessage_: function(e) {
+ this.onAuthCompleted_(e.detail);
+ },
+
+ /**
* Clears input fields and switches to input mode.
* @param {boolean} takeFocus True to take focus.
* @param {boolean} forceOnline Whether online sign-in should be forced.

Powered by Google App Engine
This is Rietveld 408576698