一つのnsIFilePicker.appendFilters()で複数の拡張子のフィルタを追加する時、定数の小さな順にドロップダウンに登録される。ので、任意の順番にしたい場合は複数のnsIFilePicker.appendFilters()を並べてやる必要がある。
一つのnsIFilePicker.appendFilters()
var nsIFilePicker = Components.interfaces.nsIFilePicker; var filePicker = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker); filePicker.init(window, "Select a File", nsIFilePicker.modeOpen); filePicker.appendFilters(nsIFilePicker.filterHTML | nsIFilePicker.filterText | nsIFilePicker.filterAll); var res = filePicker.show();

appendFilters()の引数の順序には意味がない。
複数のnsIFilePicker.appendFilters()
var nsIFilePicker = Components.interfaces.nsIFilePicker; var filePicker = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker); filePicker.init(window, "Select a File", nsIFilePicker.modeOpen); filePicker.appendFilters(nsIFilePicker.filterHTML); filePicker.appendFilters(nsIFilePicker.filterText); filePicker.appendFilters(nsIFilePicker.filterAll); var res = filePicker.show();

それぞれのappendFilters()の順序に従ってフィルタが追加される。
というメモ。