diff --git a/toolkit/mozapps/extensions/content/extensions.js b/toolkit/mozapps/extensions/content/extensions.js index b2625001d546..f5201100f632 100644 --- a/toolkit/mozapps/extensions/content/extensions.js +++ b/toolkit/mozapps/extensions/content/extensions.js @@ -694,13 +694,9 @@ function displaySearchResults(addons, count, isRecommended) { gRDF.GetLiteral("header-recommended"), true); - // Case insensitive sort + // Locale sensitive sort function compare(a, b) { - if (a.name.toLowerCase() < b.name.toLowerCase()) - return -1; - if (a.name.toLowerCase() > b.name.toLowerCase()) - return 1; - return 0; + return String.localeCompare(a.name, b.name); } addons.sort(compare); } @@ -899,13 +895,9 @@ function rebuildPluginsDS() cleanDataSource(gPluginsDS, rootctr); - // Case insensitive sort + // Locale sensitive sort function compare(a, b) { - if (a.name.toLowerCase() < b.name.toLowerCase()) - return -1; - if (a.name.toLowerCase() > b.name.toLowerCase()) - return 1; - return 0; + return String.localeCompare(a.name, b.name); } plugins.sort(compare); diff --git a/toolkit/mozapps/extensions/src/nsExtensionManager.js.in b/toolkit/mozapps/extensions/src/nsExtensionManager.js.in index fd2a114b23dd..e67d5bc8a486 100644 --- a/toolkit/mozapps/extensions/src/nsExtensionManager.js.in +++ b/toolkit/mozapps/extensions/src/nsExtensionManager.js.in @@ -7989,17 +7989,15 @@ ExtensionsDataSource.prototype = { if (itemType & type) { items.push({ item : item, ordinal: ordinal, - sortkey: this.getItemProperty(id, propertyName).toLowerCase() }); + sortkey: this.getItemProperty(id, propertyName) }); ordinal++; } } var direction = isAscending ? 1 : -1; - // Case insensitive sort + // Locale sensitive sort function compare(a, b) { - if (a.sortkey < b.sortkey) return (-1 * direction); - if (a.sortkey > b.sortkey) return (1 * direction); - return 0; + return String.localeCompare(a.sortkey, b.sortkey) * direction; } items.sort(compare);