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

Unified Diff: chrome/browser/resources/md_user_manager/user_manager_dialog.js

Issue 2024233003: MD User Manager: Refactors existing dialogs in User Manager into <user-manager-dialog> (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@md-user-manager-locked-test
Patch Set: Updates backdrop's opacity Created 4 years, 6 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/md_user_manager/user_manager_dialog.js
diff --git a/chrome/browser/resources/md_user_manager/user_manager_dialog.js b/chrome/browser/resources/md_user_manager/user_manager_dialog.js
new file mode 100644
index 0000000000000000000000000000000000000000..24d610212f6d0dc027caf9fb5961b59f68a49652
--- /dev/null
+++ b/chrome/browser/resources/md_user_manager/user_manager_dialog.js
@@ -0,0 +1,72 @@
+// 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 'user-manager-dialog' is a modal dialog for the user manager.
+ */
+Polymer({
+ is: 'user-manager-dialog',
+
+ behaviors: [Polymer.PaperDialogBehavior],
+
+ properties: {
+ /** @override */
+ noCancelOnOutsideClick: {
+ type: Boolean,
+ value: true
+ },
+
+ /** @override */
+ withBackdrop: {
+ type: Boolean,
+ value: true
+ },
+
+ /**
+ * The first node that can receive focus.
+ * @type {Node}
dpapad 2016/06/08 23:05:12 Can this be null? If not, let's change it to !Node
Moe 2016/06/09 14:10:03 Done.
+ */
+ firstFocusableNode: {
+ type: Object,
+ value: function() { return this.$.close; },
+ observer: 'firstFocusableNodeChanged_'
+ },
+
+ /**
+ * The last node that can receive focus.
+ * @type {Node}
+ */
+ lastFocusableNode: {
+ type: Object,
+ value: function() { return this.$.close; },
+ observer: 'lastFocusableNodeChanged_'
+ }
+ },
+
+ /**
+ * Returns the first and the last focusable elements in order to wrap the
+ * focus for the dialog in Polymer.PaperDialogBehavior.
+ * @override
+ * @type {Array<Node>}
dpapad 2016/06/08 23:05:12 Should this be !Array<!Node>
Moe 2016/06/09 14:10:03 Done.
+ */
+ get _focusableNodes() {
+ return [this.firstFocusableNode, this.lastFocusableNode];
+ },
+
+ /**
+ * Observer for firstFocusableNode. Updates __firstFocusableNode in
+ * Polymer.PaperDialogBehavior.
+ */
+ firstFocusableNodeChanged_: function(newValue) {
+ this.__firstFocusableNode = newValue;
dpapad 2016/06/08 23:05:12 This method and the next one seem to modify "priva
Moe 2016/06/09 14:10:03 iron-overlay-behavior wrap the focus for the overl
dpapad 2016/06/09 17:02:48 Thanks for the explanation.
+ },
+
+ /**
+ * Observer for lastFocusableNodeChanged_. Updates __lastFocusableNode in
+ * Polymer.PaperDialogBehavior.
+ */
+ lastFocusableNodeChanged_: function(newValue) {
+ this.__lastFocusableNode = newValue;
+ }
+});

Powered by Google App Engine
This is Rietveld 408576698