summaryrefslogtreecommitdiffstats
path: root/chrome/browser/resources/options/passwords_exceptions.js
blob: f325b1d00acb6ba4c0d36d59d93d13d849ec0b32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
// Copyright (c) 2010 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.

cr.define('options', function() {

  var OptionsPage = options.OptionsPage;

  /////////////////////////////////////////////////////////////////////////////
  // PasswordsExceptions class:

  /**
   * Encapsulated handling of password and exceptions page.
   * @constructor
   */
  function PasswordsExceptions() {
    this.activeNavTab = null;
    OptionsPage.call(this, 'passwordsExceptions',
                     templateData.savedPasswordsExceptionsTitle,
                     'passwordsExceptionsPage');
  }

  cr.addSingletonGetter(PasswordsExceptions);

  PasswordsExceptions.prototype = {
    __proto__: OptionsPage.prototype,

    initializePage: function() {
      OptionsPage.prototype.initializePage.call(this);

      options.passwordsExceptions.PasswordsListArea.decorate($('passwordsArea'));
      options.passwordsExceptions.PasswordExceptionsListArea.decorate(
          $('passwordExceptionsArea'));

      $('password-exceptions-nav-tab').onclick = function() {
        OptionsPage.showTab($('password-exceptions-nav-tab'));
        passwordExceptionsList.redraw();
      }
    },

    setSavedPasswordsList_: function(entries) {
      savedPasswordsList.clear();
      for (var i = 0; i < entries.length; i++) {
        savedPasswordsList.addEntry(entries[i]);
      }
    },

    setPasswordExceptionsList_: function(entries) {
      passwordExceptionsList.clear();
      for (var i = 0; i < entries.length; i++) {
        passwordExceptionsList.addEntry(entries[i]);
      }
    },

  };

  PasswordsExceptions.load = function() {
    chrome.send('loadLists');
  };

  /**
   * Call to remove a saved password.
   * @param rowIndex indicating the row to remove.
   */
  PasswordsExceptions.removeSavedPassword = function(rowIndex) {
      chrome.send('removeSavedPassword', [String(rowIndex)]);
  };

  /**
   * Call to remove a password exception.
   * @param rowIndex indicating the row to remove.
   */
  PasswordsExceptions.removePasswordException = function(rowIndex) {
      chrome.send('removePasswordException', [String(rowIndex)]);
  };


  /**
   * Call to remove all saved passwords.
   * @param tab contentType of the tab currently on.
   */
  PasswordsExceptions.removeAllPasswords = function() {
    chrome.send('removeAllSavedPasswords');
  };

  /**
   * Call to remove all saved passwords.
   * @param tab contentType of the tab currently on.
   */
  PasswordsExceptions.removeAllPasswordExceptions = function() {
    chrome.send('removeAllPasswordExceptions');
  };

  PasswordsExceptions.showSelectedPassword = function(index) {
    chrome.send('showSelectedPassword', [String(index)]);
  };

  PasswordsExceptions.setSavedPasswordsList = function(entries) {
    PasswordsExceptions.getInstance().setSavedPasswordsList_(entries);
  };

  PasswordsExceptions.setPasswordExceptionsList = function(entries) {
    PasswordsExceptions.getInstance().setPasswordExceptionsList_(entries);
  };

  PasswordsExceptions.selectedPasswordCallback = function(password) {
    passwordsArea.displayReturnedPassword(password);
  };

  // Export
  return {
    PasswordsExceptions: PasswordsExceptions
  };

});