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

Side by Side Diff: ui/webui/resources/cr_elements/cr_dialog/cr_dialog.js

Issue 2249933002: WebUI cr-dialog: Cancel dialog on any 'popstate' event. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview 'cr-dialog' is a component for showing a modal dialog. If the 6 * @fileoverview 'cr-dialog' is a component for showing a modal dialog. If the
7 * dialog is closed via close(), a 'close' event is fired. If the dialog is 7 * dialog is closed via close(), a 'close' event is fired. If the dialog is
8 * canceled via cancel(), a 'cancel' event is fired followed by a 'close' event. 8 * canceled via cancel(), a 'cancel' event is fired followed by a 'close' event.
9 * Additionally clients can inspect the dialog's |returnValue| property inside 9 * Additionally clients can inspect the dialog's |returnValue| property inside
10 * the 'close' event listener to determine whether it was canceled or just 10 * the 'close' event listener to determine whether it was canceled or just
11 * closed, where a truthy value means success, and a falsy value means it was 11 * closed, where a truthy value means success, and a falsy value means it was
12 * canceled. 12 * canceled.
13 */ 13 */
14 Polymer({ 14 Polymer({
15 is: 'cr-dialog', 15 is: 'cr-dialog',
16 extends: 'dialog', 16 extends: 'dialog',
17 17
18 /** @override */
19 created: function() {
20 // If the active history entry changes (i.e. user clicks back button),
21 // all open dialogs should be cancelled.
22 window.addEventListener('popstate', function() {
Dan Beam 2016/08/16 01:30:43 tsergeant@/calamity@/mahmadi@: does this behavior
23 if (this.open)
24 this.cancel();
25 }.bind(this));
26 },
27
18 cancel: function() { 28 cancel: function() {
19 this.fire('cancel'); 29 this.fire('cancel');
20 HTMLDialogElement.prototype.close.call(this, ''); 30 HTMLDialogElement.prototype.close.call(this, '');
21 }, 31 },
22 32
23 /** 33 /**
24 * @param {string=} opt_returnValue 34 * @param {string=} opt_returnValue
25 * @override 35 * @override
26 */ 36 */
27 close: function(opt_returnValue) { 37 close: function(opt_returnValue) {
28 HTMLDialogElement.prototype.close.call(this, 'success'); 38 HTMLDialogElement.prototype.close.call(this, 'success');
29 }, 39 },
30 40
31 /** @return {!PaperIconButtonElement} */ 41 /** @return {!PaperIconButtonElement} */
32 getCloseButton: function() { 42 getCloseButton: function() {
33 return this.$.close; 43 return this.$.close;
34 }, 44 },
35 }); 45 });
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698