Bug 1472555 - Part 4 - Remove the "listbox" bindings. r=bgrins
authorPaolo Amadini <paolo.mozmail@amadzone.org>
Wed, 18 Jul 2018 11:23:22 +0100
changeset 484906 501544bfc95b8231a58d2e3c1ce34e89d9052696
parent 484905 c0ffebfb2053c45f02d980f36f008f26ad7197fa
child 484907 38ebcdae9bca37cfdb17c2199030cbe4f2612aa8
push id1815
push userffxbld-merge
push dateMon, 15 Oct 2018 10:40:45 +0000
treeherdermozilla-release@18d4c09e9378 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbgrins
bugs1472555
milestone63.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1472555 - Part 4 - Remove the "listbox" bindings. r=bgrins MozReview-Commit-ID: Cw90DjEMJpn
browser/installer/allowed-dupes.mn
testing/marionette/element.js
toolkit/content/widgets/listbox.xml
toolkit/content/widgets/richlistbox.xml
toolkit/content/xul.css
toolkit/themes/linux/global/jar.mn
toolkit/themes/linux/global/listbox.css
toolkit/themes/mobile/jar.mn
toolkit/themes/osx/global/checkbox/cbox-check-dis.gif
toolkit/themes/osx/global/jar.mn
toolkit/themes/osx/global/listbox.css
toolkit/themes/shared/extensions/extensions.inc.css
toolkit/themes/windows/global/jar.mn
toolkit/themes/windows/global/listbox.css
--- a/browser/installer/allowed-dupes.mn
+++ b/browser/installer/allowed-dupes.mn
@@ -89,17 +89,16 @@ chrome.manifest
 chrome/toolkit/skin/classic/global/autocomplete.css
 chrome/toolkit/skin/classic/global/button.css
 chrome/toolkit/skin/classic/global/checkbox.css
 chrome/toolkit/skin/classic/global/dialog.css
 chrome/toolkit/skin/classic/global/dropmarker.css
 chrome/toolkit/skin/classic/global/global.css
 chrome/toolkit/skin/classic/global/groupbox.css
 chrome/toolkit/skin/classic/global/icons/close-win7.png
-chrome/toolkit/skin/classic/global/listbox.css
 chrome/toolkit/skin/classic/global/menu.css
 chrome/toolkit/skin/classic/global/menulist.css
 chrome/toolkit/skin/classic/global/numberbox.css
 chrome/toolkit/skin/classic/global/popup.css
 chrome/toolkit/skin/classic/global/preferences.css
 chrome/toolkit/skin/classic/global/progressmeter.css
 chrome/toolkit/skin/classic/global/radio.css
 chrome/toolkit/skin/classic/global/richlistbox.css
--- a/testing/marionette/element.js
+++ b/testing/marionette/element.js
@@ -33,23 +33,21 @@ const DOCUMENT_NODE = 9;
 
 const XBLNS = "http://www.mozilla.org/xbl";
 const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
 
 /** XUL elements that support checked property. */
 const XUL_CHECKED_ELS = new Set([
   "button",
   "checkbox",
-  "listitem",
   "toolbarbutton",
 ]);
 
 /** XUL elements that support selected property. */
 const XUL_SELECTED_ELS = new Set([
-  "listitem",
   "menu",
   "menuitem",
   "menuseparator",
   "radio",
   "richlistitem",
   "tab",
 ]);
 
--- a/toolkit/content/widgets/listbox.xml
+++ b/toolkit/content/widgets/listbox.xml
@@ -630,303 +630,18 @@
             break;
           }
         }
       ]]>
       </handler>
     </handlers>
   </binding>
 
