Index: chrome/browser/resources/gaia_auth/background.js |
diff --git a/chrome/browser/resources/gaia_auth/background.js b/chrome/browser/resources/gaia_auth/background.js |
index ffe0b0785871f96bee7a2357e42d142266732860..db94085fbbb3d9331429507e0933112add22d63e 100644 |
--- a/chrome/browser/resources/gaia_auth/background.js |
+++ b/chrome/browser/resources/gaia_auth/background.js |
@@ -119,6 +119,10 @@ |
// 'google-accounts-signin'. |
email_: null, |
+ // Gaia Id of the newly authenticated user based on the gaia response |
+ // header 'google-accounts-signin'. |
+ gaiaId_: null, |
+ |
// Session index of the newly authenticated user based on the gaia response |
// header 'google-accounts-signin'. |
sessionIndex_: null, |
@@ -204,7 +208,7 @@ |
onCompleted: function(details) { |
// Only monitors requests in the gaia frame whose parent frame ID must be |
// positive. |
- if (!this.isDesktopFlow_ || details.parentFrameId <= 0) |
+ if (details.parentFrameId <= 0) |
return; |
if (details.url.lastIndexOf(backgroundBridgeManager.CONTINUE_URL_BASE, 0) == |
@@ -213,11 +217,12 @@ |
if (details.url.indexOf('ntp=1') >= 0) |
skipForNow = true; |
- // TOOD(guohui): Show password confirmation UI. |
+ // TOOD(guohui): For desktop SAML flow, show password confirmation UI. |
var passwords = this.onGetScrapedPasswords_(); |
var msg = { |
'name': 'completeLogin', |
'email': this.email_, |
+ 'gaiaId': this.gaiaId_, |
'password': passwords[0], |
'sessionIndex': this.sessionIndex_, |
'skipForNow': skipForNow |
@@ -262,11 +267,7 @@ |
onHeadersReceived: function(details) { |
var headers = details.responseHeaders; |
- if (this.isDesktopFlow_ && |
- this.gaiaUrl_ && |
- details.url.lastIndexOf(this.gaiaUrl_) == 0) { |
- // TODO(xiyuan, guohui): CrOS should reuse the logic below for reading the |
- // email for SAML users and cut off the /ListAccount call. |
+ if (this.gaiaUrl_ && details.url.lastIndexOf(this.gaiaUrl_) == 0) { |
for (var i = 0; headers && i < headers.length; ++i) { |
if (headers[i].name.toLowerCase() == 'google-accounts-signin') { |
var headerValues = headers[i].value.toLowerCase().split(','); |
@@ -277,6 +278,7 @@ |
}); |
// Remove "" around. |
this.email_ = signinDetails['email'].slice(1, -1); |
+ this.gaiaId_ = signinDetails['obfuscatedid'].slice(1, -1); |
this.sessionIndex_ = signinDetails['sessionindex']; |
break; |
} |