| 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="extension_code.js"> | 8 <include src="extension_code.js"> |
| 9 <include src="extension_commands_overlay.js"> | 9 <include src="extension_commands_overlay.js"> |
| 10 <include src="extension_error_overlay.js"> | 10 <include src="extension_error_overlay.js"> |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 hideDropTargetOverlay_: function() { | 91 hideDropTargetOverlay_: function() { |
| 92 var currentOverlay = ExtensionSettings.getCurrentOverlay(); | 92 var currentOverlay = ExtensionSettings.getCurrentOverlay(); |
| 93 if (currentOverlay && currentOverlay.id === 'drop-target-overlay') | 93 if (currentOverlay && currentOverlay.id === 'drop-target-overlay') |
| 94 ExtensionSettings.showOverlay(null); | 94 ExtensionSettings.showOverlay(null); |
| 95 } | 95 } |
| 96 }; | 96 }; |
| 97 | 97 |
| 98 /** | 98 /** |
| 99 * ExtensionSettings class | 99 * ExtensionSettings class |
| 100 * @class | 100 * @class |
| 101 * @constructor |
| 102 * @implements {ExtensionList.Delegate} |
| 101 */ | 103 */ |
| 102 function ExtensionSettings() {} | 104 function ExtensionSettings() {} |
| 103 | 105 |
| 104 cr.addSingletonGetter(ExtensionSettings); | 106 cr.addSingletonGetter(ExtensionSettings); |
| 105 | 107 |
| 106 ExtensionSettings.prototype = { | 108 ExtensionSettings.prototype = { |
| 107 __proto__: HTMLDivElement.prototype, | 109 __proto__: HTMLDivElement.prototype, |
| 108 | 110 |
| 109 /** | 111 /** |
| 110 * The drag-drop wrapper for installing external Extensions, if available. | 112 * The drag-drop wrapper for installing external Extensions, if available. |
| (...skipping 15 matching lines...) Expand all Loading... |
| 126 * Perform initial setup. | 128 * Perform initial setup. |
| 127 */ | 129 */ |
| 128 initialize: function() { | 130 initialize: function() { |
| 129 uber.onContentFrameLoaded(); | 131 uber.onContentFrameLoaded(); |
| 130 cr.ui.FocusOutlineManager.forDocument(document); | 132 cr.ui.FocusOutlineManager.forDocument(document); |
| 131 measureCheckboxStrings(); | 133 measureCheckboxStrings(); |
| 132 | 134 |
| 133 // Set the title. | 135 // Set the title. |
| 134 uber.setTitle(loadTimeData.getString('extensionSettings')); | 136 uber.setTitle(loadTimeData.getString('extensionSettings')); |
| 135 | 137 |
| 136 var extensionList = new ExtensionList(); | 138 var extensionList = new ExtensionList(this); |
| 137 extensionList.id = 'extension-settings-list'; | 139 extensionList.id = 'extension-settings-list'; |
| 138 var wrapper = $('extension-list-wrapper'); | 140 var wrapper = $('extension-list-wrapper'); |
| 139 wrapper.insertBefore(extensionList, wrapper.firstChild); | 141 wrapper.insertBefore(extensionList, wrapper.firstChild); |
| 140 | 142 |
| 141 this.update_(); | 143 this.update_(); |
| 142 // TODO(devlin): Remove this once all notifications are moved to events on | 144 // TODO(devlin): Remove this once all notifications are moved to events on |
| 143 // the developerPrivate api. | 145 // the developerPrivate api. |
| 144 chrome.send('extensionSettingsRegister'); | 146 chrome.send('extensionSettingsRegister'); |
| 145 | 147 |
| 146 var extensionLoader = extensions.ExtensionLoader.getInstance(); | 148 var extensionLoader = extensions.ExtensionLoader.getInstance(); |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 267 profileInfo.appInfoDialogEnabled).then(function() { | 269 profileInfo.appInfoDialogEnabled).then(function() { |
| 268 // We can get called many times in short order, thus we need to | 270 // We can get called many times in short order, thus we need to |
| 269 // be careful to remove the 'finished loading' timeout. | 271 // be careful to remove the 'finished loading' timeout. |
| 270 if (this.loadingTimeout_) | 272 if (this.loadingTimeout_) |
| 271 window.clearTimeout(this.loadingTimeout_); | 273 window.clearTimeout(this.loadingTimeout_); |
| 272 document.documentElement.classList.add('loading'); | 274 document.documentElement.classList.add('loading'); |
| 273 this.loadingTimeout_ = window.setTimeout(function() { | 275 this.loadingTimeout_ = window.setTimeout(function() { |
| 274 document.documentElement.classList.remove('loading'); | 276 document.documentElement.classList.remove('loading'); |
| 275 }, 0); | 277 }, 0); |
| 276 | 278 |
| 277 /** @const */ | 279 this.onExtensionCountChanged(); |
| 278 var hasExtensions = extensionList.getNumExtensions() != 0; | |
| 279 $('no-extensions').hidden = hasExtensions; | |
| 280 $('extension-list-wrapper').hidden = !hasExtensions; | |
| 281 }.bind(this)); | 280 }.bind(this)); |
| 282 }, | 281 }, |
| 283 | 282 |
| 284 /** | 283 /** |
| 285 * Handles the Pack Extension button. | 284 * Handles the Pack Extension button. |
| 286 * @param {Event} e Change event. | 285 * @param {Event} e Change event. |
| 287 * @private | 286 * @private |
| 288 */ | 287 */ |
| 289 handlePackExtension_: function(e) { | 288 handlePackExtension_: function(e) { |
| 290 ExtensionSettings.showOverlay($('pack-extension-overlay')); | 289 ExtensionSettings.showOverlay($('pack-extension-overlay')); |
| 291 chrome.send('metricsHandler:recordAction', ['Options_PackExtension']); | 290 chrome.send('metricsHandler:recordAction', ['Options_PackExtension']); |
| 292 }, | 291 }, |
| 293 | 292 |
| 294 /** | 293 /** |
| 295 * Shows the Extension Commands configuration UI. | 294 * Shows the Extension Commands configuration UI. |
| 296 * @param {Event} e Change event. | |
| 297 * @private | 295 * @private |
| 298 */ | 296 */ |
| 299 showExtensionCommandsConfigUi_: function(e) { | 297 showExtensionCommandsConfigUi_: function() { |
| 300 ExtensionSettings.showOverlay($('extension-commands-overlay')); | 298 ExtensionSettings.showOverlay($('extension-commands-overlay')); |
| 301 chrome.send('metricsHandler:recordAction', | 299 chrome.send('metricsHandler:recordAction', |
| 302 ['Options_ExtensionCommands']); | 300 ['Options_ExtensionCommands']); |
| 303 }, | 301 }, |
| 304 | 302 |
| 305 /** | 303 /** |
| 306 * Handles the Configure (Extension) Commands link. | 304 * Handles the Configure (Extension) Commands link. |
| 307 * @param {Event} e Change event. | 305 * @param {Event} e Change event. |
| 308 * @private | 306 * @private |
| 309 */ | 307 */ |
| (...skipping 30 matching lines...) Expand all Loading... |
| 340 function(control) { | 338 function(control) { |
| 341 control.tabIndex = showDevControls ? 0 : -1; | 339 control.tabIndex = showDevControls ? 0 : -1; |
| 342 }); | 340 }); |
| 343 buttons.setAttribute('aria-hidden', !showDevControls); | 341 buttons.setAttribute('aria-hidden', !showDevControls); |
| 344 | 342 |
| 345 window.requestAnimationFrame(function() { | 343 window.requestAnimationFrame(function() { |
| 346 devControls.style.height = !showDevControls ? '' : | 344 devControls.style.height = !showDevControls ? '' : |
| 347 buttons.offsetHeight + 'px'; | 345 buttons.offsetHeight + 'px'; |
| 348 }.bind(this)); | 346 }.bind(this)); |
| 349 }, | 347 }, |
| 348 |
| 349 /** @override */ |
| 350 onExtensionCountChanged: function() { |
| 351 /** @const */ |
| 352 var hasExtensions = $('extension-settings-list').getNumExtensions() != 0; |
| 353 $('no-extensions').hidden = hasExtensions; |
| 354 $('extension-list-wrapper').hidden = !hasExtensions; |
| 355 }, |
| 350 }; | 356 }; |
| 351 | 357 |
| 358 /** |
| 359 * Called by the WebUI when something has changed and the extensions UI needs |
| 360 * to be updated. |
| 361 */ |
| 352 ExtensionSettings.onExtensionsChanged = function() { | 362 ExtensionSettings.onExtensionsChanged = function() { |
| 353 ExtensionSettings.getInstance().update_(); | 363 ExtensionSettings.getInstance().update_(); |
| 354 }; | 364 }; |
| 355 | 365 |
| 356 /** | 366 /** |
| 357 * Returns the current overlay or null if one does not exist. | 367 * Returns the current overlay or null if one does not exist. |
| 358 * @return {Element} The overlay element. | 368 * @return {Element} The overlay element. |
| 359 */ | 369 */ |
| 360 ExtensionSettings.getCurrentOverlay = function() { | 370 ExtensionSettings.getCurrentOverlay = function() { |
| 361 return document.querySelector('#overlay .page.showing'); | 371 return document.querySelector('#overlay .page.showing'); |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 458 // Export | 468 // Export |
| 459 return { | 469 return { |
| 460 ExtensionSettings: ExtensionSettings | 470 ExtensionSettings: ExtensionSettings |
| 461 }; | 471 }; |
| 462 }); | 472 }); |
| 463 | 473 |
| 464 window.addEventListener('load', function(e) { | 474 window.addEventListener('load', function(e) { |
| 465 document.documentElement.classList.add('loading'); | 475 document.documentElement.classList.add('loading'); |
| 466 extensions.ExtensionSettings.getInstance().initialize(); | 476 extensions.ExtensionSettings.getInstance().initialize(); |
| 467 }); | 477 }); |
| OLD | NEW |