-
-  <!-- Binding for xul:listbox element.
-  -->
-  <binding id="listbox"
-           extends="#listbox-base">
-
-    <resources>
-      <stylesheet src="chrome://global/skin/listbox.css"/>
-    </resources>
-
-    <content>
-      <children includes="listcols">
-        <xul:listcols>
-          <xul:listcol flex="1"/>
-        </xul:listcols>
-      </children>
-      <xul:listrows>
-        <children includes="listhead"/>
-        <xul:listboxbody xbl:inherits="rows,size,minheight">
-          <children includes="listitem"/>
-        </xul:listboxbody>
-      </xul:listrows>
-    </content>
-
-    <implementation>
-
-      <!-- ///////////////// public listbox members ///////////////// -->
-
-      <property name="listBoxObject"
-                onget="return this.boxObject;"
-                readonly="true"/>
-
-      <!-- ///////////////// private listbox members ///////////////// -->
-
-      <field name="_touchY">-1</field>
-
-      <method name="_fireOnSelect">
-        <body>
-        <![CDATA[
-          if (!this._suppressOnSelect && !this.suppressOnSelect) {
-            var event = document.createEvent("Events");
-            event.initEvent("select", true, true);
-            this.dispatchEvent(event);
-          }
-        ]]>
-        </body>
-      </method>
-
-      <constructor>
-      <![CDATA[
-        var count = this.itemCount;
-        for (var index = 0; index < count; index++) {
-          var item = this.getItemAtIndex(index);
-          if (item.getAttribute("selected") == "true")
-            this.selectedItems.append(item);
-        }
-      ]]>
-      </constructor>
-
-      <!-- ///////////////// nsIDOMXULSelectControlElement ///////////////// -->
-
-      <method name="appendItem">
-        <parameter name="aLabel"/>
-        <parameter name="aValue"/>
-        <body>
-          const XULNS =
-            "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
-
-          var item = this.ownerDocument.createElementNS(XULNS, "listitem");
-          item.setAttribute("label", aLabel);
-          item.setAttribute("value", aValue);
-          this.appendChild(item);
-          return item;
-        </body>
-      </method>
-
-      <property name="itemCount" readonly="true"
-                onget="return this.listBoxObject.getRowCount()"/>
-
-      <!-- ///////////////// nsIListBoxObject ///////////////// -->
-      <method name="getIndexOfItem">
-        <parameter name="item"/>
-        <body>
-          <![CDATA[
-            if (this._selecting && this._selecting.item == item)
-              return this._selecting.index;
-            return this.listBoxObject.getIndexOfItem(item);
-          ]]>
-        </body>
-      </method>
-      <method name="getItemAtIndex">
-        <parameter name="index"/>
-        <body>
-          <![CDATA[
-            if (this._selecting && this._selecting.index == index)
-              return this._selecting.item;
-            return this.listBoxObject.getItemAtIndex(index);
-          ]]>
-        </body>
-      </method>
-      <method name="ensureIndexIsVisible">
-        <parameter name="index"/>
-        <body>
-          return this.listBoxObject.ensureIndexIsVisible(index);
-        </body>
-      </method>
-      <method name="ensureElementIsVisible">
-        <parameter name="element"/>
-        <body>
-          return this.ensureIndexIsVisible(this.listBoxObject.getIndexOfItem(element));
-        </body>
-      </method>
-      <method name="scrollToIndex">
-        <parameter name="index"/>
-        <body>
-          return this.listBoxObject.scrollToIndex(index);
-        </body>
-      </method>
-      <method name="getNumberOfVisibleRows">
-        <body>
-          return this.listBoxObject.getNumberOfVisibleRows();
-        </body>
-      </method>
-      <method name="getIndexOfFirstVisibleRow">
-        <body>
-          return this.listBoxObject.getIndexOfFirstVisibleRow();
-        </body>
-      </method>
-      <method name="getRowCount">
-        <body>
-          return this.listBoxObject.getRowCount();
-        </body>
-      </method>
-
-      <method name="scrollOnePage">
-        <parameter name="direction"/>  <!-- Must be -1 or 1 -->
-        <body>
-          <![CDATA[
-            var pageOffset = this.getNumberOfVisibleRows() * direction;
-            // skip over invisible elements - the user won't care about them
-            for (var i = 0; i != pageOffset; i += direction) {
-              var item = this.getItemAtIndex(this.currentIndex + i);
-              if (item && !this._canUserSelect(item))
-                pageOffset += direction;
-            }
-            var newTop = this.getIndexOfFirstVisibleRow() + pageOffset;
-            if (direction == 1) {
-              var maxTop = this.getRowCount() - this.getNumberOfVisibleRows();
-              for (i = this.getRowCount(); i >= 0 && i > maxTop; i--) {
-                item = this.getItemAtIndex(i);
-                if (item && !this._canUserSelect(item))
-                  maxTop--;
-              }
-              if (newTop >= maxTop)
-                newTop = maxTop;
-            }
-            if (newTop < 0)
-              newTop = 0;
-            this.scrollToIndex(newTop);
-            return pageOffset;
-          ]]>
-        </body>
-      </method>
-    </implementation>
-
-    <handlers>
-      <handler event="keypress" key=" " phase="target">
-        <![CDATA[
-          if (this.currentItem) {
-            if (this.currentItem.getAttribute("type") != "checkbox") {
-              this.addItemToSelection(this.currentItem);
-              // Prevent page from scrolling on the space key.
-              event.preventDefault();
-            } else if (!this.currentItem.disabled) {
-              this.currentItem.checked = !this.currentItem.checked;
-              this.currentItem.doCommand();
-              // Prevent page from scrolling on the space key.
-              event.preventDefault();
-            }
-          }
-        ]]>
-      </handler>
-
-      <handler event="MozSwipeGesture">
-        <![CDATA[
-          // Figure out which index to show
-          let targetIndex = 0;
-
-          // Only handle swipe gestures up and down
-          switch (event.direction) {
-            case event.DIRECTION_DOWN:
-              targetIndex = this.itemCount - 1;
-              // Fall through for actual action
-            case event.DIRECTION_UP:
-              this.ensureIndexIsVisible(targetIndex);
-              break;
-          }
-        ]]>
-      </handler>
-
-      <handler event="touchstart">
-        <![CDATA[
-          if (event.touches.length > 1) {
-            // Multiple touch points detected, abort. In particular this aborts
-            // the panning gesture when the user puts a second finger down after
-            // already panning with one finger. Aborting at this point prevents
-            // the pan gesture from being resumed until all fingers are lifted
-            // (as opposed to when the user is back down to one finger).
-            this._touchY = -1;
-          } else {
-            this._touchY = event.touches[0].screenY;
-          }
-        ]]>
-      </handler>
-      <handler event="touchmove">
-        <![CDATA[
-          if (event.touches.length == 1 &&
-              this._touchY >= 0) {
-            let deltaY = this._touchY - event.touches[0].screenY;
-            let lines = Math.trunc(deltaY / this.listBoxObject.getRowHeight());
-            if (Math.abs(lines) > 0) {
-              this.listBoxObject.scrollByLines(lines);
-              deltaY -= lines * this.listBoxObject.getRowHeight();
-              this._touchY = event.touches[0].screenY + deltaY;
-            }
-            event.preventDefault();
-          }
-        ]]>
-      </handler>
-      <handler event="touchend">
-        <![CDATA[
-          this._touchY = -1;
-        ]]>
-      </handler>
-
-    </handlers>
-  </binding>
-
-  <binding id="listrows">
-
-    <resources>
-      <stylesheet src="chrome://global/skin/listbox.css"/>
-    </resources>
-
-    <handlers>
-      <handler event="DOMMouseScroll" phase="capturing">
-      <![CDATA[
-        if (event.axis == event.HORIZONTAL_AXIS)
-          return;
-
-        var listBox = this.parentNode.listBoxObject;
-        var rows = event.detail;
-        if (rows == UIEvent.SCROLL_PAGE_UP)
-          rows = -listBox.getNumberOfVisibleRows();
-        else if (rows == UIEvent.SCROLL_PAGE_DOWN)
-          rows = listBox.getNumberOfVisibleRows();
-
-        listBox.scrollByLines(rows);
-        event.preventDefault();
-      ]]>
-      </handler>
-
-      <handler event="MozMousePixelScroll" phase="capturing">
-      <![CDATA[
-        if (event.axis == event.HORIZONTAL_AXIS)
-          return;
-
-        // shouldn't be scrolled by pixel scrolling events before a line/page
-        // scrolling event.
-        event.preventDefault();
-      ]]>
-      </handler>
-    </handlers>
-  </binding>
-
   <binding id="listitem"
            extends="chrome://global/content/bindings/general.xml#basetext">
