Index: chrome/browser/resources/gaia_auth/inline_injected.js |
diff --git a/chrome/browser/resources/gaia_auth/inline_injected.js b/chrome/browser/resources/gaia_auth/inline_injected.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b0b847381605721df5b9cdd51002df55a5a6a6bd |
--- /dev/null |
+++ b/chrome/browser/resources/gaia_auth/inline_injected.js |
@@ -0,0 +1,46 @@ |
+// Copyright 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+/** |
+ * @fileoverview Code injected into Gaia sign in page for inline sign in flow. |
+ * On load stop, it receives a message from the embedder extension with a |
+ * JavaScript reference to the embedder window. Then upon submit of the sign |
+ * in form, it posts the username and password to the embedder window. |
+ * Prototype Only. |
+ */ |
+ |
+(function() { |
+ var extWindow; |
+ |
+ var $ = function(id) { return document.getElementById(id); }; |
+ var gaiaLoginForm = $('gaia_loginform'); |
+ |
+ var onMessage = function(e) { |
+ extWindow = e.source; |
+ }; |
+ window.addEventListener('message', onMessage); |
+ |
+ var onLoginSubmit = function(e) { |
+ if (!extWindow) { |
+ console.log('ERROR: no initial message received from the gaia ext'); |
+ e.preventDefault(); |
+ return; |
+ } |
+ |
+ var checkboxElement = $('advanced-box'); |
+ var chooseWhatToSync = checkboxElement && checkboxElement.checked; |
+ var msg = {method: 'attemptLogin', |
+ email: gaiaLoginForm['Email'].value, |
+ password: gaiaLoginForm['Passwd'].value, |
+ attemptToken: new Date().getTime(), |
+ chooseWhatToSync: chooseWhatToSync}; |
+ |
+ extWindow.postMessage(msg, 'chrome://chrome-signin'); |
+ console.log('Credentials sent'); |
+ |
+ return; |
+ }; |
+ // Overrides the submit handler for the gaia login form. |
+ gaiaLoginForm.onsubmit = onLoginSubmit; |
+})(); |