Index: chrome/browser/resources/options/pref_ui.js |
diff --git a/chrome/browser/resources/options/pref_ui.js b/chrome/browser/resources/options/pref_ui.js |
index 3b85d137cd5072b8244daf125c64d44c7273a6eb..f20eab20cd845c9f0d67e7befb01509b21d45d2b 100644 |
--- a/chrome/browser/resources/options/pref_ui.js |
+++ b/chrome/browser/resources/options/pref_ui.js |
@@ -13,17 +13,28 @@ cr.define('options', function() { |
* @param {!Event} event The pref change event. |
*/ |
function updateElementState_(el, event) { |
- el.managed = event.value && event.value['managed'] != undefined ? |
- event.value['managed'] : false; |
- |
- // Managed UI elements can only be disabled as a result of being |
- // managed. They cannot be enabled as a result of a pref being |
- // unmanaged. |
- if (el.managed) |
- el.disabled = true; |
+ el.managed = false; |
+ |
+ if (!event.value) |
+ return; |
+ |
+ el.managed = event.value['managed']; |
+ |
+ if (event.value['extensionControlled']) { |
+ // Set an explanatory title attribute on the nearest containing <label> |
+ // element. |
+ var node = el; |
+ while (node) { |
Evan Stade
2011/07/06 19:44:57
use findAncestor from util.js
Bernhard Bauer
2011/07/06 19:55:57
Ahh, nice. Done.
|
+ if (node instanceof HTMLLabelElement) { |
+ node.title = templateData.extensionManagedPrefsTitle; |
+ break; |
+ } |
+ node = node.parentNode; |
+ } |
+ } |
// Disable UI elements if backend says so. |
- if (!el.disabled && event.value && event.value['disabled']) |
+ if (event.value['disabled']) |
el.disabled = true; |
Evan Stade
2011/07/06 19:44:57
does this work?
el.disabled = event.value['disabl
Bernhard Bauer
2011/07/06 19:55:57
I think elements could already be disabled for oth
Evan Stade
2011/07/06 20:12:43
true, but what if a user uninstalls an extension -
Bernhard Bauer
2011/07/07 08:45:56
Done.
|
} |