Index: ui/webui/resources/cr_elements/cr_dialog/cr_dialog.js |
diff --git a/ui/webui/resources/cr_elements/cr_dialog/cr_dialog.js b/ui/webui/resources/cr_elements/cr_dialog/cr_dialog.js |
index 9c9d73fdb7eeaf95bb10574131a0d56d354a5b8b..5deb50cdea1c893c1fb7a77c852029fbd5397bd3 100644 |
--- a/ui/webui/resources/cr_elements/cr_dialog/cr_dialog.js |
+++ b/ui/webui/resources/cr_elements/cr_dialog/cr_dialog.js |
@@ -3,43 +3,30 @@ |
// found in the LICENSE file. |
/** |
- * @fileoverview 'cr-dialog' is a component for showing a modal dialog. |
+ * @fileoverview 'cr-dialog' is a component for showing a modal dialog. If the |
+ * dialog is closed via close(), a 'close' event is fired. If the dialog is |
+ * canceled via cancel(), a 'cancel' event is fired followed by a 'close' event. |
+ * Additionally clients can inspect the dialog's |returnValue| property inside |
+ * the 'close' event listener to determine whether it was canceled or just |
+ * closed, where a truthy value means success, and a falsy value means it was |
+ * canceled. |
*/ |
Polymer({ |
is: 'cr-dialog', |
+ extends: 'dialog', |
- properties: { |
- /** @override */ |
- noCancelOnOutsideClick: { |
- type: Boolean, |
- value: true, |
- }, |
- |
- /** @override */ |
- noCancelOnEscKey: { |
- type: Boolean, |
- value: false, |
- }, |
- |
- /** |
- * @type {!Element} |
- * @override |
- */ |
- sizingTarget: { |
- type: Element, |
- value: function() { |
- return assert(this.$$('.body-container')); |
- }, |
- }, |
- |
- /** @override */ |
- withBackdrop: { |
- type: Boolean, |
- value: true, |
- }, |
+ cancel: function() { |
+ this.fire('cancel'); |
+ HTMLDialogElement.prototype.close.call(this, ''); |
}, |
- behaviors: [Polymer.PaperDialogBehavior], |
+ /** |
+ * @param {string=} opt_returnValue |
+ * @override |
+ */ |
+ close: function(opt_returnValue) { |
+ HTMLDialogElement.prototype.close.call(this, 'success'); |
+ }, |
/** @return {!PaperIconButtonElement} */ |
getCloseButton: function() { |