Remove compact message header pane from the core code (bug 480623), ui-r=clarkbw, r=bienvenu. A proof-of-concept CompactHeader extension is currently available at <http://hg.mozilla.org/users/dmosedale_mozilla.com/CompactHeader/>.
authorDan Mosedale <dmose@mozilla.org>
Fri, 19 Jun 2009 10:51:52 -0700
changeset 2891 1fbbd90413d9181fe0bfd16ac5a8341fc2bfe607
parent 2890 5201453c8e57cfc8e7e7750b2a3370b11c9bab25
child 2892 739481e2e5cce34afeb8509953750c623f7f2fa7
push idunknown
push userunknown
push dateunknown
reviewersclarkbw, bienvenu
bugs480623
Remove compact message header pane from the core code (bug 480623), ui-r=clarkbw, r=bienvenu. A proof-of-concept CompactHeader extension is currently available at <http://hg.mozilla.org/users/dmosedale_mozilla.com/CompactHeader/>.
mail/base/content/mailWindowOverlay.js
mail/base/content/msgHdrViewOverlay.js
mail/base/content/msgHdrViewOverlay.xul
mail/locales/en-US/chrome/messenger/msgHdrViewOverlay.dtd
mail/themes/gnomestripe/jar.mn
mail/themes/gnomestripe/mail/icons/chevron.png
mail/themes/gnomestripe/mail/messageHeader.css
mail/themes/pinstripe/jar.mn
mail/themes/pinstripe/mail/icons/chevron.png
mail/themes/pinstripe/mail/icons/twisty-closed.gif
mail/themes/pinstripe/mail/messageHeader.css
mail/themes/qute/jar.mn
mail/themes/qute/mail/icons/chevron.png
mail/themes/qute/mail/icons/croppedchevron.png
mail/themes/qute/mail/messageHeader.css
--- a/mail/base/content/mailWindowOverlay.js
+++ b/mail/base/content/mailWindowOverlay.js
@@ -25,16 +25,17 @@
  *   Håkan Waara <hwaara@chello.se>
  *   Jan Varga <varga@nixcorp.com>
  *   Seth Spitzer <sspitzer@netscape.com>
  *   David Bienvenu <bienvenu@nventure.com>
  *   Karsten Düsterloh <mnyromyr@tprac.de>
  *   Christopher Thomas <cst@yecc.com>
  *   Jeremy Morton <bugzilla@game-point.net>
  *   Andrew Sutherland <asutherland@asutherland.org>
+ *   Dan Mosedale <dmose@mozilla.org>
  *
  * Alternatively, the contents of this file may be used under the terms of
  * either the GNU General Public License Version 2 or later (the "GPL"), or
  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  * in which case the provisions of the GPL or the LGPL are applicable instead
  * of those above. If you wish to allow use of your version of this file only
  * under the terms of either the GPL or the LGPL, and not to allow others to
  * use your version of this file under the terms of the MPL, indicate your
@@ -903,18 +904,17 @@ function UpdateReplyButtons()
   }
 
   let buttonToShow = "reply";
   if (showReplyList)
     buttonToShow = "replyList";
   else if (showReplyAll)
     buttonToShow = "replyAll";
 
-  let buttonBox = document.getElementById(gCollapsedHeaderViewMode ?
-    "collapsedButtonBox" : "expandedButtonBox");
+  let buttonBox = getCurrentMsgHdrButtonBox();
 
   let replyButton = buttonBox.getButton("hdrReplyButton");
   let replyAllButton = buttonBox.getButton("hdrReplyAllButton");
   let replyAllSubButton = buttonBox.getButton("hdrReplyAllSubButton");
   let replyAllSubButtonSep = buttonBox.getButton("hdrReplyAllSubButtonSep");
   let replyListButton = buttonBox.getButton("hdrReplyListButton");
 
   replyButton.hidden = (buttonToShow != "reply");
@@ -2139,22 +2139,18 @@ function UpdateJunkButton()
   let hdr = gFolderDisplay.selectedMessage;
   // But only the message display knows if we are dealing with a dummy.
   if (gMessageDisplay.isDummy) // .eml file
     return;
   let junkScore = hdr.getStringProperty("junkscore");
   let hideJunk = (junkScore != "") && (junkScore != "0");
   if (gFolderDisplay.selectedMessageIsNews)
     hideJunk = true;
-  // which DOM node is the current junk button in the
-  // message reader depends on whether it's the collapsed or
-  // expanded header
-  let buttonBox = document.getElementById(gCollapsedHeaderViewMode ?
-                     "collapsedButtonBox" : "expandedButtonBox");
-  buttonBox.getButton('hdrJunkButton').disabled = hideJunk;
+
+  getCurrentMsgHdrButtonBox().getButton('hdrJunkButton').disabled = hideJunk;
 }
 
 function MsgMarkMsgAsRead()
 {
   MarkSelectedMessagesRead(!SelectedMessagesAreRead());
 }
 
 function MsgMarkAsFlagged()
--- a/mail/base/content/msgHdrViewOverlay.js
+++ b/mail/base/content/msgHdrViewOverlay.js
@@ -18,16 +18,17 @@
  * Netscape Communications Corporation.
  * Portions created by the Initial Developer are Copyright (C) 1998-1999
  * the Initial Developer. All Rights Reserved.
  *
  * Contributor(s):
  *   Markus Hossner <markushossner@gmx.de>
  *   Mark Banner <bugzilla@standard8.plus.com>
  *   David Ascher <dascher@mozillamessaging.com>
+ *   Dan Mosedale <dmose@mozillamessagin.com>
  *
  * Alternatively, the contents of this file may be used under the terms of
  * either the GNU General Public License Version 2 or later (the "GPL"), or
  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  * in which case the provisions of the GPL or the LGPL are applicable instead
  * of those above. If you wish to allow use of your version of this file only
  * under the terms of either the GPL or the LGPL, and not to allow others to
  * use your version of this file under the terms of the MPL, indicate your
@@ -50,23 +51,20 @@
 // pane, we batch up all the changes for displaying the header pane (to, cc, attachements button, etc.)
 // and we make a single pass to display them. It's critical that we maintain this one reflow per message
 // view in the message header pane.
 ////////////////////////////////////////////////////////////////////////////////////
 
 var gViewAllHeaders = false;
 var gMinNumberOfHeaders = 0;
 var gDummyHeaderIdIndex = 0;
