diff --git a/chrome/content/zotero/xpcom/zotero.js b/chrome/content/zotero/xpcom/zotero.js index a2f53f07b1..6125dfcdf9 100644 --- a/chrome/content/zotero/xpcom/zotero.js +++ b/chrome/content/zotero/xpcom/zotero.js @@ -1441,6 +1441,8 @@ Services.scriptloader.loadSubScript("resource://zotero/polyfill.js"); * @return void */ this.showZoteroPaneProgressMeter = function (msg, determinate, icon, modalOnly) { + const HTML_NS = "http://www.w3.org/1999/xhtml" + // If msg is undefined, keep any existing message. If false/null/"", clear. // The message is also cleared when the meters are hidden. _progressMessage = msg = (msg === undefined ? _progressMessage : msg) || ""; @@ -1475,17 +1477,15 @@ Services.scriptloader.loadSubScript("resource://zotero/polyfill.js"); let id = 'zotero-pane-progressmeter'; let progressMeter = doc.getElementById(id); if (!progressMeter) { - progressMeter = doc.createElement('progressmeter'); + progressMeter = doc.createElementNS(HTML_NS, 'progress'); progressMeter.id = id; } - progressMeter.setAttribute('mode', 'undetermined'); if (determinate) { - progressMeter.mode = 'determined'; - progressMeter.value = 0; + progressMeter.setAttribute('value', 0); progressMeter.max = 1000; } else { - progressMeter.mode = 'undetermined'; + progressMeter.removeAttribute('value'); } container.appendChild(progressMeter); @@ -1515,13 +1515,13 @@ Services.scriptloader.loadSubScript("resource://zotero/polyfill.js"); } for (let pm of _progressMeters) { if (percentage !== null) { - if (pm.mode == 'undetermined') { + if (!pm.hasAttribute('value')) { pm.max = 1000; - pm.mode = 'determined'; } - pm.value = percentage; - } else if(pm.mode === 'determined') { - pm.mode = 'undetermined'; + pm.setAttribute('value', percentage); + } + else if (pm.hasAttribute('value')) { + pm.removeAttribute('value'); } } _lastPercentage = percentage;