Bug 1499593 - Change progressmeter to be html:progress. r=aceman,mkmelin
authorRichard Marti <richard.marti@gmail.com>
Thu, 18 Oct 2018 11:03:44 +0200
changeset 33562 0c7377410adfbee23c00cdf5d6f69b4f87e35ca1
parent 33561 61463e9d0e847ecb24d9028f9329e474489c80ed
child 33563 f37d4808a1e018f8ffab71a59191f30a30120864
push id388
push userclokep@gmail.com
push dateMon, 28 Jan 2019 20:54:56 +0000
reviewersaceman, mkmelin
bugs1499593
Bug 1499593 - Change progressmeter to be html:progress. r=aceman,mkmelin
chat/content/browserRequest.xul
mail/base/content/ABSearchDialog.xul
mail/base/content/FilterListDialog.js
mail/base/content/FilterListDialog.xul
mail/base/content/SearchDialog.xul
mail/base/content/mailWindow.js
mail/base/content/mainStatusbar.inc
mail/base/content/messageWindow.xul
mail/base/content/tabmail.xml
mail/components/activity/content/activity.xml
mail/components/activity/content/activity.xul
mail/components/addrbook/content/abCard.inc
mail/components/addrbook/content/abNewCardDialog.xul
mail/components/compose/content/MsgComposeCommands.js
mail/components/compose/content/messengercompose.xul
mail/components/im/content/chat-messenger.inc
mail/components/im/content/imconversation.xml
mail/components/migration/content/migration.xul
mailnews/addrbook/prefs/content/pref-directory-add.js
mailnews/addrbook/prefs/content/pref-directory-add.xul
mailnews/base/content/folderProps.xul
mailnews/base/content/shutdownWindow.xul
mailnews/base/content/subscribe.xul
mailnews/base/prefs/content/removeAccount.xul
mailnews/compose/content/sendProgress.js
mailnews/compose/content/sendProgress.xul
mailnews/extensions/newsblog/content/feed-subscriptions.js
mailnews/extensions/newsblog/content/feed-subscriptions.xul
mailnews/import/content/importDialog.js
mailnews/import/content/importDialog.xul
--- a/chat/content/browserRequest.xul
+++ b/chat/content/browserRequest.xul
@@ -4,16 +4,17 @@
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
 <?xml-stylesheet href="chrome://chat/skin/browserRequest.css" type="text/css"?>
 
 <!DOCTYPE window>
 <window id="browserRequest"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+        xmlns:html="http://www.w3.org/1999/xhtml"
         buttons=","
         onload="loadRequestedUrl()"
         onclose="reportUserClosed()"
         title=""
         width="800"
         height="500"
         orient="vertical">
 
@@ -30,13 +31,13 @@
     <description id="headerMessage"/>
     </vbox>
   </hbox>
   <browser type="content" src="about:blank" id="requestFrame" flex="1"/>
   <statusbar>
     <statusbarpanel id="security-display" crop="end" flex="1"/>
     <statusbarpanel id="security-status" crop="end" collapsed="true"/>
     <statusbarpanel class="statusbarpanel-progress" collapsed="true" id="statusbar-status">
-      <progressmeter class="progressmeter-statusbar" id="statusbar-icon" mode="normal" value="0"/>
+      <html:progress class="progressmeter-statusbar" id="statusbar-icon" value="0" max="100"/>
     </statusbarpanel>
     <statusbarpanel id="security-button" class="statusbarpanel-iconic"/>
   </statusbar>
 </window>
--- a/mail/base/content/ABSearchDialog.xul
+++ b/mail/base/content/ABSearchDialog.xul
@@ -14,16 +14,17 @@
   <!ENTITY % SearchDialogDTD SYSTEM "chrome://messenger/locale/SearchDialog.dtd">
   %SearchDialogDTD;
   <!ENTITY % searchTermDTD SYSTEM "chrome://messenger/locale/searchTermOverlay.dtd">
   %searchTermDTD;
 ]>
 
 <window id="searchAddressBookWindow"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+        xmlns:html="http://www.w3.org/1999/xhtml"
         onload="searchOnLoad();"
         onunload="searchOnUnload();"
         onclose="onSearchStop();"
         windowtype="mailnews:absearch"
         title="&abSearchDialogTitle.label;"
         style="width: 52em; height: 34em;"
         persist="screenX screenY width height sizemode">
 
@@ -179,13 +180,13 @@
                 accesskey="&deleteCardButton.accesskey;"
                 command="cmd_deleteCard"/>
       </hbox>
     </vbox>
 
   <statusbar class="chromeclass-status" id="status-bar">
     <statusbarpanel id="statusText" crop="right" flex="1"/>
     <statusbarpanel class="statusbarpanel-progress" id="statusbar-progresspanel">
-      <progressmeter class="progressmeter-statusbar" id="statusbar-icon" mode="normal" value="0"/>
+      <html:progress class="progressmeter-statusbar" id="statusbar-icon" value="0" max="100"/>
     </statusbarpanel>
   </statusbar>
 
 </window>