-var gCollapsedHeaderViewMode = false;
 var gBuildAttachmentsForCurrentMsg = false;
 var gBuildAttachmentPopupForCurrentMsg = true;
 var gBuiltExpandedView = false;
-var gBuiltCollapsedView = false;
 var gMessengerBundle;
-var gProfileDirURL;
 var gHeadersShowReferences = false;
 var gShowCondensedEmailAddresses = true; // show the friendly display names for people I know instead of the name + email address
 
 // other components may listen to on start header & on end header notifications for each message we display
 // to do that you need to add yourself to our gMessageListeners array with an object that supports the three properties:
 // onStartHeaders, onEndHeaders and onEndAttachments.
 var gMessageListeners = new Array();
 
@@ -84,26 +82,17 @@ var gMessageListeners = new Array();
 //                 short presentation we'll use the short one. i.e. if you are showing the From field and you
 //                 set this to true, we can show just "John Doe" instead of "John Doe <jdoe@netscape.net>".
 //                 (DEFAULT: false)
 //
 // outputFunction: this is a method which takes a headerEntry (see the definition below) and a header value
 //                 This allows you to provide your own methods for actually determining how the header value
 //                 is displayed. (DEFAULT: updateHeaderValue which just sets the header value on the text node)
 
-// Our first view is the collapsed view. This is very light weight view of the data. We only show a couple
-// fields.
-var gCollapsedHeaderList = [ {name:"subject", outputFunction:updateHeaderValueInTextNode},
-                             {name:"from", useToggle:true, useShortView:true, outputFunction:OutputEmailAddresses},
-                             {name:"toCcBcc", useToggle:true,
-                              useShortView:true,
-                              outputFunction: OutputEmailAddresses},
-                             {name:"date", outputFunction:OutputDate}];
-
-// We also have an expanded header view. This shows many of your more common (and useful) headers.
+// This expanded header view shows many of the more common (and useful) headers.
 var gExpandedHeaderList = [ {name:"subject"},
                             {name:"from", useToggle:true, outputFunction:OutputEmailAddresses},
                             {name:"reply-to", useToggle:true, outputFunction:OutputEmailAddresses},
                             {name:"date"},
                             {name:"to", useToggle:true, outputFunction:OutputEmailAddresses},
                             {name:"cc", useToggle:true, outputFunction:OutputEmailAddresses},
                             {name:"bcc", useToggle:true, outputFunction:OutputEmailAddresses},
                             {name:"newsgroups", outputFunction:OutputNewsgroups},
@@ -115,17 +104,16 @@ var gExpandedHeaderList = [ {name:"subje
 // These are all the items that use a mail-multi-emailHeaderField widget and
 // therefore may require updating if the address book changes.
 const gEmailAddressHeaderNames = ["from", "reply-to",
                                   "to", "cc", "bcc", "toCcBcc"];
 
 // Now, for each view the message pane can generate, we need a global table of headerEntries. These
 // header entry objects are generated dynamically based on the static data in the header lists (see above)
 // and elements we find in the DOM based on properties in the header lists.
-var gCollapsedHeaderView = {};
 var gExpandedHeaderView  = {};
 
 // currentHeaderData --> this is an array of header name and value pairs for the currently displayed message.
 //                       it's purely a data object and has no view information. View information is contained in the view objects.
 //                       for a given entry in this array you can ask for:
 // .headerName ---> name of the header (i.e. 'to'). Always stored in lower case
 // .headerValue --> value of the header "johndoe@netscape.net"
 var currentHeaderData = {};
@@ -141,17 +129,17 @@ var currentAttachments = new Array();
 
 const nsIAbListener = Components.interfaces.nsIAbListener;
 const nsIAbCard = Components.interfaces.nsIAbCard;
 
 // createHeaderEntry --> our constructor method which creates a header Entry
 // based on an entry in one of the header lists. A header entry is different from a header list.
 // a header list just describes how you want a particular header to be presented. The header entry
 // actually has knowledge about the DOM and the actual DOM elements associated with the header.
-// prefix --> the name of the view (i.e. "collapsed", "expanded")
+// prefix --> the name of the view (e.g. "expanded")
 // headerListInfo --> entry from a header list.
 function createHeaderEntry(prefix, headerListInfo)
 {
   var useShortView = false;
   var partialIDName = prefix + headerListInfo.name;
   this.enclosingBox = document.getElementById(partialIDName + 'Box');
   this.textNode = document.getElementById(partialIDName + 'Value');
   this.isNewHeader = false;
@@ -190,22 +178,16 @@ function createHeaderEntry(prefix, heade
 
 function initializeHeaderViewTables()
 {
   var prefBranch = Components.classes["@mozilla.org/preferences-service;1"]
                              .getService(Components.interfaces.nsIPrefBranch2);
   // iterate over each header in our header list arrays and create header entries
   // for each one. These header entries are then stored in the appropriate header table
   var index;
-  for (index = 0; index < gCollapsedHeaderList.length; index++)
-    {
-      gCollapsedHeaderView[gCollapsedHeaderList[index].name] =
-        new createHeaderEntry('collapsed', gCollapsedHeaderList[index]);
-    }
-
     for (index = 0; index < gExpandedHeaderList.length; index++)
     {
       var headerName = gExpandedHeaderList[index].name;
       gExpandedHeaderView[headerName] = new createHeaderEntry('expanded', gExpandedHeaderList[index]);
     }
 
     var extraHeaders = prefBranch.getCharPref("mailnews.headers.extraExpandedHeaders").split(' ');
     for (index = 0; index < extraHeaders.length; index++)
@@ -258,26 +240,25 @@ function OnLoadMsgHeaderPane()
 
   // Add an address book listener so we can update the header view when things
   // change.
   Components.classes["@mozilla.org/abmanager;1"]
             .getService(Components.interfaces.nsIAbManager)
             .addAddressBookListener(AddressBookListener,
                                     Components.interfaces.nsIAbListener.all);
 
-  var deckHeaderView = document.getElementById("msgHeaderViewDeck");
-  gCollapsedHeaderViewMode = deckHeaderView.selectedIndex == 0;
-
-  // work around XUL deck bug where collapsed header view, if it's the persisted
-  // default, wouldn't be sized properly because of the larger expanded
-  // view "stretches" the deck.
-  if (gCollapsedHeaderViewMode)
-    document.getElementById('expandedHeaderView').collapsed = true;
-  else
-    document.getElementById('collapsedHeaderView').collapsed = true;
+  // if an invalid index is selected; reset to 0.  One way this can happen
+  // is if a value of 1 was persisted to localStore.rdf by Tb2 (when there were
+  // two panels), and then the user upgraded to Tb3, which only has one.
+  // Presumably this can also catch cases of extension uninstalls as well.
+  let deckElement = document.getElementById('msgHeaderViewDeck')
+  if (deckElement.selectedIndex < 0 ||
+      deckElement.selectedIndex >= deckElement.childElementCount) {
+    deckElement.selectedIndex = 0;
+  }
 
   // dispatch an event letting any listeners know that we have loaded the message pane
   var event = document.createEvent('Events');
   event.initEvent('messagepane-loaded', false, true);
   var headerViewElement = document.getElementById("msgHeaderView");
   headerViewElement.dispatchEvent(event);
 }
 
@@ -337,25 +318,16 @@ var AddressBookListener =
       OnAddressBookDataChanged(nsIAbListener.itemChanged, null, aItem);
   }
 };
 
 function OnAddressBookDataChanged(aAction, aParentDir, aItem) {
   gEmailAddressHeaderNames.forEach(function (headerName) {
       var headerEntry = null;
 
-      // Ensure both collapsed and expanded are updated in case we toggle
-      // between the two.
-      if (headerName in gCollapsedHeaderView) {
-        headerEntry = gCollapsedHeaderView[headerName];
-        if (headerEntry)
-          headerEntry.enclosingBox.updateExtraAddressProcessing(aAction,
-                                                                aParentDir,
-                                                                aItem);
-      }
       if (headerName in gExpandedHeaderView) {
         headerEntry = gExpandedHeaderView[headerName];
         if (headerEntry)
           headerEntry.enclosingBox.updateExtraAddressProcessing(aAction,
                                                                 aParentDir,
                                                                 aItem);
       }
     });
@@ -385,38 +357,42 @@ var messageHeaderSink = {
           initializeHeaderViewTables();
         }
 
         gViewAllHeaders = false;
       }
 
       ClearCurrentHeaders();
       gBuiltExpandedView = false;
-      gBuiltCollapsedView = false;
       gBuildAttachmentsForCurrentMsg = false;
       gBuildAttachmentPopupForCurrentMsg = true;
       ClearAttachmentList();
       ClearEditMessageBox();
       gMessageNotificationBar.clearMsgNotifications();
 
-      for (index in gMessageListeners)
+      for (let index in gMessageListeners)
         gMessageListeners[index].onStartHeaders();
     },
 
     onEndHeaders: function()
     {
       ShowMessageHeaderPane();
       // WARNING: This is the ONLY routine inside of the message Header Sink that should
       // trigger a reflow!
-      ClearHeaderView(gCollapsedHeaderView);
       ClearHeaderView(gExpandedHeaderView);
 
       EnsureSubjectValue(); // make sure there is a subject even if it's empty so we'll show the subject and the twisty
 
-      UpdateMessageHeaders();
+      // Only update the expanded view if it's actually selected (an
+      // extension-provided panel could be visible instead) and needs updating.
+      if (document.getElementById('msgHeaderViewDeck').selectedIndex == 0 &&
+          !gBuiltExpandedView) {
+        UpdateExpandedMessageHeaders();
+      }
+
       ShowEditMessageBox();
       UpdateJunkButton();
 
       for (index in gMessageListeners)
         gMessageListeners[index].onEndHeaders();
     },
 
     processHeaders: function(headerNameEnumerator, headerValueEnumerator, dontCollectAddress)
@@ -664,20 +640,18 @@ function OnTagsChange()
   {
     var headerEntry = gExpandedHeaderView.tags;
     if (headerEntry)
     {
       headerEntry.valid = ("tags" in currentHeaderData);
       if (headerEntry.valid)
         headerEntry.outputFunction(headerEntry, currentHeaderData.tags.headerValue);
 
-      // if we are showing the expanded header view then we may need to collapse or
-      // show the tag header box...
-      if (!gCollapsedHeaderViewMode)
-        headerEntry.enclosingBox.collapsed = !headerEntry.valid;
+      // we may need to collapse or show the tag header box...
+      headerEntry.enclosingBox.collapsed = !headerEntry.valid;
     }
   }
 }
 
 // flush out any local state being held by a header entry for a given
 // table
 function ClearHeaderView(headerTable)
 {
@@ -757,60 +731,39 @@ function EnsureMinimumNumberOfHeaders (h
 
       gDummyHeaderIdIndex++;
       numEmptyHeaders--;
     }
 
   }
 }
 
