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

Unified Diff: chrome/browser/resources/gaia_auth/background.js

Issue 138133006: Add credential passing API for Chrome OS SAML login (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed nit. Created 6 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
« no previous file with comments | « chrome/browser/chromeos/login/saml_browsertest.cc ('k') | chrome/browser/resources/gaia_auth/main.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 96f9e39c8588a90e7b7167c055e460de402d8c03..a571c10e8561c6e0d9fb885300f8adfb7e7cdb45 100644
--- a/chrome/browser/resources/gaia_auth/background.js
+++ b/chrome/browser/resources/gaia_auth/background.js
@@ -4,19 +4,29 @@
/**
* @fileoverview
- * The background script of auth extension that bridges the communications
- * between main and injected script.
- * Here are the communications along a SAML sign-in flow:
- * 1. Main script sends an 'onAuthStarted' signal to indicate the authentication
- * flow is started and SAML pages might be loaded from now on;
- * 2. After the 'onAuthTstarted' signal, injected script starts to scraping
- * all password fields on normal page (i.e. http or https) and sends page
- * load signal as well as the passwords to the background script here;
+ * A background script of the auth extension that bridges the communication
+ * between the main and injected scripts.
+ *
+ * Here is an overview of the communication flow when SAML is being used:
+ * 1. The main script sends the |startAuth| signal to this background script,
+ * indicating that the authentication flow has started and SAML pages may be
+ * loaded from now on.
+ * 2. A script is injected into each SAML page. The injected script sends three
+ * main types of messages to this background script:
+ * a) A |pageLoaded| message is sent when the page has been loaded. This is
+ * forwarded to the main script as |onAuthPageLoaded|.
+ * b) If the SAML provider supports the credential passing API, the API calls
+ * are sent to this backgroudn script as |apiCall| messages. These
+ * messages are forwarded unmodified to the main script.
+ * c) The injected script scrapes passwords. They are sent to this background
+ * script in |updatePassword| messages. The main script can request a list
+ * of the scraped passwords by sending the |getScrapedPasswords| message.
*/
/**
- * BackgroundBridge holds the main script's state and the scraped passwords
- * from the injected script to help the two collaborate.
+ * BackgroundBridge allows the main script and the injected script to
+ * collaborate. It forwards credentials API calls to the main script and
+ * maintains a list of scraped passwords.
*/
function BackgroundBridge() {
}
@@ -89,6 +99,8 @@ BackgroundBridge.prototype = {
this.channelInjected_ = new Channel();
this.channelInjected_.init(port);
this.channelInjected_.registerMessage(
+ 'apiCall', this.onAPICall_.bind(this));
+ this.channelInjected_.registerMessage(
'updatePassword', this.onUpdatePassword_.bind(this));
this.channelInjected_.registerMessage(
'pageLoaded', this.onPageLoaded_.bind(this));
@@ -141,6 +153,10 @@ BackgroundBridge.prototype = {
return Object.keys(passwords);
},
+ onAPICall_: function(msg) {
+ this.channelMain_.send(msg);
+ },
+
onUpdatePassword_: function(msg) {
if (!this.authStarted_)
return;
« no previous file with comments | « chrome/browser/chromeos/login/saml_browsertest.cc ('k') | chrome/browser/resources/gaia_auth/main.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698