Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6304)

Unified Diff: chrome/browser/resources/settings/certificate_manager_page/certificate_manager_page.js

Issue 1815733004: MD Settings: Certificate manager, hooking up all dialogs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@certificates_basic_ui
Patch Set: Adding more tests. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/settings/certificate_manager_page/certificate_manager_page.js
diff --git a/chrome/browser/resources/settings/certificate_manager_page/certificate_manager_page.js b/chrome/browser/resources/settings/certificate_manager_page/certificate_manager_page.js
index 14fb032f83cf5b9def5da5c34278b132d9a30647..7614bd555b375efb1888d31847d6210394df43b5 100644
--- a/chrome/browser/resources/settings/certificate_manager_page/certificate_manager_page.js
+++ b/chrome/browser/resources/settings/certificate_manager_page/certificate_manager_page.js
@@ -48,6 +48,40 @@ Polymer({
value: settings.CertificateType,
readonly: true,
},
+
+ /** @private */
+ showCaTrustEditDialog_: Boolean,
+
+ /** @private */
+ showDeleteConfirmationDialog_: Boolean,
+
+ /** @private */
+ showPasswordEncryptionDialog_: Boolean,
+
+ /** @private */
+ showPasswordDecryptionDialog_: Boolean,
+
+ /** @private */
+ showErrorDialog_: Boolean,
+
+ /**
+ * The model to be passed to dialogs that refer to a given certificate.
+ * @private {?CertificateSubnode}
+ */
+ dialogModel_: Object,
+
+ /**
+ * The certificate type to be passed to dialogs that refer to a given
+ * certificate.
+ * @private {?settings.CertificateType}
+ */
+ dialogModelCertificateType_: String,
+
+ /**
+ * The model to be passed to the error dialog.
+ * @private {null|!CertificatesError|!CertificatesImportError}
+ */
+ errorDialogModel_: Object,
},
/** @override */
@@ -65,4 +99,62 @@ Polymer({
isTabSelected_: function(selectedIndex, tabIndex) {
return selectedIndex == tabIndex;
},
+
+ /** @override */
+ ready: function() {
+ this.addEventListener(settings.CertificateActionEvent, function(event) {
+ this.dialogModel_ = event.detail.subnode;
+ this.dialogModelCertificateType_ = event.detail.certificateType;
+ if (event.detail.action == settings.CertificateAction.EDIT) {
+ this.openDialog_(
+ 'settings-ca-trust-edit-dialog',
+ 'showCaTrustEditDialog_');
+ } else if (event.detail.action == settings.CertificateAction.DELETE) {
+ this.openDialog_(
+ 'settings-certificate-delete-confirmation-dialog',
+ 'showDeleteConfirmationDialog_');
+ } else if (event.detail.action ==
+ settings.CertificateAction.EXPORT_PERSONAL) {
+ this.openDialog_(
+ 'settings-certificate-password-encryption-dialog',
+ 'showPasswordEncryptionDialog_');
+ } else if (event.detail.action ==
+ settings.CertificateAction.IMPORT_PERSONAL) {
+ this.openDialog_(
+ 'settings-certificate-password-decryption-dialog',
+ 'showPasswordDecryptionDialog_');
+ } else if (event.detail.action == settings.CertificateAction.IMPORT_CA) {
+ // TODO(dpapad): Implement this.
+ }
+ event.stopPropagation();
+ }.bind(this));
+ },
+
+ /**
+ * Opens a dialog and registers listeners for
+ * 1) Removing the dialog from the DOM once is closed.
+ * 2) Showing an error dialog if necessary.
+ * The listeners are destroyed when the dialog is removed (because of
+ * 'restamp');
+ *
+ * @param {string} dialogTagName The tag name of the dialog to be shown.
+ * @param {string} domIfBooleanName The name of the boolean variable
+ * corresponding to the dialog.
+ * @private
+ */
+ openDialog_: function(dialogTagName, domIfBooleanName) {
tommycli 2016/03/23 19:28:04 The comment above really helps me understand it!
dpapad 2016/03/24 22:06:10 Great!
+ this.set(domIfBooleanName, true);
+ this.async(function() {
+ var dialog = this.$$(dialogTagName);
+ dialog.addEventListener('iron-overlay-closed', function() {
+ this.set(domIfBooleanName, false);
+ }.bind(this));
+ dialog.addEventListener('certificates-error', function(event) {
+ this.errorDialogModel_ = event.detail;
+ this.openDialog_(
+ 'settings-certificates-error-dialog',
+ 'showErrorDialog_');
+ }.bind(this));
+ }.bind(this));
+ },
});

Powered by Google App Engine
This is Rietveld 408576698