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

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

Issue 1025703003: [Extensions Page] Fix the flicker of "No extensions" before extension data loads (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 months 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 d8c236dfe9612233b42b532ba9926c848c15125d..26fd5ac45764a6d5ce106e1cacaf3c17bd5cebd2 100644
--- a/chrome/browser/resources/extensions/extensions.js
+++ b/chrome/browser/resources/extensions/extensions.js
@@ -133,6 +133,9 @@ cr.define('extensions', function() {
// Set the title.
uber.setTitle(loadTimeData.getString('extensionSettings'));
+ var extensionList = $('extension-settings-list');
+ ExtensionList.decorate(extensionList);
+
// This will request the data to show on the page and will get a response
// back in returnExtensionsData.
chrome.send('extensionSettingsRequestExtensionsData');
@@ -141,7 +144,7 @@ cr.define('extensions', function() {
$('toggle-dev-on').addEventListener('change', function(e) {
this.updateDevControlsVisibility_(true);
- $('extension-settings-list').updateFocusableElements();
+ extensionList.updateFocusableElements();
chrome.send('extensionSettingsToggleDeveloperMode',
[$('toggle-dev-on').checked]);
}.bind(this));
@@ -298,15 +301,6 @@ cr.define('extensions', function() {
* @param {ExtensionDataResponse} extensionsData
*/
ExtensionSettings.returnExtensionsData = function(extensionsData) {
- // We can get called many times in short order, thus we need to
- // be careful to remove the 'finished loading' timeout.
- if (this.loadingTimeout_)
- window.clearTimeout(this.loadingTimeout_);
- document.documentElement.classList.add('loading');
- this.loadingTimeout_ = window.setTimeout(function() {
- document.documentElement.classList.remove('loading');
- }, 0);
-
webuiResponded = true;
var supervised = extensionsData.profileIsSupervised;
@@ -324,9 +318,15 @@ cr.define('extensions', function() {
instance.updateDevControlsVisibility_(false);
$('load-unpacked').disabled = extensionsData.loadUnpackedDisabled;
-
- ExtensionList.prototype.data_ = extensionsData;
- ExtensionList.decorate($('extension-settings-list'));
+ var extensionList = $('extension-settings-list');
+ extensionList.updateExtensionsData(
+ extensionsData.incognitoAvailable,
+ extensionsData.enableAppInfoDialog).then(function() {
+ var hasExtensions = extensionList.getNumExtensions() != 0;
+ extensionList.hidden = !hasExtensions;
+ $('no-extensions').hidden = hasExtensions;
+ $('footer-section').hidden = !hasExtensions;
+ });
};
/**

Powered by Google App Engine
This is Rietveld 408576698