blob: 281391b5ac1c825432a2c798f9933ee33db61942 [file] [log] [blame]
// 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 A dialog prompting the user to encrypt a personal certificate
* before it is exported to disk.
*/
Polymer({
is: 'settings-certificate-password-encryption-dialog',
properties: {
/** @private {!settings.CertificatesBrowserProxy} */
browserProxy_: Object,
/** @type {!CertificateSubnode} */
model: Object,
/** @private */
password_: {
type: String,
value: '',
},
/** @private */
confirmPassword_: {
type: String,
value: '',
},
},
/** @override */
ready: function() {
this.browserProxy_ = settings.CertificatesBrowserProxyImpl.getInstance();
},
/** @override */
attached: function() {
/** @type {!CrDialogElement} */ (this.$.dialog).showModal();
},
/** @private */
onCancelTap_: function() {
/** @type {!CrDialogElement} */ (this.$.dialog).close();
},
/** @private */
onOkTap_: function() {
this.browserProxy_.exportPersonalCertificatePasswordSelected(
this.password_).then(
function() {
this.$.dialog.close();
}.bind(this),
/** @param {!CertificatesError} error */
function(error) {
this.$.dialog.close();
this.fire('certificates-error', {error: error, anchor: null});
}.bind(this));
},
/**
* @param {!KeyboardEvent} e
* @private
*/
onKeypress_: function(e) {
if (e.key == 'Enter' && !this.$.ok.disabled)
this.onOkTap_();
},
/** @private */
validate_: function() {
var isValid = this.password_ != '' &&
this.password_ == this.confirmPassword_;
this.$.ok.disabled = !isValid;
},
});