-// make sure the appropriate fields within the currently displayed view header mode
-// are collapsed or visible...
-function updateHeaderViews()
+// make sure the appropriate fields in the expanded header view are collapsed
+// or visible...
+function updateExpandedView()
 {
-  if (gCollapsedHeaderViewMode)
-    showHeaderView(gCollapsedHeaderView);
-  else
-  {
-    if (gMinNumberOfHeaders)
+  // if the expanded view isn't selected, don't bother updating it
+  if (document.getElementById('msgHeaderViewDeck').selectedIndex != 0)
+    return;
+
+  if (gMinNumberOfHeaders)
       EnsureMinimumNumberOfHeaders(gExpandedHeaderView);
-    showHeaderView(gExpandedHeaderView);
-  }
+  showHeaderView(gExpandedHeaderView);
+
   UpdateJunkButton();
   UpdateReplyButtons();
   displayAttachmentsForExpandedView();
 }
 
-function ToggleHeaderView ()
-{
-  gCollapsedHeaderViewMode = !gCollapsedHeaderViewMode;
-  // Work around a xul deck bug where the height of the deck is determined by the tallest panel in the deck
-  // even if that panel is not selected...
-  document.getElementById('msgHeaderViewDeck').selectedPanel.collapsed = true;
-  UpdateMessageHeaders();
-
-  // select the new panel.
-  document.getElementById('msgHeaderViewDeck').selectedIndex = gCollapsedHeaderViewMode ? 0 : 1;
-
-  // Work around a xul deck bug where the height of the deck is determined by the tallest panel in the deck
-  // even if that panel is not selected...
-  document.getElementById('msgHeaderViewDeck').selectedPanel.collapsed = false;
-}
-
 // default method for updating a header value into a header entry
 function updateHeaderValue(headerEntry, headerValue)
 {
   headerEntry.enclosingBox.headerValue = headerValue;
 }
 
