• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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