-    <resources>
-      <stylesheet src="chrome://global/skin/listbox.css"/>
-    </resources>
-
-    <content>
-      <children>
-        <xul:listcell xbl:inherits="label,crop,disabled,flexlabel"/>
-      </children>
-    </content>
-
     <implementation implements="nsIDOMXULSelectControlItemElement">
       <property name="current" onget="return this.getAttribute('current') == 'true';">
         <setter><![CDATA[
           if (val)
             this.setAttribute("current", "true");
           else
             this.removeAttribute("current");
 
@@ -1024,83 +739,9 @@
           // doesn't de- and reselect this item if it is selected
           control.selectItemRange(this, this);
         }
         control._userSelecting = false;
       ]]>
       </handler>
     </handlers>
   </binding>
-
-  <binding id="listitem-checkbox"
-           extends="chrome://global/content/bindings/listbox.xml#listitem">
-    <content>
-      <children>
-        <xul:listcell type="checkbox" xbl:inherits="label,crop,checked,disabled,flexlabel"/>
-      </children>
-    </content>
-
-    <implementation>
-      <property name="checked"
-                onget="return this.getAttribute('checked') == 'true';">
-        <setter><![CDATA[
-          if (val)
-            this.setAttribute("checked", "true");
-          else
-            this.removeAttribute("checked");
-          var event = document.createEvent("Events");
-          event.initEvent("CheckboxStateChange", true, true);
-          this.dispatchEvent(event);
-          return val;
-        ]]></setter>
-      </property>
-    </implementation>
-
-    <handlers>
-      <handler event="mousedown" button="0">
-      <![CDATA[
-        if (!this.disabled && !this.control.disabled) {
-          this.checked = !this.checked;
-          this.doCommand();
-        }
-      ]]>
-      </handler>
-    </handlers>
-  </binding>
-
-  <binding id="listcell"
-           extends="chrome://global/content/bindings/general.xml#basecontrol">
-
-    <resources>
-      <stylesheet src="chrome://global/skin/listbox.css"/>
-    </resources>
-
-    <content>
-      <children>
-        <xul:label class="listcell-label" xbl:inherits="value=label,flex=flexlabel,crop,disabled" flex="1" crop="right"/>
-      </children>
-    </content>
-  </binding>
-
-  <binding id="listcell-checkbox"
-           extends="chrome://global/content/bindings/listbox.xml#listcell">
-    <content>
-      <children>
-        <xul:image class="listcell-check" xbl:inherits="checked,disabled"/>
-        <xul:label class="listcell-label" xbl:inherits="value=label,flex=flexlabel,crop,disabled" flex="1" crop="right"/>
-      </children>
-    </content>
-  </binding>
-
-  <binding id="listhead">
-
-    <resources>
-      <stylesheet src="chrome://global/skin/listbox.css"/>
-    </resources>
-
-    <content>
-      <xul:listheaditem>
-        <children includes="listheader"/>
-      </xul:listheaditem>
-    </content>
-  </binding>
-
 </bindings>