-function updateHeaderValueInTextNode(headerEntry, headerValue)
-{
-  headerEntry.textNode.value = headerValue;
-}
-
 function createNewHeaderView(headerName, label)
 {
   var idName = 'expanded' + headerName + 'Box';
   var newHeader = document.createElement("mail-headerfield");
 
   newHeader.setAttribute('id', idName);
   newHeader.setAttribute('label', label);
   newHeader.setAttribute('flex', '1');
@@ -839,92 +792,78 @@ function removeNewHeaderViews(aHeaderTab
   {
     var headerEntry = aHeaderTable[index];
     if (headerEntry.isNewHeader)
       headerEntry.enclosingBox.parentNode
                  .removeChild(headerEntry.enclosingBox);
   }
 }
 
-// UpdateMessageHeaders: Iterate through all the current header data we received from mime for this message
-// for each header entry table, see if we have a corresponding entry for that header. i.e. does the particular
-// view care about this header value. if it does then call updateHeaderEntry
-function UpdateMessageHeaders()
-{
+// UpdateExpandedMessageHeaders: Iterate through all the current header data
+// we received from mime for this message for the expanded header entry table,
+// and see if we have a corresponding entry for that header (i.e.
+// whether the expanded header view cares about this header value)
+// If so, then call updateHeaderEntry
+function UpdateExpandedMessageHeaders() {
   // iterate over each header we received and see if we have a matching entry in each
   // header view table...
-
   var headerName;
 
   // Remove the height attr so that it redraws correctly. Works around a problem that
   // attachment-splitter causes if it's moved high enough to affect the header box:
   document.getElementById('msgHeaderView').removeAttribute('height');
 
-  for (headerName in currentHeaderData)
-  {
+  for (headerName in currentHeaderData) {
     var headerField = currentHeaderData[headerName];
     var headerEntry = null;
 
-    if (gCollapsedHeaderViewMode && !gBuiltCollapsedView)
-    {
-      if (headerName == "cc" || headerName == "to" || headerName == "bcc")
-        headerEntry = gCollapsedHeaderView["toCcBcc"];
-      else if (headerName in gCollapsedHeaderView)
-        headerEntry = gCollapsedHeaderView[headerName];
-    }
-    else if (!gCollapsedHeaderViewMode && !gBuiltExpandedView)
-    {
-      if (headerName in gExpandedHeaderView)
-       headerEntry = gExpandedHeaderView[headerName];
+    if (headerName in gExpandedHeaderView)
+        headerEntry = gExpandedHeaderView[headerName];
 
-      if (!headerEntry && gViewAllHeaders)
-      {
-        // for view all headers, if we don't have a header field for this value....cheat and create one....then
-        // fill in a headerEntry
-        if (headerName == "message-id" || headerName == "in-reply-to")
-        {
-          var messageIdEntry = {name:headerName, outputFunction:OutputMessageIds};
-          gExpandedHeaderView[headerName] = new createHeaderEntry('expanded', messageIdEntry);
-        }
-        else
-        {
-          gExpandedHeaderView[headerName] =
-            new createNewHeaderView(headerName,
-                                    currentHeaderData[headerName].headerName);
-        }
+    if (!headerEntry && gViewAllHeaders) {
+      // for view all headers, if we don't have a header field for this
+      // value....cheat and create one....then fill in a headerEntry
+      if (headerName == "message-id" || headerName == "in-reply-to") {
+        var messageIdEntry = {
+          name: headerName,
+          outputFunction: OutputMessageIds
+        };
+        gExpandedHeaderView[headerName] = new createHeaderEntry('expanded',
+                                                                messageIdEntry);
+      }
+      else {
+        gExpandedHeaderView[headerName] =
+          new createNewHeaderView(headerName,
+                                  currentHeaderData[headerName].headerName);
+      }
 
-        headerEntry = gExpandedHeaderView[headerName];
-      }
-    } // if we are in expanded view....
+      headerEntry = gExpandedHeaderView[headerName];
+    }
 
-    if (headerEntry)
-    {
+    if (headerEntry) {
       if (headerName == "references" &&
           !(gViewAllHeaders || gHeadersShowReferences ||
-            gFolderDisplay.view.isNewsFolder))
-      {
-        // hide references header if view all headers mode isn't selected, the pref show references is
-        // deactivated and the currently displayed message isn't a newsgroup posting
+            gFolderDisplay.view.isNewsFolder)) {
+        // hide references header if view all headers mode isn't selected, the
+        // pref show references is deactivated and the currently displayed
+        // message isn't a newsgroup posting
         headerEntry.valid = false;
       }
       else
       {
         headerEntry.outputFunction(headerEntry, headerField.headerValue);
         headerEntry.valid = true;
       }
     }
   }
 
-  if (gCollapsedHeaderViewMode)
-   gBuiltCollapsedView = true;
-  else
-   gBuiltExpandedView = true;
+  gBuiltExpandedView = true;
 
   // now update the view to make sure the right elements are visible
-  updateHeaderViews();
+  updateExpandedView();
 }
 
 function ClearCurrentHeaders()
 {
   currentHeaderData = {};
   currentAttachments = new Array();
 }
 
@@ -1270,16 +1209,29 @@ function onClickEmailStar(event, emailAd
 
   if (emailAddressNode && emailAddressNode.cardDetails &&
       emailAddressNode.cardDetails.card)
     EditContact(emailAddressNode);
   else
     AddContact(emailAddressNode);
 }
 
+/**
+ * @return the DOM node for the header-view-button-box in the currently
+ * selected panel of the message header
+ *
+ * @note that this assumes that the first such button box is the only one
+ * worth caring about (having more than one per panel is not supported).
+ */
+function getCurrentMsgHdrButtonBox() {
+
+  return document.getElementById('msgHeaderViewDeck').selectedPanel
+                 .getElementsByTagName("header-view-button-box").item(0);
+}
+
 function AddContact(emailAddressNode)
 {
   if (emailAddressNode) {
     // When we collect an address, it updates the AB which sends out
     // notifications to update the UI. In the add case we don't want to update
     // the UI so that accidentally double-clicking on the star doesn't lead
     // to something strange (i.e star would be moved out from underneath,
     // leaving something else there).
--- a/mail/base/content/msgHdrViewOverlay.xul
+++ b/mail/base/content/msgHdrViewOverlay.xul
@@ -92,54 +92,19 @@
     accesskey="&deleteAllAttachmentsCmd.accesskey;" oncommand="HandleAllAttachments('delete');" />
 </popup>
 
 <popup id="copyUrlPopup" popupanchor="bottomleft">
   <menuitem label="&copyLinkCmd.label;" accesskey="&copyLinkCmd.accesskey;" oncommand="CopyWebsiteAddress(document.popupNode)"/>
 </popup>
 
 <hbox id="msgHeaderView" collapsed="true" class="main-header-area">
-  <deck id="msgHeaderViewDeck" persist="selectedIndex" selectedIndex="1" flex="1">
-    <!-- the message pane consists of 4 'boxes'. Box #1 is a grid, showing a brief view of the headers -->
-    <vbox id="collapsedHeaderView" class="header-part1 headerContainer" flex="1" pack="start">
-      <hbox align="start">
-        <hbox id="collapsedfromBox" align="center" flex="1">
-            <mail-multi-emailHeaderField id="collapsedfromValue"
-                                         class="collapsedHeaderDisplayName"
-                                         label="&fromField2.label;"/>
-        </hbox>
-        <header-view-button-box id="collapsedButtonBox"/>
-      </hbox>
-
-      <hbox align="baseline">
-        <hbox id="collapsedsubjectBox" flex="1">
-          <textbox id="collapsedsubjectValue" flex="1" readonly="true"
-                   class="collapsedHeaderValue plain"/>
-        </hbox>
-        <hbox id="collapseddateBox" flex="0">
-          <textbox id="collapseddateValue" class="plain collapsedHeaderValue"
-                   flex="0" readonly="true"/>
-        </hbox>
-      </hbox>
-
-      <hbox flex="1" align="center">
-        <hbox id="collapsedtoCcBccBox"
-              align="center" flex="1">
-          <mail-multi-emailHeaderField id="collapsedtoCcBccValue"
-                                       flex="1"
-                                       align="baseline"
-                                       class="collapsedHeaderDisplayName"/>
-        </hbox>
-        <button id="showDetailsButton"
-                tooltiptext="&showDetailsButton.label;"
-                onclick="ToggleHeaderView();"
-                class="msgHeaderView-button msgHeaderView-flat-button"/>
-      </hbox>
-    </vbox>
-
+  <deck id="msgHeaderViewDeck" selectedIndex="0" 
+	      persist="selectedIndex" flex="1">
+  
     <!-- the message pane consists of 3 'boxes'. Box #2 is the expanded headers view (the default view) -->
     <hbox id="expandedHeaderView" flex="1">
 
       <!--  XXX this should switch to using <grid> for expandedHeaders to get
             away from gross historical CSS pseudo-boxery used for header
             name positioning -->
       <vbox id="expandedHeaders" flex="1">
 
@@ -212,21 +177,18 @@
             <mail-urlfield id="expandedcontent-baseBox"
                            label="&originalWebsite2.label;" collapsed="true"/>
             <mail-headerfield id="expandeduser-agentBox"
                               label="&userAgentField2.label;"
                               collapsed="true"/>
           </vbox>
 
           <!-- perhaps this should be a customizable toolbar too -->
-          <vbox id="hideDetailsBox" align="end">
-            <spacer flex="1"/>
-            <button id="hideDetailsButton" label="&hideDetailsButton.label;"
-                    onclick="ToggleHeaderView();"
-                    class="msgHeaderView-button msgHeaderView-flat-button"/>
+          <vbox id="otherActionsBox" align="end">
+            <spacer id="otherActionsTopSpacer" flex="1"/>
             <button type="menu" id="otherActionsButton"
                     label="&otherActionsButton.label;"
                     class="msgHeaderView-button msgHeaderView-flat-button">
               <menupopup id="otherActionsPopup">
                 <menuitem id="viewSourceMenuItem"
                           label="&viewSourceMenuItem.label;"
                           accesskey="&viewSourceMenuItem.accesskey;"
                           oncommand="ViewPageSource(gFolderDisplay.selectedMessageUris);" />
--- a/mail/locales/en-US/chrome/messenger/msgHdrViewOverlay.dtd
+++ b/mail/locales/en-US/chrome/messenger/msgHdrViewOverlay.dtd
@@ -66,19 +66,16 @@
 <!ENTITY trashButton.tooltiptext "delete">
 
 <!ENTITY otherActionsButton.label "other actions">
 <!ENTITY saveAsMenuItem.label "save as…">
 <!ENTITY saveAsMenuItem.accesskey "S">
 <!ENTITY viewSourceMenuItem.label "view source…">
 <!ENTITY viewSourceMenuItem.accesskey "V">
 
-<!ENTITY hideDetailsButton.label "hide details">
-<!ENTITY showDetailsButton.label "show details">
-
 <!ENTITY openAttachmentCmd.label    "Open">
 <!ENTITY openAttachmentCmd.accesskey    "O">
 <!ENTITY saveAsAttachmentCmd.label    "Save As…">
 <!ENTITY saveAsAttachmentCmd.accesskey    "A">
 <!ENTITY detachAttachmentCmd.label    "Detach…">
 <!ENTITY deleteAttachmentCmd.label    "Delete">
 <!ENTITY saveAllAttachmentsCmd.label    "Save All…">
 <!ENTITY saveAllAttachmentsCmd.accesskey    "S">
--- a/mail/themes/gnomestripe/jar.mn
+++ b/mail/themes/gnomestripe/jar.mn
@@ -191,17 +191,16 @@ classic.jar:
   skin/classic/messenger/icons/arrow/arrow-left.png           (mail/icons/arrow/arrow-left.png)
   skin/classic/messenger/icons/arrow/arrow-right.png          (mail/icons/arrow/arrow-right.png)
   skin/classic/messenger/icons/arrow/arrow-up.png             (mail/icons/arrow/arrow-up.png)
   skin/classic/messenger/icons/arrow/arrow-down.png           (mail/icons/arrow/arrow-down.png)
   skin/classic/messenger/icons/arrow/arrow-left-dim.png       (mail/icons/arrow/arrow-left-dim.png)
   skin/classic/messenger/icons/arrow/arrow-right-dim.png      (mail/icons/arrow/arrow-right-dim.png)
   skin/classic/messenger/icons/arrow/arrow-up-dim.png         (mail/icons/arrow/arrow-up-dim.png)
   skin/classic/messenger/icons/arrow/arrow-down-dim.png       (mail/icons/arrow/arrow-down-dim.png)
-  skin/classic/messenger/icons/chevron.png                    (mail/icons/chevron.png)
   skin/classic/messenger/tagbg.png                            (mail/tagbg.png)
   icon.png                                                    (mail/icon.png)
   preview.png                                                 (mail/preview.png)
 % skin editor classic/1.0 %skin/classic/editor/
   skin/classic/editor/editor.css                              (editor/editor.css)
   skin/classic/editor/EditorDialog.css                        (editor/EditorDialog.css)
   skin/classic/editor/icons/img-align-bottom.gif              (editor/img-align-bottom.gif)
   skin/classic/editor/icons/img-align-left.gif                (editor/img-align-left.gif)
deleted file mode 100644
index 246d5ee8bd00d75dfe1aecb18a70a4c898b4f2b7..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
--- a/mail/themes/gnomestripe/mail/messageHeader.css
+++ b/mail/themes/gnomestripe/mail/messageHeader.css
@@ -46,34 +46,26 @@
   color: WindowText;
   background-color: AppWorkspace;
   border-bottom: 2px groove ThreeDLightShadow;
   padding: 0.4ex;
 }
 
 /* ::::: msg header toolbars ::::: */
 
-#collapsedHeaderView {
-  min-width: 1px;
-}
-
 #expandedHeaderView {
   overflow-y: auto;
   overflow-x: hidden;
   max-height: 14em;
 }
 
 #variousHeadersBox{
   padding-bottom: 1em;
 }
 
-#collapsedHeaderDisplayName {
-  text-align: left;
-}
-
 /* ::::: msg header buttons ::::: */
 .headerContainer
 {
   min-width: 1px;
 }
 
 #otherActionsButton {
   margin-bottom: .1em;
