Chromium Code Reviews| 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..b7b471105ecc64ce4a51889e2bfffe6e21bf94ce 100644 |
| --- a/chrome/browser/resources/options/pref_ui.js |
| +++ b/chrome/browser/resources/options/pref_ui.js |
| @@ -13,18 +13,34 @@ 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; |
| - |
| - // Disable UI elements if backend says so. |
| - if (!el.disabled && event.value && event.value['disabled']) |
| - el.disabled = true; |
| + el.managed = false; |
| + |
| + if (!event.value) |
| + return; |
| + |
| + el.managed = event.value['managed']; |
| + |
| + // If the value is controlled by an extension, set an explanatory title |
| + // attribute on the nearest containing <label> element. |
| + var label = findAncestor(el, function(node) { |
| + return (node instanceof HTMLLabelElement); |
| + }); |
| + if (label) { |
| + label.title = event.value['extensionControlled'] ? |
| + templateData.extensionManagedPrefsTitle : |
| + null; |
|
Evan Stade
2011/07/07 20:06:45
this will overwrite whatever other title the label
Bernhard Bauer
2011/07/07 20:45:14
Per the UI leads, we're going to add an infobar li
|
| + } |
| + |
| + // Disable UI elements if the backend says so. |
| + // |reenable| is a flag that tells us if the element is disabled because the |
| + // preference is not modifiable by the user. If the element is disabled but |
| + // the flag is not set, it means that the element has been disabled |
| + // somewhere else, so we don't do anything. |
| + if (el.disabled && !el.reenable) |
| + return; |
| + |
| + el.disabled = event.value['disabled']; |
|
Evan Stade
2011/07/07 20:06:45
this still doesn't seem very foolproof. reenable c
Bernhard Bauer
2011/07/07 20:45:14
I know :-/ This seemed like the easiest way withou
Evan Stade
2011/07/07 21:09:16
but how could the code check if it were disabled f
|
| + el.reenable = event.value['disabled']; |
| } |
| ///////////////////////////////////////////////////////////////////////////// |