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

Unified Diff: ui/webui/resources/cr_elements/cr_dialog/cr_dialog.js

Issue 2180823004: Migrate <cr-dialog> from PaperDialogBehavior to native <dialog>. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments. Created 4 years, 5 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: 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..29d7ea913708d7f42bf51bb7d33d7e854927c7f4 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,29 @@
// 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' callback to determine whether it was canceled or just closed,
michaelpg 2016/07/28 16:50:50 "callback" is confusing here, since close is also
Dan Beam 2016/07/28 17:31:43 that's fine by me
+ * 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);
michaelpg 2016/07/28 16:50:50 shouldn't this provide the returnValue argument ''
Dan Beam 2016/07/28 17:31:43 undefined results in '' as a returnValue (of the d
dpapad 2016/07/28 18:47:34 Actually after trying this manually it turns out t
},
- behaviors: [Polymer.PaperDialogBehavior],
+ /**
+ * @param {string=} opt_returnValue
+ * @override
+ */
+ close: function(opt_returnValue) {
michaelpg 2016/07/28 16:50:50 it looks like nobody ever uses this parameter -- w
Dan Beam 2016/07/28 17:31:43 we're overriding native HTMLDialogElement#close
+ HTMLDialogElement.prototype.close.call(this, 'success');
michaelpg 2016/07/28 16:50:50 why include opt_returnValue only to discard it?
Dan Beam 2016/07/28 17:31:43 see above
+ },
/** @return {!PaperIconButtonElement} */
getCloseButton: function() {

Powered by Google App Engine
This is Rietveld 408576698