@@ -91,38 +83,16 @@
   list-style-image: url("chrome://messenger/skin/icons/arrow-dn-grey.png");
 }
 
 .msgHeaderView-flat-button[type="menu"]:hover > .button-box > .button-menu-dropmarker > .dropmarker-icon,
 .msgHeaderView-flat-button[type="menu-button"]:hover > .button-menubutton-dropmarker > .dropmarker-icon {
   list-style-image: url("chrome://messenger/skin/icons/arrow-dn-black.png");
 }
 
-#collapsedsubjectValue {
-  -moz-margin-start: 3px !important;
-  -moz-box-align: stretch;
-  font-weight: bold;
-}
-
-#collapseddateValue {
-  -moz-box-align: stretch;
-  text-align: right;
-  -moz-padding-end: 0.5em !important;
-}
-
-#showDetailsButton {
-  -moz-appearance: none !important;
-  width: 22px;
-  padding-bottom: 0px !important;
-  height: 22px;
-  background-image: url("chrome://messenger/skin/icons/chevron.png");
-  background-repeat: no-repeat;
-  background-position: center center;
-}
-
 /* ::::: expanded header pane ::::: */
 
 header-view-button-box {
   padding: 0px;
 }
 
 #expandedfromBox {
   padding-top: 0.5em;
