| // 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; |
| })(); |