Home | History | Annotate | Download | only in gaia_auth
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 /**
      6  * @fileoverview Code injected into Gaia sign in page for inline sign in flow.
      7  * On load stop, it receives a message from the embedder extension with a
      8  * JavaScript reference to the embedder window. Then upon submit of the sign
      9  * in form, it posts the username and password to the embedder window.
     10  * Prototype Only.
     11  */
     12 
     13 (function() {
     14   var extWindow;
     15 
     16   var $ = function(id) { return document.getElementById(id); };
     17   var gaiaLoginForm = $('gaia_loginform');
     18 
     19   var onMessage = function(e) {
     20     extWindow = e.source;
     21   };
     22   window.addEventListener('message', onMessage);
     23 
     24   var onLoginSubmit = function(e) {
     25     if (!extWindow) {
     26       console.log('ERROR: no initial message received from the gaia ext');
     27       e.preventDefault();
     28       return;
     29     }
     30 
     31     var checkboxElement = $('advanced-box');
     32     var chooseWhatToSync = checkboxElement && checkboxElement.checked;
     33     var msg = {method: 'attemptLogin',
     34                email: gaiaLoginForm['Email'].value,
     35                password: gaiaLoginForm['Passwd'].value,
     36                attemptToken: new Date().getTime(),
     37                chooseWhatToSync: chooseWhatToSync};
     38 
     39     extWindow.postMessage(msg, 'chrome://chrome-signin');
     40     console.log('Credentials sent');
     41 
     42     return;
     43   };
     44   // Overrides the submit handler for the gaia login form.
     45   gaiaLoginForm.onsubmit = onLoginSubmit;
     46 })();
     47