@@ -380,43 +350,16 @@ description[selectable="true"]:focus > d
 .headerValueUrl:hover {
   color: red;
 }
 
 .headerField {
   color: inherit;
 }
 
-#collapsedsubjectBox {
-  margin: 0px;
-  padding: 0px;
-}
-
-#collapsedfromBox {
-  padding-top: 0.5em;
-}
-
-#collapsedfromValue > .headerNameBox {
-  display: none;
-}
-
-#collapsedtoCcBccValue > .headerNameBox {
-  display: none;
-}
-
-#collapsedtoCcBccValue > .headerValueBox[singleline] {
-  padding-top: 0;
-  padding-bottom: 0;
-}
-
-#collapsedtoCcBccValue > .headerValueBox:not([singleline]) {
-  padding-top: 0.5em;
-  padding-bottom: 0;
-}
-
 .moreIndicator {
   font-weight: bold;
 }
 
 .moreIndicator:hover {
   text-decoration: underline;
   color: darkred;
 }
@@ -554,23 +497,19 @@ mail-emailaddress[selected="true"] .emai
 .addresstwisty[open] {
   list-style-image:url("chrome://messenger/skin/icons/arrow/arrow-down-dim.png");
 }
 
 .addresstwisty[open]:hover {
   list-style-image:url("chrome://messenger/skin/icons/arrow/arrow-down.png");
 }
 
-/* ::::: view expand and collapse twisties  ::::: */
+/* ::::: view expand twisty  ::::: */
 
 .expandHeaderViewButton {
   list-style-image: url("chrome://global/skin/tree/twisty-open.png");
 }
 
-.collapsedHeaderViewButton  {
-  list-style-image: url("chrome://global/skin/tree/twisty-clsd.png");
-}
-
 mail-multi-emailHeaderField,
 mail-headerfield {
   margin: 0;
   padding: 0;
 }
--- a/mail/themes/pinstripe/jar.mn
+++ b/mail/themes/pinstripe/jar.mn
@@ -108,19 +108,17 @@ classic.jar:
   skin/classic/messenger/smime/icons/sbSignNotOk.gif             (mail/smime/sbSignNotOk.gif)
   skin/classic/messenger/smime/icons/sbCryptoOk.gif              (mail/smime/sbCryptoOk.gif)
   skin/classic/messenger/smime/icons/sbCryptoNotOk.gif           (mail/smime/sbCryptoNotOk.gif)
   skin/classic/messenger/smime/icons/hdrSignOk.gif               (mail/smime/hdrSignOk.gif)
   skin/classic/messenger/smime/icons/hdrSignUnknown.gif          (mail/smime/hdrSignUnknown.gif)
   skin/classic/messenger/smime/icons/hdrSignNotOk.gif            (mail/smime/hdrSignNotOk.gif)
   skin/classic/messenger/smime/icons/hdrCryptoOk.gif             (mail/smime/hdrCryptoOk.gif)
   skin/classic/messenger/smime/icons/hdrCryptoNotOk.gif          (mail/smime/hdrCryptoNotOk.gif)
-  skin/classic/messenger/icons/chevron.png                       (mail/icons/chevron.png)
   skin/classic/messenger/icons/twisty-open.gif                   (mail/icons/twisty-open.gif)
