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

Unified Diff: chrome/browser/resources/extensions/extensions.js

Issue 2529083002: Make extensions developer mode adhere to policy (Closed)
Patch Set: Asterisk goes next to the type Created 4 years, 1 month 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/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) {
Devlin 2016/11/30 19:19:51 nitty nit: maybe updateDevModeControlledIndicator?
pmarko 2016/12/02 00:20:07 Done.
+ var devToggleControlledIndicator = document.querySelector(
Devlin 2016/11/30 19:19:51 nitty nit: can we just name this something like 'c
pmarko 2016/12/02 00:20:07 Done.
+ '#dev-toggle .controlled-setting-indicator');
+
+ if (!(devToggleControlledIndicator instanceof cr.ui.ControlledIndicator))
+ cr.ui.ControlledIndicator.decorate(devToggleControlledIndicator);
+
+ if (devModeControlledByPolicy) {
Devlin 2016/11/30 19:19:51 nit: can we also check the current status here? e
pmarko 2016/12/02 00:20:07 Done.
+ 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
« no previous file with comments | « chrome/browser/resources/extensions/extensions.html ('k') | chrome/browser/ui/webui/extensions/extension_settings_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698