--- a/mail/base/content/FilterListDialog.js
+++ b/mail/base/content/FilterListDialog.js
@@ -46,17 +46,17 @@ var gStatusFeedback = {
     gRunFiltersButton.setAttribute("accesskey", gRunFiltersButton.getAttribute("stopaccesskey"));
 
     if (!this.progressMeterVisible)
     {
       document.getElementById('statusbar-progresspanel').removeAttribute('collapsed');
       this.progressMeterVisible = true;
     }
 
-    document.getElementById("statusbar-icon").setAttribute("mode", "undetermined");
+    document.getElementById("statusbar-icon").removeAttribute("value");
   },
   stopMeteors: function()
   {
     try {
       // change run button to be a stop button
       gRunFiltersButton.setAttribute("label", gRunFiltersButton.getAttribute("runlabel"));
       gRunFiltersButton.setAttribute("accesskey", gRunFiltersButton.getAttribute("runaccesskey"));
 
--- a/mail/base/content/FilterListDialog.xul
+++ b/mail/base/content/FilterListDialog.xul
@@ -10,16 +10,17 @@
 
 <!DOCTYPE window [
 <!ENTITY % filtersDTD SYSTEM "chrome://messenger/locale/FilterListDialog.dtd">%filtersDTD;
 ]>
 
 <window id="filterListDialog"
   xmlns:nc="http://home.netscape.com/NC-rdf#"
   xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+  xmlns:html="http://www.w3.org/1999/xhtml"
   windowtype="mailnews:filterlist"
   style="width: 45em; height: 31em;"
   onload="onLoad();"
   onunload="onFilterUnload();"
   onclose="return onFilterClose();"
   persist="width height screenX screenY"
   title="&window.title;">
 
@@ -171,14 +172,14 @@
     </rows>
   </grid>
 
   <separator class="thin"/>
 
   <statusbar class="chromeclass-status" id="status-bar">
     <statusbarpanel id="statusText" flex="1" crop="right"/>
     <statusbarpanel class="statusbarpanel-progress" collapsed="true" id="statusbar-progresspanel">
-      <progressmeter class="progressmeter-statusbar" id="statusbar-icon" mode="normal" value="0"/>
+      <html:progress class="progressmeter-statusbar" id="statusbar-icon" value="0" max="100"/>
     </statusbarpanel>
   </statusbar>
 
 </window>
 
--- a/mail/base/content/SearchDialog.xul
+++ b/mail/base/content/SearchDialog.xul
@@ -13,16 +13,17 @@
   <!ENTITY % SearchDialogDTD SYSTEM "chrome://messenger/locale/SearchDialog.dtd">
   %SearchDialogDTD;
   <!ENTITY % searchTermDTD SYSTEM "chrome://messenger/locale/searchTermOverlay.dtd">
   %searchTermDTD;
 ]>
 
 <window id="searchMailWindow"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+        xmlns:html="http://www.w3.org/1999/xhtml"
         onload="searchOnLoad();"
         onunload="onSearchStop(); searchOnUnload();"
         windowtype="mailnews:search"
         title="&searchDialogTitle.label;"
         style="width: 52em; height: 34em;"
         persist="screenX screenY width height sizemode">
 
   <stringbundle id="bundle_search" src="chrome://messenger/locale/search.properties"/>
@@ -201,13 +202,13 @@
       <button label="&saveAsVFButton.label;" id="saveAsVFButton" command="saveas_vf_button" accesskey="&saveAsVFButton.accesskey;" />
       <spacer flex="1" />
     </hbox>
   </vbox>
 
   <statusbar class="chromeclass-status" id="status-bar">
     <statusbarpanel id="statusText" crop="right" flex="1"/>
     <statusbarpanel class="statusbarpanel-progress" collapsed="true" id="statusbar-progresspanel">
-      <progressmeter class="progressmeter-statusbar" id="statusbar-icon" mode="normal" value="0"/>
+      <html:progress class="progressmeter-statusbar" id="statusbar-icon" value="0" max="100"/>
     </statusbarpanel>
   </statusbar>
 
 </window>
--- a/mail/base/content/mailWindow.js
+++ b/mail/base/content/mailWindow.js
@@ -392,31 +392,29 @@ nsMsgStatusFeedback.prototype =
         ++progressCount;
       }
 
       let percentage = 0;
       if (progressCount) {
         percentage = currentProgress / progressCount;
       }
 
-      if (!percentage)
-        this._progressBar.setAttribute("mode", "undetermined");
-      else {
-        this._progressBar.setAttribute("mode", "determined");
+      if (!percentage) {
+        this._progressBar.removeAttribute("value");
+      } else {
         this._progressBar.value = percentage;
         this._progressBar.label = Math.round(percentage) + "%";
       }
       if (!this._progressBarVisible) {
         this._progressBarContainer.removeAttribute('collapsed');
         this._progressBarVisible = true;
       }
     }
     else {
       // Stop the bar spinning as we're not doing anything now.
-      this._progressBar.setAttribute("mode", "determined");
       this._progressBar.value = 0;
       this._progressBar.label = "";
 
       if (this._progressBarVisible) {
         this._progressBarContainer.collapsed = true;
         this._progressBarVisible = false;
       }
     }
--- a/mail/base/content/mainStatusbar.inc
+++ b/mail/base/content/mainStatusbar.inc
@@ -3,22 +3,19 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
     <hbox id="statusTextBox" ondblclick="openActivityMgr();" flex="1">
       <statusbarpanel>
         <toolbarbutton id="offline-status" oncommand="MailOfflineMgr.toggleOfflineStatus();"/>
       </statusbarpanel>
       <statusbarpanel id="statusText" label="&statusText.label;" flex="1"/>
       <statusbarpanel class="statusbarpanel-progress" collapsed="true" id="statusbar-progresspanel">
-        <progressmeter class="progressmeter-statusbar" id="statusbar-icon" mode="normal" value="0"/>
+        <html:progress class="progressmeter-statusbar" id="statusbar-icon" value="0" max="100"/>
       </statusbarpanel>
       <statusbarpanel class="statusbarpanel-progress"
                       id="quotaPanel" hidden="true">
         <stack>
-          <progressmeter class="progressmeter-statusbar"
-                         id="quotaMeter"
-                         mode="normal"
-                         value="0" />
+          <html:progress id="quotaMeter" class="progressmeter-statusbar" value="0" max="100"/>
           <label id="quotaLabel"
                  onclick="gFolderTreeController.editFolder('QuotaTab');" />
         </stack>
       </statusbarpanel>
     </hbox>
