| Index: chrome/browser/resources/extensions/extensions.js
|
| diff --git a/chrome/browser/resources/extensions/extensions.js b/chrome/browser/resources/extensions/extensions.js
|
| index fbf7b3cb2a4dcc18f7b7bbd05364d9aa12e2ac26..9f349af8f3b84496828bfd10830a214516454e64 100644
|
| --- a/chrome/browser/resources/extensions/extensions.js
|
| +++ b/chrome/browser/resources/extensions/extensions.js
|
| @@ -196,6 +196,8 @@ cr.define('extensions', function() {
|
|
|
| /** @const */
|
| var supervised = profileInfo.isSupervised;
|
| + var developerModeControlledByPolicy =
|
| + profileInfo.isDeveloperModeControlledByPolicy;
|
|
|
| var pageDiv = $('extension-settings');
|
| pageDiv.classList.toggle('profile-is-supervised', supervised);
|
| @@ -203,7 +205,13 @@ cr.define('extensions', function() {
|
|
|
| var devControlsCheckbox = $('toggle-dev-on');
|
| devControlsCheckbox.checked = profileInfo.inDeveloperMode;
|
| - devControlsCheckbox.disabled = supervised;
|
| + devControlsCheckbox.disabled =
|
| + supervised || developerModeControlledByPolicy;
|
| +
|
| + // This is necessary e.g. if developer mode is now disabled by policy
|
| + // but extension developer tools were visible.
|
| + this.updateDevControlsVisibility_(false);
|
| + this.setDevToggleControlledIndicator_(developerModeControlledByPolicy);
|
|
|
| $('load-unpacked').disabled = !profileInfo.canLoadUnpacked;
|
| var extensionList = $('extension-settings-list');
|
| @@ -219,6 +227,32 @@ cr.define('extensions', function() {
|
| },
|
|
|
| /**
|
| + * Shows or hides the 'controlled by policy' indicator on the dev-toggle
|
| + * checkbox.
|
| + * @param {boolean} devModeControlledByPolicy true if the indicator
|
| + * should be showing.
|
| + * @private
|
| + */
|
| + setDevToggleControlledIndicator_: function(devModeControlledByPolicy) {
|
| + var devToggleControlledIndicator = document.querySelector(
|
| + '#dev-toggle .controlled-setting-indicator');
|
| +
|
| + if (!(devToggleControlledIndicator instanceof cr.ui.ControlledIndicator))
|
| + cr.ui.ControlledIndicator.decorate(devToggleControlledIndicator);
|
| +
|
| + if (devModeControlledByPolicy) {
|
| + var controlledBy = 'policy';
|
| + devToggleControlledIndicator.setAttribute(
|
| + 'controlled-by', controlledBy);
|
| + devToggleControlledIndicator.setAttribute(
|
| + 'text' + controlledBy,
|
| + loadTimeData.getString('extensionControlledSettingPolicy'));
|
| + } else {
|
| + devToggleControlledIndicator.removeAttribute('controlled-by');
|
| + }
|
| + },
|
| +
|
| + /**
|
| * Shows the loading spinner and hides elements that shouldn't be visible
|
| * while loading.
|
| * @param {boolean} isLoading
|
|
|