blob: 2c72347c441728544370d5d05661a9e42e35257d [file] [log] [blame]
// Copyright 2015 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-autofill-page' is the settings page containing settings for
* passwords, payment methods and addresses.
*/
import 'chrome://resources/cr_elements/cr_link_row/cr_link_row.js';
import 'chrome://resources/cr_elements/shared_vars_css.m.js';
import '../prefs/prefs.js';
import '../settings_page/settings_animated_pages.js';
import '../settings_page/settings_subpage.js';
import '../settings_shared_css.js';
import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {loadTimeData} from '../i18n_setup.js';
import {PrefsBehavior} from '../prefs/prefs_behavior.js';
import {routes} from '../route.js';
import {Router} from '../router.js';
import {PasswordCheckBehavior} from './password_check_behavior.js';
import {PasswordManagerImpl} from './password_manager_proxy.js';
Polymer({
is: 'settings-autofill-page',
_template: html`{__html_template__}`,
behaviors: [
PrefsBehavior,
PasswordCheckBehavior,
],
properties: {
/** @private Filter applied to passwords and password exceptions. */
passwordFilter_: String,
/** @private {!Map<string, string>} */
focusConfig_: {
type: Object,
value() {
const map = new Map();
if (routes.PASSWORDS) {
map.set(routes.PASSWORDS.path, '#passwordManagerButton');
}
if (routes.PAYMENTS) {
map.set(routes.PAYMENTS.path, '#paymentManagerButton');
}
if (routes.ADDRESSES) {
map.set(routes.ADDRESSES.path, '#addressesManagerButton');
}
return map;
},
},
/** @private */
passwordManagerSubLabel_: {
type: String,
computed: 'computePasswordManagerSubLabel_(compromisedPasswordsCount)',
},
},
/**
* Shows the manage addresses sub page.
* @param {!Event} event
* @private
*/
onAddressesClick_(event) {
Router.getInstance().navigateTo(routes.ADDRESSES);
},
/**
* Shows the manage payment methods sub page.
* @private
*/
onPaymentsClick_() {
Router.getInstance().navigateTo(routes.PAYMENTS);
},
/**
* Shows a page to manage passwords.
* @private
*/
onPasswordsClick_() {
PasswordManagerImpl.getInstance().recordPasswordsPageAccessInSettings();
Router.getInstance().navigateTo(routes.PASSWORDS);
},
/**
* @return {string} The sub-title message indicating the result of password
* check.
* @private
*/
computePasswordManagerSubLabel_() {
return this.leakedPasswords.length > 0 ? this.compromisedPasswordsCount :
'';
},
});