-  skin/classic/messenger/icons/twisty-closed.gif                 (mail/icons/twisty-closed.gif)
   skin/classic/messenger/icons/spin-buttons-active.png           (mail/icons/spin-buttons-active.png)
   skin/classic/messenger/icons/spin-buttons.png                  (mail/icons/spin-buttons.png)
   skin/classic/messenger/icons/sidebar-item.png                  (mail/icons/sidebar-item.png)
   skin/classic/messenger/icons/attachment-deleted.png            (mail/icons/attachment-deleted.png)
   skin/classic/messenger/icons/attachment-deleted-large.png      (mail/icons/attachment-deleted-large.png)
   skin/classic/messenger/icons/attachment-col.png                (mail/icons/attachment-col.png)
   skin/classic/messenger/icons/attachment-selected.png           (mail/icons/attachment-selected.png)
   skin/classic/messenger/icons/attachment.png                    (mail/icons/attachment.png)
deleted file mode 100644
index 246d5ee8bd00d75dfe1aecb18a70a4c898b4f2b7..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index d87a58b82a6c2b30d6193dc1bbebb797a4234e57..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
--- a/mail/themes/pinstripe/mail/messageHeader.css
+++ b/mail/themes/pinstripe/mail/messageHeader.css
@@ -45,34 +45,26 @@
 .main-header-area {
   color: rgb(46, 52, 54); /* Aluminium 6 */
   background-color: rgb(238, 238, 236); /* Aluminium 1 */
   border-bottom: 2px groove rgb(186,189,182); /* Aluminium 3 */
   padding: 0.6ex;
 }
 
 /* ::::: msg header toolbars ::::: */
-#collapsedHeaderView {
-  min-width: 1px;
-}
-
 #expandedHeaderView {
   overflow-x: hidden;
   overflow-y: visible;
   max-height: 14em;
 }
 
 #variousHeadersBox{
   padding-bottom: 1em;
 }
 
-#collapsedHeaderDisplayName {
-  text-align: left;
-}
-
 /* ::::: msg header buttons ::::: */
 .headerContainer
 {
   min-width: 1px;
 }
 
 #otherActionsButton {
   margin-bottom: 0.1em;
@@ -101,59 +93,16 @@
   list-style-image: url("chrome://messenger/skin/icons/arrow-dn-grey.png");
 }
 
 .msgHeaderView-flat-button[type="menu"]:hover > .button-box > .button-menu-dropmarker > .dropmarker-icon,
 .msgHeaderView-flat-button[type="menu-button"]:hover > .button-menubutton-dropmarker > .dropmarker-icon {
   list-style-image: url("chrome://messenger/skin/icons/arrow-dn-black.png");
 }
 
-#hideDetailsButton {
-  font-weight: normal;
-  font-size: 100%;
-  background: none;
-  color: #41413F; /* higher contrast */
-  border: 2px solid transparent;
-  font-size: 100%;
-}
-
-#hideDetailsButton:hover {
-  color: black;
-  background-color: rgb(230,231,227);
-  border: 2px solid #C0C3C6;
-}
-
-#collapsedsubjectValue {
-  -moz-margin-start: 3px !important;
-  -moz-box-align: stretch;
-  font-weight: bold;
-}
-
-#collapseddateValue {
-  -moz-box-align: stretch;
-  text-align: right;
-  -moz-padding-end: 0.5em !important;
-}
-
-#showDetailsButton {
-  -moz-appearance: none !important;
-  border: 2px solid transparent;
-  background-color: transparent;
-  width: 22px;
-  padding-bottom: 0px !important;
-  background-image: url("chrome://messenger/skin/icons/chevron.png");
-  background-repeat: no-repeat;
-  background-position: center center;
-}
-
-#showDetailsButton:hover {
-  background-color: rgb(230,231,227);
-  border: 2px solid #C0C3C6;
-}
-
 .hdrTrashButton {
   -moz-box-orient: vertical;
   list-style-image: url("chrome://messenger/skin/icons/folder-trash.png");
 }
 
 /* ::::: expanded header pane ::::: */
 
 header-view-button-box {
@@ -437,39 +386,16 @@ description[selectable="true"]:focus > d
 .headerValueUrl:hover {
   color: red;
 }
 
 .headerField {
   color: inherit;
 }
 
-#collapsedsubjectBox {
-  margin: 0px;
-  padding: 0px;
-}
-
-#collapsedfromValue > .headerNameBox {
-  display: none;
-}
-
-#collapsedtoCcBccValue > .headerNameBox {
-  display: none;
-}
-
-#collapsedtoCcBccValue > .headerValueBox[singleline] {
-  padding-top: 0;
-  padding-bottom: 0;
-}
-
-#collapsedtoCcBccValue > .headerValueBox:not([singleline]) {
-  padding-top: 0.5em;
-  padding-bottom: 0;
-}
-
 .moreIndicator {
   font-weight: bold;
   font-size: small;
 }
 
 .moreIndicator:hover {
   text-decoration: underline;
   color: darkred;
@@ -619,19 +545,15 @@ mail-emailaddress[selected="true"] .emai
 }
 
 /* ::::: view expand and collapse twisties  ::::: */
 
 .expandHeaderViewButton {
   list-style-image:url("chrome://messenger/skin/icons/twisty-open.gif");
 }
 
-.collapsedHeaderViewButton  {
-  list-style-image:url("chrome://messenger/skin/icons/twisty-closed.gif");
-}
-
 /* ::::: collapsed view styles ::::: */
 
 mail-multi-emailHeaderField,
 mail-headerfield {
   margin: 0;
   padding: 0;
 }
--- a/mail/themes/qute/jar.mn
+++ b/mail/themes/qute/jar.mn
@@ -203,18 +203,16 @@ classic.jar:
   skin/classic/messenger/icons/arrow/arrow-left.png           (mail/icons/arrow/arrow-left.png)
   skin/classic/messenger/icons/arrow/arrow-right.png          (mail/icons/arrow/arrow-right.png)
   skin/classic/messenger/icons/arrow/arrow-up.png             (mail/icons/arrow/arrow-up.png)
   skin/classic/messenger/icons/arrow/arrow-down.png           (mail/icons/arrow/arrow-down.png)
   skin/classic/messenger/icons/arrow/arrow-left-dim.png       (mail/icons/arrow/arrow-left-dim.png)
   skin/classic/messenger/icons/arrow/arrow-right-dim.png      (mail/icons/arrow/arrow-right-dim.png)
   skin/classic/messenger/icons/arrow/arrow-up-dim.png         (mail/icons/arrow/arrow-up-dim.png)
   skin/classic/messenger/icons/arrow/arrow-down-dim.png       (mail/icons/arrow/arrow-down-dim.png)