--- a/toolkit/content/widgets/richlistbox.xml
+++ b/toolkit/content/widgets/richlistbox.xml
@@ -500,20 +500,16 @@
           }
         ]]>
       </handler>
     </handlers>
   </binding>
 
   <binding id="richlistitem"
            extends="chrome://global/content/bindings/listbox.xml#listitem">
-    <content>
-      <children/>
-    </content>
-
     <implementation>
       <field name="selectedByMouseOver">false</field>
 
       <destructor>
         <![CDATA[
           var control = this.control;
           if (!control)
             return;
--- a/toolkit/content/xul.css
+++ b/toolkit/content/xul.css
@@ -473,98 +473,16 @@ column {
 rows {
   -moz-box-orient: vertical;
 }
 
 column {
   -moz-box-orient: vertical;
 }
 
-/******** listbox **********/
-
-listbox {
-  -moz-binding: url("chrome://global/content/bindings/listbox.xml#listbox");
-}
-
-listhead {
-  -moz-binding: url("chrome://global/content/bindings/listbox.xml#listhead");
-}
-
-listrows {
-  -moz-binding: url("chrome://global/content/bindings/listbox.xml#listrows");
-}
-
-listitem {
-  -moz-binding: url("chrome://global/content/bindings/listbox.xml#listitem");
-}
-
-listitem[type="checkbox"] {
-  -moz-binding: url("chrome://global/content/bindings/listbox.xml#listitem-checkbox");
-}
-
-listcell {
-  -moz-binding: url("chrome://global/content/bindings/listbox.xml#listcell");
-}
-
-listcell[type="checkbox"] {
-  -moz-binding: url("chrome://global/content/bindings/listbox.xml#listcell-checkbox");
-}
-
-listbox {
-  display: -moz-grid;
-}
-
-listbox[rows] {
-  height: auto;
-}
-
-listcols, listhead, listrows, listboxbody {
-  display: -moz-grid-group;
-}
-
-listcol, listitem, listheaditem {
-  display: -moz-grid-line;
-}
-
-listbox {
-  -moz-user-focus: normal;
-  -moz-box-orient: vertical;
-  min-width: 0px;
-  min-height: 0px;
-  width: 200px;
-  height: 200px;
-}
-
-listhead {
-  -moz-box-orient: vertical;
-}
-
-listrows {
-  -moz-box-orient: vertical;
-  -moz-box-flex: 1;
-}
-
-listboxbody {
-  -moz-box-orient: vertical;
-  -moz-box-flex: 1;
-  /* Don't permit a horizontal scrollbar. See bug 285449 */
-  overflow-x: hidden !important;
-  overflow-y: auto;
-  min-height: 0px;
-}
-
-listcol {
-  -moz-box-orient: vertical;
-  min-width: 16px;
-}
-
-listcell {
-  -moz-box-align: center;
-}
-
 /******** tree ******/
 
 tree {
   -moz-binding: url("chrome://global/content/bindings/tree.xml#tree");
 }
 
 treecols {
   -moz-binding: url("chrome://global/content/bindings/tree.xml#treecols");
--- a/toolkit/themes/linux/global/jar.mn
+++ b/toolkit/themes/linux/global/jar.mn
@@ -9,17 +9,16 @@ toolkit.jar:
    skin/classic/global/button.css
    skin/classic/global/checkbox.css
    skin/classic/global/colorpicker.css
    skin/classic/global/commonDialog.css
    skin/classic/global/dropmarker.css
 *  skin/classic/global/findBar.css
 *  skin/classic/global/global.css
    skin/classic/global/groupbox.css
-   skin/classic/global/listbox.css
    skin/classic/global/menu.css
    skin/classic/global/menulist.css
    skin/classic/global/netError.css
 *  skin/classic/global/notification.css
 *  skin/classic/global/numberbox.css
    skin/classic/global/popup.css
    skin/classic/global/radio.css
    skin/classic/global/richlistbox.css
deleted file mode 100644
--- a/toolkit/themes/linux/global/listbox.css
+++ /dev/null
@@ -1,68 +0,0 @@
-/* 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/. */
-
-/* ===== listbox.css =======================================================
-  == Styles used by XUL listbox-related elements.
-  ======================================================================= */
-
-@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
-
-/* ::::: listbox ::::: */
-
-listbox {
-  -moz-appearance: listbox;
-  margin: 2px 4px;
-  background-color: -moz-Field;
-  color: -moz-FieldText;
-}
-
-listbox[disabled="true"] {
-  color: GrayText;
-}
-
-/* ::::: listitem ::::: */
-
-listbox:focus > listitem[selected="true"][current="true"] {
-  outline: 1px dotted #F3D982;
-}
-
-listbox:focus > listitem[current="true"] {
-  outline: 1px dotted Highlight;
-  outline-offset: -1px;
-}
-
-listitem[selected="true"] {
-  background-color: -moz-cellhighlight;
-  color: -moz-cellhighlighttext;
-}
-
-listbox:focus > listitem[selected="true"] {
-  background-color: Highlight;
-  color: HighlightText;
-}
-
-/* ::::: listcell ::::: */
-
-.listcell-label {
-  margin: 0 !important;
-  padding-top: 0;
-  padding-bottom: 1px;
-  padding-inline-start: 4px;
-  padding-inline-end: 0;
-  white-space: nowrap;
-}
-
-.listcell-label[disabled="true"] {
-  color: GrayText;
-}
-
-/* ::::: listcell checkbox ::::: */
-
-.listcell-check {
-  -moz-appearance: checkbox;
-  -moz-box-align: center;
-  margin: 0 2px;
-  min-width: 13px;
-  min-height: 13px;
-}
--- a/toolkit/themes/mobile/jar.mn
+++ b/toolkit/themes/mobile/jar.mn
@@ -7,17 +7,16 @@ toolkit.jar:
 # These are the CSS files that must exist
    skin/classic/global/autocomplete.css                    (global/empty.css)
    skin/classic/global/button.css                          (global/empty.css)
    skin/classic/global/checkbox.css                        (global/empty.css)
    skin/classic/global/dialog.css                          (global/empty.css)
    skin/classic/global/dropmarker.css                      (global/empty.css)
    skin/classic/global/global.css                          (global/empty.css)
    skin/classic/global/groupbox.css                        (global/empty.css)
-   skin/classic/global/listbox.css                         (global/empty.css)
    skin/classic/global/menu.css                            (global/empty.css)
    skin/classic/global/menulist.css                        (global/empty.css)
    skin/classic/global/numberbox.css                       (global/empty.css)
    skin/classic/global/popup.css                           (global/empty.css)
    skin/classic/global/progressmeter.css                   (global/empty.css)
    skin/classic/global/radio.css                           (global/empty.css)
    skin/classic/global/richlistbox.css                     (global/empty.css)
    skin/classic/global/scrollbox.css                       (global/empty.css)
deleted file mode 100644
index bd43dd17c3bd07b1787baca148442ec777797d8c..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
--- a/toolkit/themes/osx/global/jar.mn
+++ b/toolkit/themes/osx/global/jar.mn
@@ -10,17 +10,16 @@ toolkit.jar:
   skin/classic/global/checkbox.css
   skin/classic/global/colorpicker.css
   skin/classic/global/commonDialog.css
   skin/classic/global/dialog.css
   skin/classic/global/dropmarker.css
 * skin/classic/global/findBar.css
 * skin/classic/global/global.css
   skin/classic/global/groupbox.css
-  skin/classic/global/listbox.css
   skin/classic/global/menu.css
   skin/classic/global/menulist.css
 * skin/classic/global/notification.css
   skin/classic/global/netError.css
 * skin/classic/global/numberbox.css
   skin/classic/global/popup.css
   skin/classic/global/progressmeter.css
   skin/classic/global/radio.css
@@ -47,17 +46,16 @@ toolkit.jar:
   skin/classic/global/arrow/arrow-rit-dis.gif                        (arrow/arrow-rit-dis.gif)
   skin/classic/global/arrow/arrow-rit-sharp.gif                      (arrow/arrow-rit-sharp.gif)
   skin/classic/global/arrow/arrow-up-dis.gif                         (arrow/arrow-up-dis.gif)
   skin/classic/global/arrow/arrow-up-sharp.gif                       (arrow/arrow-up-sharp.gif)
   skin/classic/global/arrow/arrow-up.gif                             (arrow/arrow-up.gif)
   skin/classic/global/arrow/panelarrow-horizontal.svg                (arrow/panelarrow-horizontal.svg)
   skin/classic/global/arrow/panelarrow-vertical.svg                  (arrow/panelarrow-vertical.svg)
   skin/classic/global/checkbox/cbox-check.gif                        (checkbox/cbox-check.gif)
-  skin/classic/global/checkbox/cbox-check-dis.gif                    (checkbox/cbox-check-dis.gif)
   skin/classic/global/dirListing/dirListing.css                      (dirListing/dirListing.css)
   skin/classic/global/dirListing/folder.png                          (dirListing/folder.png)
   skin/classic/global/dirListing/up.png                              (dirListing/up.png)
   skin/classic/global/icons/blacklist_favicon.png                    (icons/blacklist_favicon.png)
   skin/classic/global/icons/blacklist_64.png                         (icons/blacklist_64.png)
   skin/classic/global/icons/glyph-dropdown.png                       (icons/glyph-dropdown.png)
   skin/classic/global/icons/glyph-dropdown@2x.png                    (icons/glyph-dropdown@2x.png)
   skin/classic/global/icons/panel-dropmarker.png                     (icons/panel-dropmarker.png)
deleted file mode 100644
--- a/toolkit/themes/osx/global/listbox.css
+++ /dev/null
@@ -1,72 +0,0 @@
-/* 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/. */
-
-@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
-
-listbox {
-  -moz-appearance: listbox;
-  margin: 2px 4px;
-  background-color: #FFFFFF;
-  color: -moz-FieldText;
-}
-
-.listcell-label {
-  margin: 0px !important;
-  padding-bottom: 1px;
-  padding-inline-start: 4px;
-  white-space: nowrap;
-}
-
-/* ::::: listitem ::::: */
-
-listitem {
-  border: 1px solid transparent;
-}
-
-listitem[selected="true"] {
-  background-color: -moz-mac-secondaryhighlight;
-  color: -moz-DialogText;
-}
-
-listbox:focus > listitem[selected="true"] {
-   background-color: Highlight;
-   color: HighlightText;
-}
-
-/* ::::: listcell ::::: */
-
-.listcell-label {
-  margin: 0px !important;
-  padding-bottom: 1px;
-  padding-inline-start: 4px;
-  white-space: nowrap;
-}
-
-.listcell-label[disabled="true"] {
-  color: GrayText;
-}
-
-/* ::::: listcell checkbox ::::: */
-
-.listcell-check {
-  -moz-appearance: checkbox;
-  -moz-box-align: center;
-  margin: 0px 2px;
-  border: 1px solid -moz-DialogText;
-  min-width: 13px;
-  min-height: 13px;
-  background: -moz-Field no-repeat 50% 50%;
-}
-
-.listcell-check[checked="true"] {
-  background-image: url("chrome://global/skin/checkbox/cbox-check.gif");
-}
-
-.listcell-check[disabled="true"] {
-  border-color: GrayText;
-}
-
-.listcell-check[disabled="true"][checked="true"] {
-  background-image: url("chrome://global/skin/checkbox/cbox-check-dis.gif");
-}
--- a/toolkit/themes/shared/extensions/extensions.inc.css
+++ b/toolkit/themes/shared/extensions/extensions.inc.css
@@ -1029,15 +1029,14 @@ button.button-link:not([disabled="true"]
 
 #detail-findUpdates-btn[hidden] {
   display: -moz-box;
   visibility: hidden;
 }
 
 /*** Reset PopupAutoComplete richlistbox styles ***/
 
-#PopupAutoComplete richlistbox,
-#PopupAutoComplete listbox {
+#PopupAutoComplete richlistbox {
   -moz-appearance: initial;
   margin-inline-start: 0;
   border: none;
   border-radius: 0;
 }
--- a/toolkit/themes/windows/global/jar.mn
+++ b/toolkit/themes/windows/global/jar.mn
@@ -15,17 +15,16 @@ toolkit.jar:
 * skin/classic/global/popup.css
   skin/classic/global/radio.css
   skin/classic/global/tabbox.css
   skin/classic/global/textbox.css
   skin/classic/global/colorpicker.css
   skin/classic/global/commonDialog.css
 * skin/classic/global/findBar.css
 * skin/classic/global/global.css
-  skin/classic/global/listbox.css
   skin/classic/global/netError.css
 * skin/classic/global/numberbox.css
 * skin/classic/global/notification.css
   skin/classic/global/printPageSetup.css
   skin/classic/global/richlistbox.css
   skin/classic/global/scrollbox.css
   skin/classic/global/splitter.css
   skin/classic/global/toolbar.css
deleted file mode 100644
--- a/toolkit/themes/windows/global/listbox.css
+++ /dev/null
@@ -1,167 +0,0 @@
-/* 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/. */
-
-/* ===== listbox.css =======================================================
-  == Styles used by XUL listbox-related elements.
-  ======================================================================= */
-
-
-@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
-
-/* ::::: listbox ::::: */
-
-listbox {
-  -moz-appearance: listbox;
-  margin: 2px 4px;
-  color: -moz-FieldText;
-}
-
-listbox[disabled="true"] {
-  color: GrayText;
-}
-
-/* ::::: listitem ::::: */
-
-listitem {
-  border: 1px solid transparent;
-}
-
-listbox:focus > listitem[selected="true"][current="true"] {
-  outline: 1px dotted #F3D982;
-}
-
-listbox:focus > listitem[current="true"] {
-  outline: 1px dotted Highlight;
-  outline-offset: -1px;
-}
-
-listitem[selected="true"] {
-  background-color: -moz-cellhighlight;
-  color: -moz-cellhighlighttext;
-}
-
-listbox:focus > listitem[selected="true"] {
-  background-color: Highlight;
-  color: HighlightText;
-}
-
-/* ::::: listcell ::::: */
-
-.listcell-label {
-  margin: 0px !important;
-  padding-top: 0px;
-  padding-bottom: 1px;
-  padding-inline-start: 4px;
-  padding-inline-end: 0px;
-  white-space: nowrap;
-}
-
-.listcell-label[disabled="true"] {
-  color: GrayText;
-}
-
-/* ::::: listcell checkbox ::::: */
-
-.listcell-check {
-  -moz-appearance: checkbox;
-  -moz-box-align: center;
-  margin: 0px 2px;
-  border: 1px solid -moz-DialogText;
-  min-width: 13px;
-  min-height: 13px;
-  background: -moz-Field no-repeat 50% 50%;
-}
-
-@media (-moz-windows-default-theme) {
-  listitem {
-    --listitem-selectedColor: rgb(217,217,217);
-    --listitem-selectedBorder: var(--listitem-selectedColor);
-    --listitem-selectedBottomBorder: rgb(204,204,204);
-    --listitem-selectedBackground: var(--listitem-selectedColor);
-    --listitem-selectedImage: none;
-    --listitem-selectedCurrentBorder: rgb(123,195,255);
-    --listitem-selectedFocusColor: rgb(205,232,255);
-    --listitem-selectedFocusBorder: var(--listitem-selectedFocusColor);
-    --listitem-selectedFocusBottomBorder: rgb(165,214,255);
-    --listitem-selectedFocusBackground: var(--listitem-selectedFocusColor);
-    --listitem-selectedFocusImage: none;
-    --listitem-selectedFocusCurrentBorder: var(--listitem-selectedFocusColor);
-    --listitem-selectedFocusCurrentBottomBorder: var(--listitem-selectedFocusBottomBorder);
-    --listitem-selectedFocusCurrentBackground: var(--listitem-selectedFocusColor);
-
-    color: -moz-FieldText;
-    margin-inline-start: 1px;
-    margin-inline-end: 1px;
-    padding-top: 1px;
-    padding-bottom: 1px;
-    border-width: 1px;
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-  }
-
-  listitem[selected="true"] {
-    border-top-color: var(--listitem-selectedBorder);
-    border-right-color: var(--listitem-selectedBorder);
-    border-left-color: var(--listitem-selectedBorder);
-    border-bottom-color: var(--listitem-selectedBottomBorder);
-    background-image: var(--listitem-selectedImage);
-    background-color: var(--listitem-selectedBackground);
-    color: -moz-DialogText;
-  }
-
-  listbox:focus > listitem[selected="true"] {
-    border-top-color: var(--listitem-selectedFocusBorder);
-    border-right-color: var(--listitem-selectedFocusBorder);
-    border-left-color: var(--listitem-selectedFocusBorder);
-    border-bottom-color: var(--listitem-selectedFocusBottomBorder);
-    background-image: var(--listitem-selectedFocusImage);
-    background-color: var(--listitem-selectedFocusBackground);
-    color: -moz-DialogText;
-  }
-
-  listbox:focus > listitem[current="true"] {
-    border-color: var(--listitem-selectedCurrentBorder);
-    outline: none;
-  }
-
-  listbox:focus > listitem[selected="true"][current="true"] {
-    border-top-color: var(--listitem-selectedFocusCurrentBorder);
-    border-right-color: var(--listitem-selectedFocusCurrentBorder);
-    border-left-color: var(--listitem-selectedFocusCurrentBorder);
-    border-bottom-color: var(--listitem-selectedFocusCurrentBottomBorder);
-    background-color: var(--listitem-selectedFocusCurrentBackground);
-    outline: none;
-  }
-
-  @media (-moz-os-version: windows-win7) {
-    listitem {
-      --listitem-selectedBottomBorder: var(--listitem-selectedColor);
-      --listitem-selectedBackground: rgba(190,190,190,.15);
-      --listitem-selectedImage: linear-gradient(rgba(190,190,190,.1), rgba(190,190,190,.4));
-      --listitem-selectedCurrentBorder: rgb(125,162,206);
-      --listitem-selectedFocusColor: rgb(132,172,221);
-      --listitem-selectedFocusBottomBorder: var(--listitem-selectedFocusColor);
-      --listitem-selectedFocusBackground: rgba(131,183,249,.02);
-      --listitem-selectedFocusImage: linear-gradient(rgba(131,183,249,.16), rgba(131,183,249,.375));
-      --listitem-selectedFocusCurrentBackground: rgba(131,183,249,.15);
-
-      border-radius: 3px;
-      box-shadow: inset 0 0 0 1px rgba(255,255,255,.4), inset 0 -1px 0 1px rgba(255,255,255,.2);
-    }
-  }
-
-  @media (-moz-os-version: windows-win8) {
-    listitem {
-      --listitem-selectedBottomBorder: var(--listitem-selectedColor);
-      --listitem-selectedBackground: rgba(190,190,190,.15);
-      --listitem-selectedImage: linear-gradient(rgba(190,190,190,.4), rgba(190,190,190,.4));
-      --listitem-selectedCurrentBorder: rgb(125,162,206);
-      --listitem-selectedFocusColor: rgb(132,172,221);
-      --listitem-selectedFocusBottomBorder: var(--listitem-selectedFocusColor);
-      --listitem-selectedFocusBackground: rgba(131,183,249,.02);
-      --listitem-selectedFocusImage: linear-gradient(rgba(131,183,249,.375), rgba(131,183,249,.375));
-      --listitem-selectedFocusCurrentBackground: rgba(131,183,249,.15);
-    }
-  }
-}