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

Unified Diff: chrome/browser/resources/settings/controls/controlled_button.js

Issue 2178273002: MD Settings: add a <controlled-button> that uses prefs to disable itself (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: asdf 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: chrome/browser/resources/settings/controls/controlled_button.js
diff --git a/chrome/browser/resources/settings/controls/controlled_button.js b/chrome/browser/resources/settings/controls/controlled_button.js
new file mode 100644
index 0000000000000000000000000000000000000000..326f50bde675811ccb6109f376e0ce85581e622e
--- /dev/null
+++ b/chrome/browser/resources/settings/controls/controlled_button.js
@@ -0,0 +1,39 @@
+// 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.
+
+Polymer({
+ is: 'controlled-button',
+
+ behaviors: [CrPolicyPrefBehavior, PrefControlBehavior],
+
+ properties: {
+ disabled: {
+ type: Boolean,
+ computed: 'computeDisabled_(pref)',
+ reflectToAttribute: true,
+ },
+ },
+
+ /**
+ * @param {!chrome.settingsPrivate.PrefObject} pref
+ * @return {boolean} Whether the button is controlled.
+ * @private
+ */
+ computeDisabled_: function(pref) {
+ return this.isPrefPolicyControlled(pref);
+ },
+
+ /**
+ * @param {!Event} e
+ * @private
+ */
+ onIndicatorTap_: function(e) {
+ // :host([disabled]) applies pointer-events: none;, but we want mouse hover
+ // on indicators to work. So we selectively re-enable pointer-events on just
+ // the indicator, but disallow taps and clicks from triggering any on-tap on
+ // the host itself (i.e. <controlled-button on-tap="...">).
+ e.preventDefault();
+ e.stopPropagation();
+ },
+});

Powered by Google App Engine
This is Rietveld 408576698