OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 <include src="../../../../ui/webui/resources/js/cr/ui/focus_row.js"> | 5 <include src="../../../../ui/webui/resources/js/cr/ui/focus_row.js"> |
6 <include src="../../../../ui/webui/resources/js/cr/ui/focus_grid.js"> | 6 <include src="../../../../ui/webui/resources/js/cr/ui/focus_grid.js"> |
7 <include src="../uber/uber_utils.js"> | 7 <include src="../uber/uber_utils.js"> |
8 <include src="drag_and_drop_handler.js"> | 8 <include src="drag_and_drop_handler.js"> |
9 <include src="extension_code.js"> | 9 <include src="extension_code.js"> |
10 <include src="extension_commands_overlay.js"> | 10 <include src="extension_commands_overlay.js"> |
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 update_: function(profileInfo) { | 189 update_: function(profileInfo) { |
190 // We only set the page to be loading if we haven't already finished an | 190 // We only set the page to be loading if we haven't already finished an |
191 // initial load, because otherwise the updates are all incremental and | 191 // initial load, because otherwise the updates are all incremental and |
192 // don't need to display the interstitial spinner. | 192 // don't need to display the interstitial spinner. |
193 if (!this.hasLoaded_) | 193 if (!this.hasLoaded_) |
194 this.setLoading_(true); | 194 this.setLoading_(true); |
195 webuiResponded = true; | 195 webuiResponded = true; |
196 | 196 |
197 /** @const */ | 197 /** @const */ |
198 var supervised = profileInfo.isSupervised; | 198 var supervised = profileInfo.isSupervised; |
| 199 var developerModeControlledByPolicy = |
| 200 profileInfo.isDeveloperModeControlledByPolicy; |
199 | 201 |
200 var pageDiv = $('extension-settings'); | 202 var pageDiv = $('extension-settings'); |
201 pageDiv.classList.toggle('profile-is-supervised', supervised); | 203 pageDiv.classList.toggle('profile-is-supervised', supervised); |
202 pageDiv.classList.toggle('showing-banner', supervised); | 204 pageDiv.classList.toggle('showing-banner', supervised); |
203 | 205 |
204 var devControlsCheckbox = $('toggle-dev-on'); | 206 var devControlsCheckbox = $('toggle-dev-on'); |
205 devControlsCheckbox.checked = profileInfo.inDeveloperMode; | 207 devControlsCheckbox.checked = profileInfo.inDeveloperMode; |
206 devControlsCheckbox.disabled = supervised; | 208 devControlsCheckbox.disabled = |
| 209 supervised || developerModeControlledByPolicy; |
| 210 |
| 211 // This is necessary e.g. if developer mode is now disabled by policy |
| 212 // but extension developer tools were visible. |
| 213 this.updateDevControlsVisibility_(false); |
| 214 this.updateDevToggleControlledIndicator_(developerModeControlledByPolicy); |
207 | 215 |
208 $('load-unpacked').disabled = !profileInfo.canLoadUnpacked; | 216 $('load-unpacked').disabled = !profileInfo.canLoadUnpacked; |
209 var extensionList = $('extension-settings-list'); | 217 var extensionList = $('extension-settings-list'); |
210 extensionList.updateExtensionsData( | 218 extensionList.updateExtensionsData( |
211 profileInfo.isIncognitoAvailable, | 219 profileInfo.isIncognitoAvailable, |
212 profileInfo.appInfoDialogEnabled).then(function() { | 220 profileInfo.appInfoDialogEnabled).then(function() { |
213 if (!this.hasLoaded_) { | 221 if (!this.hasLoaded_) { |
214 this.hasLoaded_ = true; | 222 this.hasLoaded_ = true; |
215 this.setLoading_(false); | 223 this.setLoading_(false); |
216 } | 224 } |
217 this.onExtensionCountChanged(); | 225 this.onExtensionCountChanged(); |
218 }.bind(this)); | 226 }.bind(this)); |
219 }, | 227 }, |
220 | 228 |
221 /** | 229 /** |
| 230 * Shows or hides the 'controlled by policy' indicator on the dev-toggle |
| 231 * checkbox. |
| 232 * @param {boolean} devModeControlledByPolicy true if the indicator |
| 233 * should be showing. |
| 234 * @private |
| 235 */ |
| 236 updateDevToggleControlledIndicator_: function(devModeControlledByPolicy) { |
| 237 var controlledIndicator = document.querySelector( |
| 238 '#dev-toggle .controlled-setting-indicator'); |
| 239 |
| 240 if (!(controlledIndicator instanceof cr.ui.ControlledIndicator)) |
| 241 cr.ui.ControlledIndicator.decorate(controlledIndicator); |
| 242 |
| 243 // We control the visibility of the ControlledIndicator by setting or |
| 244 // removing the 'controlled-by' attribute (see controlled_indicator.css). |
| 245 var isVisible = controlledIndicator.getAttribute('controlled-by'); |
| 246 if (devModeControlledByPolicy && !isVisible) { |
| 247 var controlledBy = 'policy'; |
| 248 controlledIndicator.setAttribute( |
| 249 'controlled-by', controlledBy); |
| 250 controlledIndicator.setAttribute( |
| 251 'text' + controlledBy, |
| 252 loadTimeData.getString('extensionControlledSettingPolicy')); |
| 253 } else if (!devModeControlledByPolicy && isVisible) { |
| 254 // This hides the element - see above. |
| 255 controlledIndicator.removeAttribute('controlled-by'); |
| 256 } |
| 257 }, |
| 258 |
| 259 /** |
222 * Shows the loading spinner and hides elements that shouldn't be visible | 260 * Shows the loading spinner and hides elements that shouldn't be visible |
223 * while loading. | 261 * while loading. |
224 * @param {boolean} isLoading | 262 * @param {boolean} isLoading |
225 * @private | 263 * @private |
226 */ | 264 */ |
227 setLoading_: function(isLoading) { | 265 setLoading_: function(isLoading) { |
228 document.documentElement.classList.toggle('loading', isLoading); | 266 document.documentElement.classList.toggle('loading', isLoading); |
229 $('loading-spinner').hidden = !isLoading; | 267 $('loading-spinner').hidden = !isLoading; |
230 $('dev-controls').hidden = isLoading; | 268 $('dev-controls').hidden = isLoading; |
231 this.updateDevControlsVisibility_(false); | 269 this.updateDevControlsVisibility_(false); |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
425 | 463 |
426 // Export | 464 // Export |
427 return { | 465 return { |
428 ExtensionSettings: ExtensionSettings | 466 ExtensionSettings: ExtensionSettings |
429 }; | 467 }; |
430 }); | 468 }); |
431 | 469 |
432 window.addEventListener('load', function(e) { | 470 window.addEventListener('load', function(e) { |
433 extensions.ExtensionSettings.getInstance().initialize(); | 471 extensions.ExtensionSettings.getInstance().initialize(); |
434 }); | 472 }); |
OLD | NEW |