-  skin/classic/messenger/icons/chevron.png                    (mail/icons/chevron.png)
-  skin/classic/messenger/icons/croppedchevron.png             (mail/icons/croppedchevron.png)
   skin/classic/messenger/tagbg.png                            (mail/tagbg.png)
 % skin messenger-newsblog classic/1.0 %skin/classic/messenger-newsblog/ os=WINNT osversion<6
 % skin messenger-newsblog classic/1.0 %skin/classic/messenger-newsblog/ os!=WINNT
   skin/classic/messenger-newsblog/feed-subscriptions.css      (mail/newsblog/feed-subscriptions.css)
   skin/classic/messenger-newsblog/icons/rss-feed.png          (mail/newsblog/rss-feed.png)
   skin/classic/messenger-newsblog/icons/server-rss.png        (mail/newsblog/server-rss.png)
 #ifdef XP_WIN
 % skin messenger classic/1.0 %skin/classic/aero/messenger/ os=WINNT osversion>=6
@@ -390,17 +388,15 @@ classic.jar:
   skin/classic/aero/messenger/icons/arrow/arrow-left.png           (mail/icons/arrow/arrow-left.png)
   skin/classic/aero/messenger/icons/arrow/arrow-right.png          (mail/icons/arrow/arrow-right.png)
   skin/classic/aero/messenger/icons/arrow/arrow-up.png             (mail/icons/arrow/arrow-up.png)
   skin/classic/aero/messenger/icons/arrow/arrow-down.png           (mail/icons/arrow/arrow-down.png)
   skin/classic/aero/messenger/icons/arrow/arrow-left-dim.png       (mail/icons/arrow/arrow-left-dim.png)
   skin/classic/aero/messenger/icons/arrow/arrow-right-dim.png      (mail/icons/arrow/arrow-right-dim.png)
   skin/classic/aero/messenger/icons/arrow/arrow-up-dim.png         (mail/icons/arrow/arrow-up-dim.png)
   skin/classic/aero/messenger/icons/arrow/arrow-down-dim.png       (mail/icons/arrow/arrow-down-dim.png)
-  skin/classic/aero/messenger/icons/chevron.png                    (mail/icons/chevron.png)
-  skin/classic/aero/messenger/icons/croppedchevron.png             (mail/icons/croppedchevron.png)
   skin/classic/aero/messenger/tagbg.png                            (mail/tagbg.png)
 % skin messenger-newsblog classic/1.0 %skin/classic/aero/messenger-newsblog/ os=WINNT osversion>=6
   skin/classic/aero/messenger-newsblog/feed-subscriptions.css      (mail/newsblog/feed-subscriptions.css)
   skin/classic/aero/messenger-newsblog/icons/rss-feed.png          (mail/newsblog/rss-feed.png)
   skin/classic/aero/messenger-newsblog/icons/server-rss.png        (mail/newsblog/server-rss.png)
 
 #endif
deleted file mode 100644
index 246d5ee8bd00d75dfe1aecb18a70a4c898b4f2b7..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index e63e4ecef93b11108763929b2e50d64fae0fdca0..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
--- a/mail/themes/qute/mail/messageHeader.css
+++ b/mail/themes/qute/mail/messageHeader.css
@@ -46,74 +46,37 @@
   color: WindowText;
   background-color: ButtonFace;
   border-bottom: 2px groove ThreeDLightShadow;
   padding: 0.4ex;
 }
 
 /* ::::: msg header toolbars ::::: */
 
-#collapsedHeaderView {
-  min-width: 1px;
-}
-
 #expandedHeaderView {
   overflow-y: auto;
   overflow-x: hidden;
   max-height: 14em;
 }
 
 #variousHeadersBox{
   padding-bottom: 1em;
 }
 
-#collapsedHeaderDisplayName {
-  text-align: left;
-}
-
 /* ::::: msg header buttons ::::: */
 .headerContainer
 {
   min-width: 1px;
 }
 
 #otherActionsButton {
   margin-bottom: .1em;
   padding-top: 0px;
 }
 
-#collapsedsubjectValue {
-  -moz-margin-start: 3px !important;
-  -moz-box-align: stretch;
-  font-weight: bold;
-}
-
-#collapseddateValue {
-  -moz-box-align: stretch;
-  text-align: right;
-  -moz-padding-end: 0.5em !important;
-}
-
-#showDetailsButton {
-  width: 26px;
-  padding-bottom: 0px;
-  height: 23px;
-  border: solid 3px transparent;
-  margin: 0;
-  text-align: center;
-  list-style-image: url("chrome://messenger/skin/icons/croppedchevron.png");
-}
-
-#showDetailsButton > .button-box,
-#showDetailsButton > .button-box > .button-icon,
-#showDetailsButton > .button-box > .button-text{
-  margin: 0;
-  padding: 0;
-}
-
 /* ::::: expanded header pane ::::: */
 
 header-view-button-box {
   padding: 0px;
 }
 
 #expandedfromBox {
   padding-top: 0.5em;
@@ -357,43 +320,16 @@ description[selectable="true"]:focus > d
 .headerValueUrl:hover {
   color: red;
 }
 
 .headerField {
   color: inherit;
 }
 
-#collapsedsubjectBox {
-  margin: 0px;
-  padding: 0px;
-}
-
-#collapsedfromBox {
-  padding-top: 0.5em;
-}
-
-#collapsedfromValue > .headerNameBox {
-  display: none;
-}
-
-#collapsedtoCcBccValue > .headerNameBox {
-  display: none;
-}
-
-#collapsedtoCcBccValue > .headerValueBox[singleline] {
-  padding-top: 0;
-  padding-bottom: 0;
-}
-
-#collapsedtoCcBccValue > .headerValueBox:not([singleline]) {
-  padding-top: 0.5em;
-  padding-bottom: 0;
-}
-
 .moreIndicator {
   font-weight: bold;
 }
 
 .moreIndicator:hover {
   text-decoration: underline;
   color: darkred;
 }
@@ -537,17 +473,13 @@ mail-emailaddress[selected="true"] .emai
 }
 
 /* ::::: view expand and collapse twisties  ::::: */
 
 .expandHeaderViewButton {
   list-style-image: url("chrome://global/skin/tree/twisty-open.png");
 }
 
-.collapsedHeaderViewButton  {
-  list-style-image: url("chrome://global/skin/tree/twisty-clsd.png");
-}
-
 mail-multi-emailHeaderField,
 mail-headerfield {
   margin: 0;
   padding: 0;
 }