--- a/mail/base/content/messageWindow.xul
+++ b/mail/base/content/messageWindow.xul
@@ -48,16 +48,17 @@
 %msgViewPickerDTD;
 ]>
 
 <!--
   - This window displays a single message.
   -->
 <window id="messengerWindow"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+        xmlns:html="http://www.w3.org/1999/xhtml"
         title="&titledefault.label;@PRE_RELEASE_SUFFIX@"
         titlemodifier="&titledefault.label;@PRE_RELEASE_SUFFIX@"
         titlemenuseparator="&titleSeparator.label;"
         onload="OnLoadMessageWindow()"
         onunload="OnUnloadMessageWindow()"
         persist="width height screenX screenY sizemode"
         toggletoolbar="true"
         windowtype="mail:messageWindow"
--- a/mail/base/content/tabmail.xml
+++ b/mail/base/content/tabmail.xml
@@ -1401,21 +1401,21 @@
         -->
       <method name="_setActiveThinkingState">
         <parameter name="aThinkingState"/>
         <body><![CDATA[
           if (aThinkingState) {
             statusFeedback.showProgress(0);
             if (typeof(aThinkingState) == "string")
               statusFeedback.showStatusString(aThinkingState);
-            gStatusBar.setAttribute("mode","undetermined");
+            gStatusBar.removeAttribute("value");
           }
           else {
             statusFeedback.showProgress(0);
-            gStatusBar.setAttribute("mode", "normal");
+            gStatusBar.value = 0;
           }
         ]]></body>
       </method>
       <method name="setTabThinking">
         <parameter name="aTabNodeOrInfo"/>
         <parameter name="aThinking"/>
         <body>
           <![CDATA[
--- a/mail/components/activity/content/activity.xml
+++ b/mail/components/activity/content/activity.xml
@@ -10,16 +10,17 @@
 <!DOCTYPE bindings [
   <!ENTITY % activityDTD SYSTEM "chrome://messenger/locale/activity.dtd" >
   %activityDTD;
 ]>
 
 <bindings id="activityBindings"
           xmlns="http://www.mozilla.org/xbl"
           xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+          xmlns:html="http://www.w3.org/1999/xhtml"
           xmlns:xbl="http://www.mozilla.org/xbl">
 
   <binding id="activity-group"
            extends="chrome://global/content/bindings/richlistbox.xml#richlistitem">
     <implementation>
       <constructor>
        <![CDATA[
           this.setAttribute("contextDisplayText", this.contextDisplayText);
@@ -408,18 +409,17 @@
           this.setVisibility("button_pause", !hidePauseBut);
           this.setVisibility("button_resume", !hideResumeBut);
           this.setVisibility("progressmeter", !hideProgressMeter);
 
           // Ensure progress meter not active when hidden
           if (hideProgressMeter) {
             let meter = document.getAnonymousElementByAttribute(this, "anonid",
                                                                 "progressmeter");
-            meter.setAttribute("mode", "determined");
-            meter.setAttribute("value", 0);
+            meter.value = 0;
           }
 
           // Update Status text and Display Text Areas
           // In some states we need to modify Display Text area of
           // the process (e.g. Failure).
           this.displayText = displayText;
           this.statusText = statusText;
          ]]>
@@ -431,23 +431,21 @@
         <parameter name="aWorkUnitsComplete"/>
         <parameter name="aTotalWorkUnits"/>
         <body>
           <![CDATA[
             let element =
               document.getAnonymousElementByAttribute(this, "anonid",
                                                       "progressmeter");
             if (aTotalWorkUnits == 0) {
-              element.setAttribute("mode", "undetermined");
-              element.setAttribute("value", 0);
+              element.removeAttribute("value");
             } else {
               let _percentComplete = 100.0 * aWorkUnitsComplete /
                                      aTotalWorkUnits;
-              element.setAttribute("mode", "determined");
-              element.setAttribute("value", _percentComplete);
+              element.value = _percentComplete;
             }
             this.statusText = aStatusText;
           ]]>
         </body>
       </method>
       <method name="onHandlerChanged">
         <parameter name="aActivity"/>
         <body>
@@ -501,19 +499,19 @@
         <xul:vbox pack="center" class="processIconBox">
           <xul:image anonid="image" xbl:inherits="class=iconclass"/>
         </xul:vbox>
         <xul:vbox flex="1">
           <xul:label xbl:inherits="value=displayText,tooltiptext=displayTextTip"
                        crop="center" flex="2" class="displayText"/>
           <xul:hbox>
             <xul:vbox flex="1">
-              <xul:progressmeter mode="normal" value="0" flex="1"
-                                 anonid="progressmeter"
-                                 xbl:inherits="value=progress,mode=progressmode"/>
+              <html:progress value="0" max="100" flex="1"
+                             anonid="progressmeter"
+                             xbl:inherits="value=progress"/>
             </xul:vbox>
             <xul:button class="resume mini-button"
                         tooltiptext="&cmd.resume.label;"
                         anonid="button_resume" cmd="cmd_resume"
                         ondblclick="event.stopPropagation();"
                         oncommand="activity.pauseHandler.resume(activity);"/>
             <xul:button class="pause mini-button"
                         tooltiptext="&cmd.pause.label;"
--- a/mail/components/activity/content/activity.xul
+++ b/mail/components/activity/content/activity.xul
@@ -19,16 +19,17 @@
 <!ENTITY % activityManagerDTD SYSTEM "chrome://messenger/locale/activity.dtd">
 %activityManagerDTD;
 <!ENTITY % editMenuOverlayDTD SYSTEM
 "chrome://global/locale/editMenuOverlay.dtd">
 %editMenuOverlayDTD;
 ]>
 
 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+        xmlns:html="http://www.w3.org/1999/xhtml"
         id="activityManager" windowtype="Activity:Manager"
         orient="vertical" title="&activity.title;"
         statictitle="&activity.title;"
         width="&window.width2;" height="&window.height;"
         screenX="10" screenY="10"
         persist="width height screenX screenY sizemode"
         onload="activityObject.startup();"
         onunload="activityObject.shutdown();"
--- a/mail/components/addrbook/content/abCard.inc
+++ b/mail/components/addrbook/content/abCard.inc
@@ -479,15 +479,15 @@
                         accesskey="&UpdatePhoto.accesskey;"/>
               </hbox>
             </vbox>
           </radiogroup>
 
           <hbox id="ProgressContainer" align="begin">
             <label id="PhotoStatus"/>
             <spacer flex="2"/>
-            <progressmeter id="PhotoDownloadProgress" value="0" mode="determined" hidden="true" flex="1"/>
+            <html:progress id="PhotoDownloadProgress" value="0" max="100" hidden="hidden" flex="1"/>
           </hbox>
         </vbox>
       </hbox>
     </tabpanels>
   </tabbox>
 </vbox>
--- a/mail/components/addrbook/content/abNewCardDialog.xul
+++ b/mail/components/addrbook/content/abNewCardDialog.xul
@@ -10,16 +10,17 @@
 <!DOCTYPE dialog [
   <!ENTITY % newCardDTD SYSTEM "chrome://messenger/locale/addressbook/abNewCardDialog.dtd">
   %newCardDTD;
   <!ENTITY % abCardDTD SYSTEM "chrome://messenger/locale/addressbook/abCard.dtd">
   %abCardDTD;
 ]>
 
 <dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+    xmlns:html="http://www.w3.org/1999/xhtml"
     id="abcardWindow"
     windowtype="mailnews:newcarddialog"
     onload="OnLoadNewCard()"
     ondialogaccept="return NewCardOKButton();"
     ondialogcancel="return NewCardCancelButton();">
 
   <stringbundleset id="stringbundleset">
     <stringbundle id="bundle_addressBook" src="chrome://messenger/locale/addressbook/addressBook.properties"/>
--- a/mail/components/compose/content/MsgComposeCommands.js
+++ b/mail/components/compose/content/MsgComposeCommands.js
@@ -544,45 +544,42 @@ var gSendListener = {
   onGetDraftFolderURI(aFolderURI) {},
   onSendNotPerformed(aMsgID, aStatus) {},
 };
 
 // all progress notifications are done through the nsIWebProgressListener implementation...
 var progressListener = {
   onStateChange(aWebProgress, aRequest, aStateFlags, aStatus) {
     if (aStateFlags & Ci.nsIWebProgressListener.STATE_START) {
-      document.getElementById("compose-progressmeter").setAttribute("mode", "undetermined");
+      document.getElementById("compose-progressmeter").removeAttribute("value");
       document.getElementById("statusbar-progresspanel").collapsed = false;
     }
 
     if (aStateFlags & Ci.nsIWebProgressListener.STATE_STOP) {
       gSendOperationInProgress = false;
       gSaveOperationInProgress = false;
-      document.getElementById("compose-progressmeter").setAttribute("mode", "normal");
-      document.getElementById("compose-progressmeter").setAttribute("value", 0);
+      document.getElementById("compose-progressmeter").value = 0;
       document.getElementById("statusbar-progresspanel").collapsed = true;
       document.getElementById("statusText").setAttribute("label", "");
     }
   },
 
   onProgressChange(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress) {
     // Calculate percentage.
     var percent;
     if (aMaxTotalProgress > 0) {
       percent = Math.round((aCurTotalProgress * 100) / aMaxTotalProgress);
       if (percent > 100)
         percent = 100;
 
-      document.getElementById("compose-progressmeter").removeAttribute("mode");
-
       // Advance progress meter.
-      document.getElementById("compose-progressmeter").setAttribute("value", percent);
+      document.getElementById("compose-progressmeter").value = percent;
     } else {
       // Progress meter should be barber-pole in this case.
-      document.getElementById("compose-progressmeter").setAttribute("mode", "undetermined");
+      document.getElementById("compose-progressmeter").removeAttribute("value");
     }
   },
 
   onLocationChange(aWebProgress, aRequest, aLocation, aFlags) {
     // we can ignore this notification
   },
 
   onStatusChange(aWebProgress, aRequest, aStatus, aMessage) {
--- a/mail/components/compose/content/messengercompose.xul
+++ b/mail/components/compose/content/messengercompose.xul
@@ -32,16 +32,17 @@
   %editorOverlayDTD;
   <!ENTITY % utilityOverlayDTD SYSTEM
     "chrome://communicator/locale/utilityOverlay.dtd">
   %utilityOverlayDTD;
 ]>
 
 <window id="msgcomposeWindow"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+        xmlns:html="http://www.w3.org/1999/xhtml"
         xmlns:nc="http://home.netscape.com/NC-rdf#"
         onunload="ComposeUnload()"
         onload="ComposeLoad()"
         onclose="return DoCommandClose()"
         onfocus="EditorOnFocus()"
         title="&msgComposeWindow.title;"
         windowtype="msgcompose"
         macanimationtype="document"
@@ -2081,17 +2082,17 @@
                      notificationside="bottom"/>
   </hbox>
 
   <statusbar id="status-bar" class="chromeclass-status">
     <statusbarpanel id="statusText" flex="1"/>
     <statusbarpanel id="statusbar-progresspanel"
                     class="statusbarpanel-progress"
                     collapsed="true">
-      <progressmeter id="compose-progressmeter" class="progressmeter-statusbar" mode="normal" value="0"/>
+      <html:progress id="compose-progressmeter" class="progressmeter-statusbar" value="0" max="100"/>
     </statusbarpanel>
     <statusbarpanel class="statusbarpanel-iconic"
                     collapsed="true"
                     id="signing-status"
                     oncommand="showMessageComposeSecurityStatus();">
       <image/>
     </statusbarpanel>
     <statusbarpanel class="statusbarpanel-iconic"
--- a/mail/components/im/content/chat-messenger.inc
+++ b/mail/components/im/content/chat-messenger.inc
@@ -145,17 +145,17 @@
                                        class="im-placeholder-desc">&chat.noPreviousConv.description;</description>
                         </vbox>
                       </hbox>
                     </vbox>
                     <vbox flex="1" id="logDisplayBrowserBox">
                       <browser id="conv-log-browser" type="content" browser-type="conversation"
                                contextmenu="chatConversationContextMenu" flex="1"
                                tooltip="imTooltip"/>
-                      <progressmeter id="log-browserProgress" hidden="true"/>
+                      <html:progress id="log-browserProgress" max="100" hidden="true"/>
                       <findbar id="log-findbar" browserid="conv-log-browser"/>
                     </vbox>
                   </deck>
                   <button id="goToConversation" hidden="true"
                           oncommand="chatHandler.showCurrentConversation();"/>
                 </vbox>
               </deck>
               <splitter id="contextSplitter" hidden="true" collapse="after"/>
--- a/mail/components/im/content/imconversation.xml
+++ b/mail/components/im/content/imconversation.xml
@@ -7,33 +7,34 @@
 <!DOCTYPE bindings [
   <!ENTITY % chatDTD SYSTEM "chrome://messenger/locale/chat.dtd">
   %chatDTD;
 ]>
 
 <bindings id="conversationBindings"
           xmlns="http://www.mozilla.org/xbl"
           xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+          xmlns:html="http://www.w3.org/1999/xhtml"
           xmlns:xbl="http://www.mozilla.org/xbl">
 
   <binding id="conversation">
     <content>
       <xul:vbox class="convBox" flex="1">
         <xul:hbox class="conv-top" flex="1" anonid="conv-top">
           <xul:notificationbox class="conv-messages" anonid="convNotificationBox" flex="1" xbl:inherits="chat">
             <xul:vbox flex="1">
               <xul:browser anonid="browser" type="content" browser-type="conversation" flex="1"
                            xbl:inherits="tooltip=contenttooltip,contextmenu=contentcontextmenu,autoscrollpopup"/>
-              <xul:progressmeter anonid="browserProgress" hidden="true"/>
+              <html:progress anonid="browserProgress" hidden="hidden"/>
               <xul:findbar anonid="FindToolbar" reversed="true"/>
             </xul:vbox>
           </xul:notificationbox>
         </xul:hbox>
         <xul:splitter class="splitter" anonid="splitter-bottom" orient="vertical"/>
-        <hbox anonid="convStatusContainer" class="conv-status-container" hidden="true">
+        <hbox anonid="convStatusContainer" class="conv-status-container" hidden="hidden">
           <xul:description anonid="convStatus" class="plain conv-status" crop="end" />
         </hbox>
         <xul:stack anonid="conv-bottom" class="conv-bottom">
           <xul:textbox anonid="inputBox" class="conv-textbox" multiline="true" flex="1"/>
           <xul:description anonid="charCounter" class="conv-counter" value="" right="0" bottom="0"/>
         </xul:stack>
       </xul:vbox>
     </content>
--- a/mail/components/migration/content/migration.xul
+++ b/mail/components/migration/content/migration.xul
@@ -4,16 +4,17 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
 
 <!DOCTYPE dialog SYSTEM "chrome://messenger/locale/migration/migration.dtd" >
 
 <wizard id="migrationWizard"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+        xmlns:html="http://www.w3.org/1999/xhtml"
         title="&migrationWizard.title;"
         onload="MigrationWizard.init()"
         onunload="MigrationWizard.uninit()"
         onwizardback="MigrationWizard.onBack();"
         onwizardcancel="MigrationWizard.onCancel();"
         style="width: 40em;"
         branded="true"
         buttons="accept,cancel">
@@ -74,17 +75,17 @@
               onpageshow="MigrationWizard.onMigratingPageShow();">
 
     <description>&migrating.label;</description>
     <separator class="thin"/>
     <vbox id="migratingItems" class="indent" style="overflow: auto;" flex="1" align="left"/>
     <separator class="thin"/>
 
     <hbox>
-      <progressmeter class="progressmeter-statusbar" id="progressBar"  flex="1" mode="normal" value="0"/>
+      <html:progress class="progressmeter-statusbar" id="progressBar" flex="1" value="0" max="100"/>
     </hbox>
 
   </wizardpage>
 
   <wizardpage id="done" pageid="done" label="&done.title;"
               onpageshow="MigrationWizard.onDonePageShow();">
     <description>&done.label;</description>
 
--- a/mailnews/addrbook/prefs/content/pref-directory-add.js
+++ b/mailnews/addrbook/prefs/content/pref-directory-add.js
@@ -84,17 +84,17 @@ function onUnload()
   }
 }
 
 var progressListener = {
   onStateChange: function(aWebProgress, aRequest, aStateFlags, aStatus)
   {
     if (aStateFlags & Ci.nsIWebProgressListener.STATE_START) {
       // start the spinning
-      gProgressMeter.setAttribute("mode", "undetermined");
+      gProgressMeter.removeAttribute("value");
       gProgressText.value = gReplicationBundle.getString(aStatus ?
                                                          "replicationStarted" :
                                                          "changesStarted");
       gDownloadInProgress = true;
       document.getElementById("download").label =
         gReplicationBundle.getString("cancelDownloadButton");
       document.getElementById("download").accessKey =
         gReplicationBundle.getString("cancelDownloadButton.accesskey");
@@ -158,18 +158,17 @@ function DownloadNow()
 function EndDownload(aStatus)
 {
   document.getElementById("download").label =
     gReplicationBundle.getString("downloadButton");
   document.getElementById("download").accessKey =
     gReplicationBundle.getString("downloadButton.accesskey");
 
   // stop the spinning
-  gProgressMeter.setAttribute("mode", "normal");
-  gProgressMeter.setAttribute("value", "100");
+  gProgressMeter.value = 100;
   gProgressMeter.hidden = true;
 
   gDownloadInProgress = false;
   gProgressText.value =
     gReplicationBundle.getString(aStatus ? "replicationSucceeded" :
                                  gReplicationCancelled ? "replicationCancelled" :
                                   "replicationFailed");
 }
--- a/mailnews/addrbook/prefs/content/pref-directory-add.xul
+++ b/mailnews/addrbook/prefs/content/pref-directory-add.xul
@@ -5,16 +5,17 @@
 
 <?xml-stylesheet href="chrome://messenger/skin/" type="text/css"?>
 
 <!DOCTYPE dialog SYSTEM "chrome://messenger/locale/addressbook/pref-directory-add.dtd">
 
 <dialog id="addDirectory"
         style="width: &newDirectoryWidth;"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+        xmlns:html="http://www.w3.org/1999/xhtml"
         onload="Startup();"
         onunload="onUnload();"
         buttons="accept,cancel"
         ondialogaccept="return onAccept();"
         ondialogcancel="return onCancel();">
 
   <script type="application/javascript" src="chrome://messenger/content/addressbook/pref-directory-add.js"/>
   <stringbundle id="bundle_addressBook" src="chrome://messenger/locale/addressbook/addressBook.properties"/>
@@ -90,17 +91,17 @@
               <separator/>
               <hbox>
                   <button id="download" oncommand="DownloadNow();"/>
                   <spacer flex="1"/>
               </hbox>
               <description id="downloadWarningMsg" hidden="true" class="error"/>
               <description id="replicationProgressText" hidden="true"/>
 
-              <progressmeter id="replicationProgressMeter" mode="normal" value="0" hidden="true"/>
+              <html:progress id="replicationProgressMeter" value="0" max="100" hidden="hidden"/>
           </vbox>
           <grid>
              <columns>
                <column/>
                <column flex="1"/>
              </columns>
 
              <rows>
--- a/mailnews/base/content/folderProps.xul
+++ b/mailnews/base/content/folderProps.xul
@@ -9,16 +9,17 @@
 <?xml-stylesheet href="chrome://messenger/skin/preferences/preferences.css" type="text/css"?>
 <?xml-stylesheet href="chrome://messenger/content/charsetList.css" type="text/css"?>
 
 <!DOCTYPE dialog SYSTEM "chrome://messenger/locale/folderProps.dtd">
 
 <dialog
   id="folderPropertiesDialog"
   xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+  xmlns:html="http://www.w3.org/1999/xhtml"
   title="&folderProps.windowtitle.label;"
   buttons="accept,cancel"
   onload="folderPropsOnLoad();" style="width: 56ch;"
   ondialogaccept="return folderPropsOKButton();">
 
   <stringbundle id="bundle_messenger" src="chrome://messenger/locale/messenger.properties"/>
   <script type="application/javascript" src="chrome://global/content/globalOverlay.js"/>
   <script type="application/javascript" src="chrome://messenger/content/retention.js"/>
@@ -198,17 +199,17 @@
           </row>
           <row>
             <label value="&folderQuotaUsage.label;"/>
             <description id="quotaUsedFree"/>
           </row>
           <row align="center">
             <label value="&folderQuotaStatus.label;"/>
             <hbox align="center">
-              <progressmeter id="quotaPercentageBar" mode="determined" value="0%"/>
+              <html:progress id="quotaPercentageBar" value="0" max="100"/>
               <label id="quotaPercentUsed"/>
             </hbox>
           </row>
         </rows>
       </grid>
      </vbox>
   </tabpanels>
 </tabbox>
--- a/mailnews/base/content/shutdownWindow.xul
+++ b/mailnews/base/content/shutdownWindow.xul
@@ -3,29 +3,30 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 -->
 
 <?xml-stylesheet href="chrome://messenger/skin/dialogs.css" type="text/css"?>
 
 <dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+        xmlns:html="http://www.w3.org/1999/xhtml"
         style="padding: 20px; width: 350px"
         onload="onLoad()"
         buttons="cancel"
         ondialogcancel="return onCancel();">
 
   <script type="application/javascript" src="chrome://messenger/content/shutdownWindow.js"/>
   <stringbundle id="bundle_shutdown" src="chrome://messenger/locale/shutdownWindow.properties"/>
 
   <vbox align="center">
     <label id="shutdownStatus_label" value="" />
     <separator class="thin" />
   </vbox>
 
-  <progressmeter id="shutdown_progressmeter" mode="determined" />
+  <html:progress id="shutdown_progressmeter" max="100" />
 
   <vbox align="center">
     <label id="shutdownTask_label" value="" />
     <separator class="thick" />
   </vbox>
 
 </dialog>
--- a/mailnews/base/content/subscribe.xul
+++ b/mailnews/base/content/subscribe.xul
@@ -9,16 +9,17 @@
 #endif
 <?xml-stylesheet href="chrome://messenger/skin/subscribe.css" type="text/css"?>
 <?xml-stylesheet href="chrome://messenger/skin/folderMenus.css" type="text/css"?>
 
 <!DOCTYPE window SYSTEM "chrome://messenger/locale/subscribe.dtd">
 
 <dialog id="subscribeWindow"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+        xmlns:html="http://www.w3.org/1999/xhtml"
         title="&subscribeDialog.title;"
         style="width: 44em; height: 33em;"
         persist="width height screenX screenY"
         onload="SubscribeOnLoad()"
         onunload="SubscribeOnUnload()"
         windowtype="mailnews:subscribe"
         ondialogaccept="return subscribeOK();"
         ondialogcancel="return subscribeCancel();">
@@ -147,16 +148,16 @@
             </tabpanel>
           </tabpanels>
         </tabbox>
       </row>
       <row>
         <hbox id="statusContainerBox">
            <statusbarpanel id="statusText" crop="right" flex="1"/>
            <statusbarpanel class="statusbarpanel-progress" collapsed="true" id="statusbar-progresspanel">
-             <progressmeter class="progressmeter-statusbar" id="statusbar-icon" mode="normal" value="0"/>
+             <html:progress class="progressmeter-statusbar" id="statusbar-icon" value="0" max="100"/>
            </statusbarpanel>
          </hbox>
          <hbox/>
       </row>
     </rows>
   </grid>
 </dialog>
--- a/mailnews/base/prefs/content/removeAccount.xul
+++ b/mailnews/base/prefs/content/removeAccount.xul
@@ -10,16 +10,17 @@
 <!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
 %brandDTD;
 <!ENTITY % removalDTD SYSTEM "chrome://messenger/locale/removeAccount.dtd">
 %removalDTD;
 ]>
 
 <dialog id="removeAccountDialog"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+        xmlns:html="http://www.w3.org/1999/xhtml"
         title="&dialogTitle;"
         width="600"
         buttons="accept,disclosure,cancel"
         buttonlabelaccept="&removeButton.label;"
         buttonaccesskeyaccept="&removeButton.accesskey;"
         defaultButton="cancel"
         onload="onLoad();"
         ondialogdisclosure="showInfo();"
@@ -71,17 +72,17 @@
       </vbox>
       </vbox>
     </vbox>
     <vbox align="center">
       <spacer flex="1"/>
       <deck id="status">
         <vbox align="center">
           <label>&progressPending;</label>
-          <progressmeter mode="undetermined"/>
+          <html:progress max="100"/>
         </vbox>
         <label id="success">&progressSuccess;</label>
         <label id="failure">&progressFailure;</label>
       </deck>
       <spacer flex="1"/>
     </vbox>
   </deck>
 </dialog>
--- a/mailnews/compose/content/sendProgress.js
+++ b/mailnews/compose/content/sendProgress.js
@@ -16,34 +16,33 @@ var itsASaveOperation = false;
 var gSendProgressStringBundle;
 
 // all progress notifications are done through the nsIWebProgressListener implementation...
 var progressListener = {
     onStateChange: function(aWebProgress, aRequest, aStateFlags, aStatus)
     {
       if (aStateFlags & Ci.nsIWebProgressListener.STATE_START)
       {
-        // Put progress meter in undetermined mode.
-        dialog.progress.setAttribute("mode", "undetermined");
+        // Set no value to progress meter when undetermined.
+        dialog.progress.removeAttribute("value");
       }
 
       if (aStateFlags & Ci.nsIWebProgressListener.STATE_STOP)
       {
         // we are done sending/saving the message...
         // Indicate completion in status area.
         var msg;
         if (itsASaveOperation)
           msg = gSendProgressStringBundle.getString("messageSaved");
         else
           msg = gSendProgressStringBundle.getString("messageSent");
         dialog.status.setAttribute("value", msg);
 
         // Put progress meter at 100%.
         dialog.progress.setAttribute("value", 100);
-        dialog.progress.setAttribute("mode", "normal");
         var percentMsg = gSendProgressStringBundle.getFormattedString("percentMsg", [100]);
         dialog.progressText.setAttribute("value", percentMsg);
 
         window.close();
       }
     },
 
     onProgressChange: function(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress)
@@ -51,31 +50,27 @@ var progressListener = {
       // Calculate percentage.
       var percent;
       if (aMaxTotalProgress > 0)
       {
         percent = Math.round(aCurTotalProgress / aMaxTotalProgress * 100);
         if (percent > 100)
           percent = 100;
 
-        dialog.progress.removeAttribute("mode");
-
         // Advance progress meter.
-        dialog.progress.setAttribute("value", percent);
+        dialog.progress.value = percent;
 
         // Update percentage label on progress meter.
         var percentMsg = gSendProgressStringBundle.getFormattedString("percentMsg", [percent]);
-        dialog.progressText.setAttribute("value", percentMsg);
+        dialog.progressText.value = percentMsg;
       }
       else
       {
-        // Progress meter should be barber-pole in this case.
-        dialog.progress.setAttribute("mode", "undetermined");
-        // Update percentage label on progress meter.
-        dialog.progressText.setAttribute("value", "");
+        // Progress meter should show no value in this case.
+        dialog.progress.removeAttribute("value");
       }
     },
 
     onLocationChange: function(aWebProgress, aRequest, aLocation, aFlags)
     {
       // we can ignore this notification
     },
 
--- a/mailnews/compose/content/sendProgress.xul
+++ b/mailnews/compose/content/sendProgress.xul
@@ -5,16 +5,17 @@
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 <?xml-stylesheet href="chrome://messenger/skin/dialogs.css" type="text/css"?>
 
 <!DOCTYPE dialog SYSTEM "chrome://messenger/locale/messengercompose/sendProgress.dtd">
 
 <dialog id="sendProgress"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+        xmlns:html="http://www.w3.org/1999/xhtml"
         title="&sendDialog.title;"
         style="width: 56ch;"
         onload="onLoad();"
         onunload="onUnload();"
         buttons="cancel"
         ondialogcancel="return onCancel();">
 
   <script type="application/javascript"
@@ -34,17 +35,17 @@
             <label value="&status.label;"/>
           </hbox>
           <label id="dialog.status" crop="center"/>
         </row>
         <row class="thin-separator">
           <hbox pack="end">
             <label value="&progress.label;"/>
           </hbox>
-          <progressmeter id="dialog.progress" mode="normal" value="0"/>
+          <html:progress id="dialog.progress" value="0" max="100"/>
           <hbox pack="end">
             <label id="dialog.progressText"/>
           </hbox>
         </row>
       </rows>
     </grid>
 
 </dialog>
--- a/mailnews/extensions/newsblog/content/feed-subscriptions.js
+++ b/mailnews/extensions/newsblog/content/feed-subscriptions.js
@@ -1878,25 +1878,28 @@ var FeedSubscriptions = {
   },
 
   // Status routines.
   updateStatusItem(aID, aValue, aErrorCode) {
     let el = document.getElementById(aID);
     if (el.getAttribute("collapsed")) {
       el.removeAttribute("collapsed");
     }
+    if (el.hidden) {
+      el.hidden = false;
+    }
 
     if (aID == "progressMeter") {
-      el.setAttribute("mode", aValue == "?" ? "undetermined" : "determined");
-    }
-
-    if (aID == "statusText") {
+      if (aValue == "?") {
+        el.removeAttribute("value");
+      } else {
+        el.value = aValue;
+      }
+    } else if (aID == "statusText") {
       el.textContent = aValue;
-    } else {
-      el.value = aValue;
     }
 
     el = document.getElementById("validationText");
     if (aErrorCode == FeedUtils.kNewsBlogInvalidFeed) {
       el.removeAttribute("collapsed");
     } else {
       el.setAttribute("collapsed", true);
     }
@@ -1906,17 +1909,17 @@ var FeedSubscriptions = {
       el.removeAttribute("collapsed");
     } else {
       el.setAttribute("collapsed", true);
     }
   },
 
   clearStatusInfo() {
     document.getElementById("statusText").textContent = "";
-    document.getElementById("progressMeter").collapsed = true;
+    document.getElementById("progressMeter").hidden = true;
     document.getElementById("validationText").collapsed = true;
     document.getElementById("addCertException").collapsed = true;
   },
 
   checkValidation(aEvent) {
     if (aEvent.button != 0) {
       return;
     }
--- a/mailnews/extensions/newsblog/content/feed-subscriptions.xul
+++ b/mailnews/extensions/newsblog/content/feed-subscriptions.xul
@@ -21,16 +21,17 @@
     %certDTD;
 ]>
 
 <window id="subscriptionsDialog"
         flex="1"
         title="&feedSubscriptions.label;"
         windowtype="Mail:News-BlogSubscriptions"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+        xmlns:html="http://www.w3.org/1999/xhtml"
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:nc="http://home.netscape.com/NC-rdf#"
         persist="width height screenX screenY sizemode"
         onload="FeedSubscriptions.onLoad();"
         onclose="return FeedSubscriptions.onClose();"
         onkeypress="FeedSubscriptions.onKeyPress(event);"
         onmousedown="FeedSubscriptions.onMouseDown(event);">
 
@@ -232,20 +233,20 @@
              crop="end"
              value="&validateText.label;"
              onclick="FeedSubscriptions.checkValidation(event);"/>
       <button id="addCertException"
               collapsed="true"
               label="&certmgr.addException.label;"
               accesskey="&certmgr.addException.accesskey;"
               oncommand="FeedSubscriptions.addCertExceptionDialog();"/>
-      <progressmeter id="progressMeter"
-                     collapsed="true"
-                     mode="determined"
-                     value="0"/>
+      <html:progress id="progressMeter"
+                     hidden="hidden"
+                     value="0"
+                     max="100"/>
     </hbox>
 
     <hbox align="end">
       <hbox class="actionButtons" flex="1">
         <button id="addFeed"
                 hidden="true"
                 disabled="true"
                 label="&button.addFeed.label;"
--- a/mailnews/import/content/importDialog.js
+++ b/mailnews/import/content/importDialog.js
@@ -122,17 +122,17 @@ function CheckIfLocalFolderExists()
 }
 
 async function ImportDialogOKButton()
 {
   var listbox = document.getElementById("moduleList");
   var deck = document.getElementById("stateDeck");
   var header = document.getElementById("header");
   var progressMeterEl = document.getElementById("progressMeter");
-  progressMeterEl.mode = "determined";
+  progressMeterEl.value = 0;
   var progressStatusEl = document.getElementById("progressStatus");
   var progressTitleEl = document.getElementById("progressTitle");
 
   // better not mess around with navigation at this point
   var nextButton = document.getElementById("forward");
   nextButton.setAttribute("disabled", "true");
   var backButton = document.getElementById("back");
   backButton.setAttribute("disabled", "true");
@@ -208,17 +208,17 @@ async function ImportDialogOKButton()
           if (await ImportFeeds())
           {
             // Successful completion of pre processing and launch of async import.
             meterText = document.getElementById("description").textContent;
             header.setAttribute("description", meterText);
 
             progressStatusEl.setAttribute("label", "");
             progressTitleEl.setAttribute("label", meterText);
-            progressMeterEl.mode = "undetermined";
+            progressMeterEl.removeAttribute("value");
 
             deck.selectedIndex = 2;
             return true;
           }
           else
           {
             // Re-enable the next button, as we are here, because the user cancelled the picking.
             // Enable next, so they can try again.
--- a/mailnews/import/content/importDialog.xul
+++ b/mailnews/import/content/importDialog.xul
@@ -9,16 +9,17 @@
 <!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
 %brandDTD;
 <!ENTITY % importDTD SYSTEM "chrome://messenger/locale/importDialog.dtd" >
 %importDTD;
 ]>
 
 <window xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+        xmlns:html="http://www.w3.org/1999/xhtml"
         onload="OnLoadImportDialog()"
 #ifdef XP_MACOSX
         style="width: &window.macWidth; !important;"
 #else
         style="width: &window.width; !important;"
 #endif
         title="&importDialog.windowTitle;">
 
@@ -110,17 +111,17 @@
       </grid>
     </vbox>
     <vbox class="wizard-box">
       <spacer flex="1"/>
       <groupbox>
         <caption id="progressTitle" label="&title.label;"/>
         <label class="indent" id="progressStatus" value="&processing.label;"/>
         <vbox class="box-padded">
-          <progressmeter id="progressMeter" mode="determined" value="5"/>
+          <html:progress id="progressMeter" value="5" max="100"/>
         </vbox>
       </groupbox>
     </vbox>
     <vbox class="wizard-box">
       <description id="status"/>
       <hbox style="overflow: auto" class="inset" flex="1">
         <description id="results" flex="1"/>
       </hbox>