MOBILE-3645 siteplugins: CSS should be included in reliable order

main
Dani Palou 2021-03-17 14:36:20 +01:00
parent 2014d28b90
commit 16be1a94fe
1 changed files with 15 additions and 1 deletions

View File

@ -431,7 +431,21 @@ export class CoreSitePluginsHelperProvider {
styleEl.setAttribute('id', 'siteplugin-' + uniqueName);
styleEl.innerHTML = cssCode;
document.head.appendChild(styleEl);
// To ensure consistency, insert in alphabetical order among other site plugin styles.
let lowestGreater: HTMLStyleElement | null = null;
Array.from(document.head.querySelectorAll('style')).forEach((other) => {
if (/^siteplugin-/.test(other.id) && other.id > styleEl.id) {
if (lowestGreater === null || other.id < lowestGreater.id) {
lowestGreater = other;
}
}
});
if (lowestGreater) {
document.head.insertBefore(styleEl, lowestGreater);
} else {
document.head.appendChild(styleEl);
}
// Styles have been loaded, now treat the CSS.
CoreUtils.ignoreErrors(