| Index: chrome/browser/resources/settings/people_page/quick_unlock_authenticate.js
|
| diff --git a/chrome/browser/resources/settings/people_page/quick_unlock_authenticate.js b/chrome/browser/resources/settings/people_page/quick_unlock_authenticate.js
|
| deleted file mode 100644
|
| index 8fed447b6aa445c17d4759fab4c15a3fef329c23..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/resources/settings/people_page/quick_unlock_authenticate.js
|
| +++ /dev/null
|
| @@ -1,155 +0,0 @@
|
| -// Copyright 2016 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
|
| - *
|
| - * 'settings-quick-unlock-authenticate' shows a password input prompt to the
|
| - * user. It validates the password is correct. Once the user has entered their
|
| - * account password, the page navigates to the quick unlock setup methods page.
|
| - *
|
| - * This element provides a wrapper around chrome.quickUnlockPrivate.setModes
|
| - * which has a prebound account password (the |set-modes| property). The account
|
| - * password by itself is not available for other elements to access.
|
| - *
|
| - * Example:
|
| - *
|
| - * <settings-quick-unlock-authenticate
|
| - * set-modes="[[setModes]]"
|
| - * profile-name="[[profileName_]]">
|
| - * </settings-quick-unlock-authenticate>
|
| - */
|
| -
|
| -(function() {
|
| -'use strict';
|
| -
|
| -/** @const */ var PASSWORD_ACTIVE_DURATION_MS = 10 * 60 * 1000; // Ten minutes.
|
| -/** @const */ var AUTOSUBMIT_DELAY_MS = 500; // .5 seconds
|
| -
|
| -/**
|
| - * Helper method that checks if |password| is valid.
|
| - * @param {string} password
|
| - * @param {function(boolean):void} onCheck
|
| - */
|
| -function checkAccountPassword_(password, onCheck) {
|
| - // We check the account password by trying to update the active set of quick
|
| - // unlock modes without changing any credentials.
|
| - chrome.quickUnlockPrivate.getActiveModes(function(modes) {
|
| - var credentials =
|
| - /** @type {!Array<string>} */ (Array(modes.length).fill(''));
|
| - chrome.quickUnlockPrivate.setModes(password, modes, credentials, onCheck);
|
| - });
|
| -}
|
| -
|
| -Polymer({
|
| - is: 'settings-quick-unlock-authenticate',
|
| -
|
| - behavior: [settings.RouteObserverBehavior],
|
| -
|
| - properties: {
|
| - /**
|
| - * A wrapper around chrome.quickUnlockPrivate.setModes with the account
|
| - * password already supplied. If this is null, the authentication screen
|
| - * needs to be redisplayed. This property will be cleared after
|
| - * PASSWORD_ACTIVE_DURATION_MS milliseconds.
|
| - */
|
| - setModes: {
|
| - type: Object,
|
| - notify: true
|
| - },
|
| -
|
| - /**
|
| - * Name of the profile.
|
| - */
|
| - profileName: String,
|
| -
|
| - /**
|
| - * The actual value of the password field. This is cleared whenever the
|
| - * authentication screen is not displayed so that the user's password is not
|
| - * easily available to an attacker. The actual password is stored as an
|
| - * captured closure variable inside of setModes.
|
| - * @private
|
| - */
|
| - password_: String,
|
| -
|
| - /**
|
| - * Helper property which marks password as valid/invalid.
|
| - * @private
|
| - */
|
| - passwordInvalid_: Boolean
|
| - },
|
| -
|
| - /** @protected */
|
| - currentRouteChanged: function() {
|
| - // Clear local state if this screen is not active so if this screen shows
|
| - // up again the user will get a fresh UI.
|
| - if (settings.getCurrentRoute() == settings.Route.QUICK_UNLOCK_AUTHENTICATE)
|
| - return;
|
| -
|
| - this.password_ = '';
|
| - this.passwordInvalid_ = false;
|
| - },
|
| -
|
| - /**
|
| - * Start or restart a timer to check the account password and move past the
|
| - * authentication screen.
|
| - * @private
|
| - */
|
| - startDelayedPasswordCheck_: function() {
|
| - clearTimeout(this.delayedPasswordCheckTimeout_);
|
| - this.delayedPasswordCheckTimeout_ =
|
| - setTimeout(this.checkPasswordNow_.bind(this), AUTOSUBMIT_DELAY_MS);
|
| - },
|
| -
|
| - /**
|
| - * Run the account password check right now. This will cancel any delayed
|
| - * check.
|
| - * @private
|
| - */
|
| - checkPasswordNow_: function() {
|
| - clearTimeout(this.delayedPasswordCheckTimeout_);
|
| - clearTimeout(this.clearAccountPasswordTimeout_);
|
| -
|
| - // The user might have started entering a password and then deleted it all.
|
| - // Do not submit/show an error in this case.
|
| - if (!this.password_) {
|
| - this.passwordInvalid_ = false;
|
| - return;
|
| - }
|
| -
|
| - function onPasswordChecked(valid) {
|
| - // The password might have been cleared during the duration of the
|
| - // getActiveModes call.
|
| - this.passwordInvalid_ = !valid && !!this.password_;
|
| -
|
| - if (valid) {
|
| - // Create the |this.setModes| closure and automatically clear it after
|
| - // |PASSWORD_ACTIVE_DURATION_MS|.
|
| - var password = this.password_;
|
| - this.password_ = '';
|
| -
|
| - this.setModes = function(modes, credentials, onComplete) {
|
| - chrome.quickUnlockPrivate.setModes(
|
| - password, modes, credentials, onComplete);
|
| - };
|
| -
|
| - function clearSetModes() {
|
| - // Reset the password so that any cached references to this.setModes
|
| - // will fail.
|
| - password = '';
|
| - this.setModes = null;
|
| - }
|
| -
|
| - this.clearAccountPasswordTimeout_ = setTimeout(
|
| - clearSetModes.bind(this), PASSWORD_ACTIVE_DURATION_MS);
|
| -
|
| - settings.navigateTo(settings.Route.QUICK_UNLOCK_CHOOSE_METHOD);
|
| - }
|
| - }
|
| -
|
| - checkAccountPassword_(this.password_, onPasswordChecked.bind(this));
|
| - }
|
| -});
|
| -
|
| -})();
|
|
|