Backout bogus commit (changeset 8b921b3250e6)
authorNeil Rashbrook <neil@parkwaycc.co.uk>
Wed, 08 Jul 2009 10:53:28 +0100
changeset 3037 7e75dc09719fb80211dca61c18aa32ed2afb48e7
parent 3036 8b921b3250e6d112e2f087bdaec50cb2bc81b7c0
child 3038 459dcc8b27e23c0653a70980a7abf6b047abc9c2
push idunknown
push userunknown
push dateunknown
Backout bogus commit (changeset 8b921b3250e6)
config/config.mk
suite/browser/browser-prefs.js
suite/browser/mailNavigatorOverlay.xul
suite/browser/navigator.xul
suite/browser/test/browser/browser_bug462289.js
suite/common/contentAreaContextOverlay.xul
suite/common/contentAreaUtils.js
suite/common/downloads/downloadmanager.js
suite/common/downloads/downloadmanager.xul
suite/common/downloads/tests/Makefile.in
suite/common/downloads/tests/chrome/test_delete_key_removes.xul
suite/common/downloads/tests/chrome/test_space_key_pauses_resumes.xul
suite/common/downloads/treeView.js
suite/common/pref/pref-download.js
suite/common/pref/pref-download.xul
suite/locales/en-US/chrome/common/contentAreaCommands.dtd
suite/locales/en-US/chrome/common/contentAreaCommands.properties
suite/locales/en-US/chrome/common/downloads/downloadmanager.dtd
suite/locales/en-US/chrome/common/pref/pref-download.dtd
suite/locales/en-US/chrome/common/pref/prefutilities.properties
suite/themes/modern/jar.mn
--- a/config/config.mk
+++ b/config/config.mk
@@ -451,24 +451,24 @@ MAKE_JARS_FLAGS = \
 ifdef USE_EXTENSION_MANIFEST
 MAKE_JARS_FLAGS += -e
 endif
 
 ifdef BOTH_MANIFESTS
 MAKE_JARS_FLAGS += --both-manifests
 endif
 
-TAR_CREATE_FLAGS = -chf
+TAR_CREATE_FLAGS = -cvhf
 
 ifeq ($(OS_ARCH),BSD_OS)
-TAR_CREATE_FLAGS = -cLf
+TAR_CREATE_FLAGS = -cvLf
 endif
 
 ifeq ($(OS_ARCH),OS2)
-TAR_CREATE_FLAGS = -cf
+TAR_CREATE_FLAGS = -cvf
 endif
 
 #
 # Personal makefile customizations go in these optional make include files.
 #
 MY_CONFIG	:= $(DEPTH)/config/myconfig.mk
 MY_RULES	:= $(DEPTH)/config/myrules.mk
 
--- a/suite/browser/browser-prefs.js
+++ b/suite/browser/browser-prefs.js
@@ -79,17 +79,17 @@ pref("browser.chrome.load_toolbar_icons"
 
 pref("browser.toolbars.showbutton.go",      false);
 pref("browser.toolbars.showbutton.search",  true);
 
 //XXXCallek sound is not implemented in new DLMGR yet
 pref("browser.download.finished_download_sound", false);
 pref("browser.download.finished_sound_url", "");
 pref("browser.download.useDownloadDir", false);
-pref("browser.download.folderList", 1);
+pref("browser.download.folderList", 2);
 
 pref("browser.download.manager.showAlertOnComplete", true);
 pref("browser.download.manager.showAlertInterval", 2000);
 pref("browser.download.manager.retention", 2);
 pref("browser.download.manager.quitBehavior", 0);
 pref("browser.download.manager.addToRecentDocs", true);
 pref("browser.download.manager.scanWhenDone", true);
 pref("browser.download.manager.resumeOnWakeDelay", 10000);
--- a/suite/browser/mailNavigatorOverlay.xul
+++ b/suite/browser/mailNavigatorOverlay.xul
@@ -230,18 +230,17 @@
               insertafter="context-saveaudio"/>
     <menuitem id="context-sendlink"
               label="&contextSendThisLink.label;"
               accesskey="&contextSendThisLink.accesskey;"
               oncommand="sendLink(gContextMenu.linkURL());"
               insertafter="context-savelink"/>
     <menu id="frame">
     <menupopup id="frame_popup">
-      <menuitem id="context-sendframe"
-                insertafter="context-saveframe"
+      <menuitem insertafter="saveframeas"
                 label="&contextSendFrame.label;"
                 accesskey="&contextSendFrame.accesskey;"
                 oncommand="sendPage(gContextMenu.target.ownerDocument);"/>
     </menupopup>
     </menu>
   </popup>
   
 </overlay>
--- a/suite/browser/navigator.xul
+++ b/suite/browser/navigator.xul
@@ -247,17 +247,16 @@
                      ondragexit="nsDragAndDrop.dragExit(event, homeButtonObserver); event.stopPropagation()"
                      ondragover="nsDragAndDrop.dragOver(event, homeButtonObserver); event.stopPropagation()"/>
 
       <toolbaritem id="nav-bar-inner" align="center" flex="1" persist="width"
                  class="chromeclass-location"
                  title="&locationBar.title;">
         <textbox id="urlbar" class="chromeclass-location uri-element" flex="1"
                  type="autocomplete" autocompletesearch="history file"
-                 completedefaultindex="true" forcecomplete="false"
                  timeout="50" maxrows="6"
                  disablehistory="false" accesskey="&locationBar.accesskey;"
                  defaultSearchEngine="true" tabscrolling="true"
                  showcommentcolumn="true"
                  inputtooltiptext="&locationBar.tooltip;"
                  newlines="stripsurroundingwhitespace"
                  aria-label="&locationBar.title;"
                  oninput="gBrowser.userTypedValue = this.value;"
--- a/suite/browser/test/browser/browser_bug462289.js
+++ b/suite/browser/test/browser/browser_bug462289.js
@@ -30,17 +30,16 @@ function step3()
 
   EventUtils.synthesizeKey("VK_TAB", { });
   // give tab key a chance to settle
   setTimeout(step3_5, 0);
 }
 
 function step3_5()
 {
-  is(document.activeElement.localName, "tab", "tab key to tab activeElement");
   is(document.activeElement, tab1, "tab key to tab activeElement");
 
   EventUtils.synthesizeMouse(tab1, 9, 9, {});
   setTimeout(step4, 0);
 }
 
 function step4()
 {
--- a/suite/common/contentAreaContextOverlay.xul
+++ b/suite/common/contentAreaContextOverlay.xul
@@ -244,50 +244,44 @@
                 accesskey="&selectAllCmd.accesskey;"
                 command="cmd_selectAll"/>      
       <menuseparator id="context-sep-selectall"/>
       <menuitem id="context-searchselect"
                 oncommand="OpenSearch('internet', gContextMenu.searchSelected(), true, event.shiftKey);"/>
       <menuseparator id="frame-sep"/>
       <menu id="frame" label="&thisFrameMenu.label;" accesskey="&thisFrameMenu.accesskey;">
         <menupopup id="frame_popup">
-          <menuitem id="context-showonlythisframe"
-                    label="&showOnlyThisFrameCmd.label;"
+          <menuitem label="&showOnlyThisFrameCmd.label;"
                     accesskey="&showOnlyThisFrameCmd.accesskey;"
                     oncommand="gContextMenu.showOnlyThisFrame();"/>
-          <menuitem id="context-openframe"
-                    label="&openFrameCmd.label;"
+          <menuitem label="&openFrameCmd.label;"
                     accesskey="&openFrameCmd.accesskey;"
                     oncommand="gContextMenu.openFrame();"/>
-          <menuitem id="context-openframeintab"
-                    label="&openFrameCmdInTab.label;"
+          <menuitem label="&openFrameCmdInTab.label;"
                     accesskey="&openFrameCmdInTab.accesskey;"
                     oncommand="gContextMenu.openFrameInTab(event.shiftKey);"/>
           <menuseparator/>
-          <menuitem id="context-reloadframe"
+          <menuitem id="context-reload-frame"
                     label="&reloadFrameCmd.label;"
                     accesskey="&reloadFrameCmd.accesskey;"
                     oncommand="gContextMenu.reloadFrame();"/>
           <menuseparator/>
-          <menuitem id="context-bookmarkframe"
-                    label="&bookmarkFrameCmd.label;"
+          <menuitem label="&bookmarkFrameCmd.label;"
                     accesskey="&bookmarkFrameCmd.accesskey;"
                     oncommand="gContextMenu.addBookmarkForFrame();"/>
-          <menuitem id="context-saveframe"
+          <menuitem id="saveframeas"
                     valueSaveAs="&saveFrameAsCmd.label;"
                     valueSave="&saveFrameCmd.label;"
                     accesskey="&saveFrameCmd.accesskey;"
                     oncommand="saveDocument(gContextMenu.target.ownerDocument);"/>
           <menuseparator/>
-          <menuitem id="context-viewframesource"
-                    label="&viewFrameSourceCmd.label;"
+          <menuitem label="&viewFrameSourceCmd.label;"
                     accesskey="&viewFrameSourceCmd.accesskey;"
                     oncommand="gContextMenu.viewFrameSource();"/>
-          <menuitem id="context-viewframeinfo"
-                    label="&viewFrameInfoCmd.label;"
+          <menuitem label="&viewFrameInfoCmd.label;"
                     accesskey="&viewFrameInfoCmd.accesskey;"
                     oncommand="gContextMenu.viewFrameInfo();"/>        
         </menupopup>
       </menu>
       <menuseparator id="context-sep-properties"/>
       <menuitem id="context-viewpartialsource-selection"
                 label="&viewPartialSourceForSelectionCmd.label;"
                 accesskey="&viewPartialSourceCmd.accesskey;"
--- a/suite/common/contentAreaUtils.js
+++ b/suite/common/contentAreaUtils.js
@@ -527,18 +527,16 @@ function initFileInfo(aFI, aURL, aURLCha
   }
 }
 
 /** 
  * Given the Filepicker Parameters (aFpP), show the file picker dialog,
  * prompting the user to confirm (or change) the fileName.
  * @param aFpP a structure (see definition in internalSave(...) method)
  *        containing all the data used within this method.
- * @param aSkipPrompt If true, we will attempt not to prompt the user for a
-          download location
  * @return true if the user confirmed a filename in the picker; false if they
  *         dismissed the picker.
  */
 function getTargetFile(aFpP)
 {
   var prefs = getPrefsBrowserDownload("browser.download.");
   var useDownloadDir = prefs.getBoolPref("useDownloadDir");
   const nsILocalFile = Components.interfaces.nsILocalFile;
--- a/suite/common/downloads/downloadmanager.js
+++ b/suite/common/downloads/downloadmanager.js
@@ -70,24 +70,16 @@ function dmStartup()
                       .getService(Components.interfaces.nsIObserverService);
   obs.addObserver(gDownloadObserver, "download-manager-remove-download", false);
 
   // The DownloadProgressListener (DownloadProgressListener.js) handles
   // progress notifications.
   gDownloadListener = new DownloadProgressListener();
   gDownloadManager.addListener(gDownloadListener);
 
-  // correct keybinding command attributes which don't do our business yet
-  var key = document.getElementById("key_delete");
-  if (key.hasAttribute("command"))
-    key.setAttribute("command", "cmd_stop");
-  key = document.getElementById("key_delete2");
-  if (key.hasAttribute("command"))
-    key.setAttribute("command", "cmd_stop");
-
   gDownloadTree.focus();
 
   if (gDownloadTree.view.rowCount > 0)
     gDownloadTree.view.selection.select(0);
 }
 
 function dmShutdown()
 {
@@ -436,23 +428,21 @@ var gDownloadObserver = {
     }
   }
 };
 
 var dlTreeController = {
   supportsCommand: function(aCommand)
   {
     switch (aCommand) {
-      case "cmd_play":
       case "cmd_pause":
       case "cmd_resume":
       case "cmd_retry":
       case "cmd_cancel":
       case "cmd_remove":
-      case "cmd_stop":
       case "cmd_open":
       case "cmd_show":
       case "cmd_openReferrer":
       case "cmd_copyLocation":
       case "cmd_selectAll":
       case "cmd_clearList":
         return true;
     }
@@ -465,23 +455,16 @@ var dlTreeController = {
     if (gDownloadTreeView && gDownloadTreeView.selection)
       selectionCount = gDownloadTreeView.selection.count;
 
     var selItemData = selectionCount ?
                       gDownloadTreeView.getRowData(gDownloadTree.currentIndex) :
                       null;
 
     switch (aCommand) {
-      case "cmd_play":
-         return selectionCount == 1 &&
-                ((selItemData.resumable &&
-                 (selItemData.isActive ||
-                  selItemData.state == nsIDownloadManager.DOWNLOAD_PAUSED)) ||
-                (selItemData.state == nsIDownloadManager.DOWNLOAD_CANCELED ||
-                 selItemData.state == nsIDownloadManager.DOWNLOAD_FAILED));
       case "cmd_pause":
         return selectionCount == 1 &&
                selItemData.isActive &&
                selItemData.state != nsIDownloadManager.DOWNLOAD_PAUSED &&
                selItemData.resumable;
       case "cmd_resume":
         return selectionCount == 1 &&
                selItemData.state == nsIDownloadManager.DOWNLOAD_PAUSED &&
@@ -496,18 +479,16 @@ var dlTreeController = {
       case "cmd_cancel":
         return selectionCount == 1 && selItemData.isActive;
       case "cmd_retry":
         return selectionCount == 1 &&
                (selItemData.state == nsIDownloadManager.DOWNLOAD_CANCELED ||
                 selItemData.state == nsIDownloadManager.DOWNLOAD_FAILED);
       case "cmd_remove":
         return selectionCount == 1 && !selItemData.isActive;
-      case "cmd_stop":
-        return selectionCount == 1;
       case "cmd_openReferrer":
         return selectionCount == 1 && !!selItemData.referrer;
       case "cmd_copyLocation":
         return selectionCount > 0;
       case "cmd_selectAll":
         return gDownloadTreeView.rowCount != selectionCount;
       case "cmd_clearList":
         return gDownloadTreeView.rowCount && gDownloadManager.canCleanUp;
@@ -534,30 +515,16 @@ var dlTreeController = {
         gDownloadTreeView.selection.getRangeAt(rg, start, end);
         for (let row = start.value; row <= end.value; row++){
           m_selIdx.push(row);
         }
       }
     }
 
     switch (aCommand) {
-      case "cmd_play":
-        switch (selItemData.state) {
-          case nsIDownloadManager.DOWNLOAD_DOWNLOADING:
-            pauseDownload(selItemData.dlid);
-            break;
-          case nsIDownloadManager.DOWNLOAD_PAUSED:
-            resumeDownload(selItemData.dlid);
-            break;
-          case nsIDownloadManager.DOWNLOAD_FAILED:
-          case nsIDownloadManager.DOWNLOAD_CANCELED:
-            retryDownload(selItemData.dlid);
-            break;
-         }
-         break;
       case "cmd_pause":
         pauseDownload(selItemData.dlid);
         break;
       case "cmd_resume":
         resumeDownload(selItemData.dlid);
         break;
       case "cmd_retry":
         retryDownload(selItemData.dlid);
@@ -565,24 +532,16 @@ var dlTreeController = {
       case "cmd_cancel":
         // fake an nsIDownload with the properties needed by that function
         cancelDownload({id: selItemData.dlid,
                         targetFile: getLocalFileFromNativePathOrUrl(selItemData.file)});
         break;
       case "cmd_remove":
         removeDownload(selItemData.dlid);
         break;
-      case "cmd_stop":
-        if (selItemData.isActive)
-          // fake an nsIDownload with the properties needed by that function
-          cancelDownload({id: selItemData.dlid,
-                          targetFile: getLocalFileFromNativePathOrUrl(selItemData.file)});
-        else
-          removeDownload(selItemData.dlid);
-        break;
       case "cmd_open":
         // fake an nsIDownload with the properties needed by that function
         openDownload({displayName: selItemData.target,
                       targetFile: getLocalFileFromNativePathOrUrl(selItemData.file)});
         break;
       case "cmd_show":
         // fake an nsIDownload with the properties needed by that function
         showDownload({targetFile: getLocalFileFromNativePathOrUrl(selItemData.file)});
@@ -630,16 +589,15 @@ var dlTreeController = {
   onEvent: function(aEvent){
     switch (aEvent) {
     case "tree-select":
       this.onCommandUpdate();
     }
   },
 
   onCommandUpdate: function() {
-    var cmds = ["cmd_play", "cmd_pause", "cmd_resume", "cmd_retry",
-                "cmd_cancel", "cmd_remove", "cmd_stop", "cmd_open", "cmd_show",
-                "cmd_openReferrer", "cmd_copyLocation", "cmd_selectAll",
-                "cmd_clearList"];
+    var cmds = ["cmd_pause", "cmd_resume", "cmd_retry", "cmd_cancel",
+                "cmd_remove", "cmd_open", "cmd_show", "cmd_openReferrer",
+                "cmd_copyLocation", "cmd_selectAll", "cmd_clearList"];
     for (let command in cmds)
       goUpdateCommand(cmds[command]);
   }
 };
--- a/suite/common/downloads/downloadmanager.xul
+++ b/suite/common/downloads/downloadmanager.xul
@@ -86,59 +86,46 @@
     </commandset>
     <commandset id="editMenuCommands"/>
     <commandset id="commandUpdate_Downloads"
                 commandupdater="true"
                 events="focus,tree-select"
                 oncommandupdate="dlTreeController.onCommandUpdate()"/>
 
     <commandset id="downloadCommands">
-      <command id="cmd_play"
-               oncommand="goDoCommand('cmd_play');"/>
       <command id="cmd_pause"
                oncommand="goDoCommand('cmd_pause');"/>
       <command id="cmd_resume"
                oncommand="goDoCommand('cmd_resume');"/>
       <command id="cmd_retry"
                oncommand="goDoCommand('cmd_retry');"/>
       <command id="cmd_cancel"
                oncommand="goDoCommand('cmd_cancel');"/>
       <command id="cmd_remove"
                oncommand="goDoCommand('cmd_remove');"/>
-      <command id="cmd_stop"
-               oncommand="goDoCommand('cmd_stop');"/>
       <command id="cmd_open"
                oncommand="goDoCommand('cmd_open');"/>
       <command id="cmd_show"
                oncommand="goDoCommand('cmd_show');"/>
       <command id="cmd_openReferrer"
                oncommand="goDoCommand('cmd_openReferrer');"/>
       <command id="cmd_copyLocation"
                oncommand="goDoCommand('cmd_copyLocation');"/>
       <command id="cmd_clearList"
                oncommand="goDoCommand('cmd_clearList');"/>
     </commandset>
   </commandset>
 
   <keyset id="tasksKeys">
     <!-- File Menu -->
-    <key id="key_open"
-         keycode="VK_ENTER"
-         command="cmd_open"/>
-    <key id="key_open2"
-         keycode="VK_RETURN"
-         command="cmd_open"/>
     <key id="key_close"/>
     <key id="key_quit"/>
     <!-- Edit Menu -->
     <key id="key_cut"/>
     <key id="key_copy"/>
-    <key id="key_play"
-         key=" "
-         command="cmd_play"/>
     <key id="key_delete"/>
     <key id="key_delete2"/>
     <key id="key_selectAll"/>
     <!-- Search Box -->
     <key id="key_search_focus"
          command="cmd_search_focus"
          key="&search.key;"
          modifiers="accel"/>
@@ -191,17 +178,16 @@
     <menubar id="download-menubar"
              grippytooltiptext="&menuBar.tooltip;"
              chromedir="&locale.dir;">
       <menu id="menu_File">
         <menupopup id="menu_FilePopup">
           <menuitem id="dlMenu_open"
                     label="&cmd.open.label;"
                     accesskey="&cmd.open.accesskey;"
-                    key="key_open"
                     command="cmd_open"/>
           <menuitem id="dlMenu_show"
                     label="&cmd.show.label;"
                     accesskey="&cmd.show.accesskey;"
                     command="cmd_show"/>
           <menuitem id="dlMenu_openReferrer"
                     label="&cmd.goToDownloadPage.label;"
                     accesskey="&cmd.goToDownloadPage.accesskey;"
@@ -364,17 +350,16 @@
     </toolbar>
   </toolbox>
 
   <tree id="downloadTree"
         flex="1" type="downloads"
         class="plain"
         context="downloadContext"
         enableColumnDrag="true"
-        ondblclick="goDoCommand('cmd_open');"
         onselect="onTreeSelect(event);">
     <treecols context="" onclick="sortDownloads(event.target)">
       <treecol id="Name"
                label="&col.name.label;"
                tooltiptext="&col.name.tooltip;"
                class="sortDirectionIndicator" flex="3"
                persist="width hidden ordinal sortActive sortDirection"/>
       <splitter class="tree-splitter"/>
--- a/suite/common/downloads/tests/Makefile.in
+++ b/suite/common/downloads/tests/Makefile.in
@@ -39,32 +39,28 @@ topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 relativesrcdir = suite/common/downloads/tests
 
 include $(DEPTH)/config/autoconf.mk
 include $(topsrcdir)/config/rules.mk
 
 _CHROME_FILES = \
-    test_action_keys_respect_focus.xul \
     test_basic_functionality.xul \
     test_cleanup_search.xul \
     test_clear_button_disabled.xul \
     test_close_download_manager.xul \
-    test_delete_key_cancels.xul \
     test_delete_key_removes.xul \
-    test_enter_dblclick_opens.xul \
     test_multi_select.xul \
     test_multiword_search.xul \
     test_removeDownload_updates_ui.xul \
     test_search_clearlist.xul \
     test_search_keys.xul \
     test_select_all.xul \
     test_space_key_pauses_resumes.xul \
-    test_space_key_retries.xul \
     test_ui_stays_open_on_alert_clickback.xul \
     $(NULL)
 
 _BROWSER_FILES = browser_nsISuiteDownloadManagerUI.js \
     $(NULL)
 
 libs:: $(addprefix chrome/, $(_CHROME_FILES))
 	$(INSTALL) $(foreach f,$^,"$f") $(MOZDEPTH)/_tests/testing/mochitest/chrome/$(relativesrcdir)
--- a/suite/common/downloads/tests/chrome/test_delete_key_removes.xul
+++ b/suite/common/downloads/tests/chrome/test_delete_key_removes.xul
@@ -165,17 +165,17 @@ function test()
            "The database and the number of downloads display matches");
         stmt.reset();
 
         let len = DownloadData.length;
         for (let i = 0; i < len; i++) {
           synthesizeKey("VK_DELETE", {}, win);
 
           stmt.executeStep();
-          is(stmt.getInt32(0), len - (i + 1),
+          todo_is(stmt.getInt32(0), len - (i + 1),
              "The download was properly removed");
           stmt.reset();
         }
       }
       finally {
         stmt.reset();
         stmt.finalize();
       }
--- a/suite/common/downloads/tests/chrome/test_space_key_pauses_resumes.xul
+++ b/suite/common/downloads/tests/chrome/test_space_key_pauses_resumes.xul
@@ -62,45 +62,42 @@ function bug413985obs(aWin)
   this.mWin = aWin;
   this.wasPaused = false;
   this.wasResumed = false;
 }
 bug413985obs.prototype = {
   observe: function(aSubject, aTopic, aData)
   {
     if ("timer-callback" == aTopic) {
-      // dispatch a space keypress to pause/resume the download
+      // dispatch a space keypress to resume the download
       synthesizeKey(" ", {}, this.mWin);
     }
   },
 
   onDownloadStateChange: function(aState, aDownload)
   {
     if (aDownload.state == Components.interfaces.nsIDownloadManager.DOWNLOAD_DOWNLOADING &&
         !this.wasPaused) {
       this.wasPaused = true;
-      // We have to do this on a timer so other JS stuff that handles the UI
-      // can actually catch up to us...
-      var timer = Components.classes["@mozilla.org/timer;1"]
-                            .createInstance(Components.interfaces.nsITimer);
-      timer.init(this, 0, Components.interfaces.nsITimer.TYPE_ONE_SHOT);
+      // dispatch a space keypress to pause the download
+      synthesizeKey(" ", {}, this.mWin);
     }
 
     if (aDownload.state == Components.interfaces.nsIDownloadManager.DOWNLOAD_PAUSED &&
         !this.wasResumed) {
       this.wasResumed = true;
       // We have to do this on a timer so other JS stuff that handles the UI
       // can actually catch up to us...
       var timer = Components.classes["@mozilla.org/timer;1"]
                             .createInstance(Components.interfaces.nsITimer);
       timer.init(this, 0, Components.interfaces.nsITimer.TYPE_ONE_SHOT);
     }
 
     if (aDownload.state == Components.interfaces.nsIDownloadManager.DOWNLOAD_FINISHED) {
-      ok(this.wasPaused && this.wasResumed,
+      todo(this.wasPaused && this.wasResumed,
          "The download was paused, and then resumed to completion");
       aDownload.targetFile.remove(false);
 
       var dm = Components.classes["@mozilla.org/download-manager;1"]
                          .getService(Components.interfaces.nsIDownloadManager);
       dm.removeListener(this);
 
       SimpleTest.finish();
@@ -167,19 +164,19 @@ function test()
     {
       if (aTopic != DLMGR_UI_DONE)
         return;
 
       var win = aSubject;
       var doc = win.document;
       dm.addListener(new bug413985obs(win));
 
-      addDownload();
+      var dl = addDownload();
       // we need to focus the download as well
-      doc.getElementById("downloadTree").view.selection.select(0);
+      doc.getElementById("downloadTree").view.selecttion.select(0);
       os.removeObserver(testObs, DLMGR_UI_DONE);
     }
   };
 
   // Register with the observer service
   os.addObserver(testObs, DLMGR_UI_DONE, false);
 
   // Show the Download Manager UI
--- a/suite/common/downloads/treeView.js
+++ b/suite/common/downloads/treeView.js
@@ -314,20 +314,20 @@ DownloadTreeView.prototype = {
       this.addDownload(aDownload);
       return;
     }
     if (this._dlList[row].currBytes != aDownload.amountTransferred) {
       this._dlList[row].endTime = Date.now();
       this._dlList[row].currBytes = aDownload.amountTransferred;
       this._dlList[row].maxBytes = aDownload.size;
       this._dlList[row].progress = aDownload.percentComplete;
+      this._dlList[row].resumable = aDownload.resumable;
     }
     if (this._dlList[row].state != aDownload.state) {
       this._dlList[row].state = aDownload.state;
-      this._dlList[row].resumable = aDownload.resumable;
       switch (this._dlList[row].state) {
         case nsIDownloadManager.DOWNLOAD_NOTSTARTED:
         case nsIDownloadManager.DOWNLOAD_DOWNLOADING:
         case nsIDownloadManager.DOWNLOAD_PAUSED:
         case nsIDownloadManager.DOWNLOAD_QUEUED:
         case nsIDownloadManager.DOWNLOAD_SCANNING:
           this._dlList[row].isActive = 1;
           break;
@@ -350,32 +350,22 @@ DownloadTreeView.prototype = {
     window.updateCommands("tree-select");
   },
 
   removeDownload: function(aDownloadID) {
     var row = this._getIdxForID(aDownloadID);
     // Make sure we have an item to remove
     if (row < 0) return;
 
-    var index = this.selection.currentIndex;
-    var wasSingleSelection = this.selection.count == 1;
-
     // Remove data from the download list
     this._dlList.splice(row, 1);
 
     // Tell the tree we removed 1 row at the given row index
     this._tree.rowCountChanged(row, -1);
 
-    // Update selection if only removed download was selected
-    if (wasSingleSelection && this.selection.count == 0) {
-      index = Math.min(index, this.rowCount - 1);
-      if (index >= 0)
-        this.selection.select(index);
-    }
-
     window.updateCommands("tree-select");
   },
 
   initTree: function() {
     if (!this._tree)
       return
     // We're resetting the whole list, either because we're creating the tree
     // or because we need to recreate it
--- a/suite/common/pref/pref-download.js
+++ b/suite/common/pref/pref-download.js
@@ -33,187 +33,78 @@
  * use your version of this file under the terms of the MPL, indicate your
  * decision by deleting the provisions above and replace them with the notice
  * and other provisions required by the GPL or the LGPL. If you do not delete
  * the provisions above, a recipient may use your version of this file under
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
-const kDesktop = 0;
-const kDownloads = 1;
-const kUserDir = 2;
 var gFPHandler;
 
 function Startup()
 {
+  var pAutoDL = document.getElementById("browser.download.autoDownload");
+  SetAutoDLEnabled(pAutoDL.value);
+  var pDLSound = document.getElementById("browser.download.finished_download_sound");
+  SetSoundEnabled(pDLSound.value);
+ 
   // Define globals
-  gFPHandler = Components.classes["@mozilla.org/network/io-service;1"]
-                         .getService(Components.interfaces.nsIIOService)
-                         .getProtocolHandler("file")
-                         .QueryInterface(Components.interfaces.nsIFileProtocolHandler);
+  gFPHandler = Components.classes["@mozilla.org/network/protocol;1?name=file"]
+                         .getService(Components.interfaces.nsIFileProtocolHandler);
 
   // if we don't have the alert service, hide the pref UI for using alerts to
   // notify on download completion
   // see bug #158711
-  /* XXX: sound is to be reintroduced with bug 490467
   var downloadDoneNotificationAlertUI = document.getElementById("finishedNotificationAlert");
   downloadDoneNotificationAlertUI.hidden = !("@mozilla.org/alerts-service;1" in Components.classes);
-  */
-}
-
-/**
-  * Enables/disables the folder field and Browse button based on whether a
-  * default download directory is being used.
-  */
-function ReadUseDownloadDir()
-{
-  var downloadFolder = document.getElementById("downloadFolder");
-  var chooseFolder = document.getElementById("chooseFolder");
-  var preference = document.getElementById("browser.download.useDownloadDir");
-  downloadFolder.disabled = !preference.value;
-  chooseFolder.disabled = !preference.value;
-}
-
-/**
-  * Displays a file picker in which the user can choose the location where
-  * downloads are automatically saved, updating preferences and UI in
-  * response to the choice, if one is made.
-  */
-function ChooseFolder()
-{
-  const nsIFilePicker = Components.interfaces.nsIFilePicker;
-
-  var fp = Components.classes["@mozilla.org/filepicker;1"]
-                     .createInstance(nsIFilePicker);
-  var prefutilitiesBundle = document.getElementById("bundle_prefutilities");
-  var title = prefutilitiesBundle.getString("downloadfolder");
-  fp.init(window, title, nsIFilePicker.modeGetFolder);
-  fp.appendFilters(nsIFilePicker.filterAll);
-
-  var folderListPref = document.getElementById("browser.download.folderList");
-  fp.displayDirectory = IndexToFolder(folderListPref.value); // file
-
-  if (fp.show() == nsIFilePicker.returnOK) {
-    var currentDirPref = document.getElementById("browser.download.dir");
-    currentDirPref.value = fp.file;
-    folderListPref.value = FolderToIndex(fp.file);
-    // Note, the real prefs will not be updated yet, so dnld manager's
-    // userDownloadsDirectory may not return the right folder after
-    // this code executes. displayDownloadDirPref will be called on
-    // the assignment above to update the UI.
-  }
 }
 
-/**
-  * Initializes the download folder display settings based on the user's
-  * preferences.
-  */
-function DisplayDownloadDirPref()
+function SetAutoDLEnabled(aEnable)
 {
-  var folderListPref = document.getElementById("browser.download.folderList");
-  var currentDirPref = IndexToFolder(folderListPref.value); // file
-  var prefutilitiesBundle = document.getElementById("bundle_prefutilities");
-  var iconUrlSpec = gFPHandler.getURLSpecFromFile(currentDirPref);
-  var downloadFolder = document.getElementById("downloadFolder");
-  downloadFolder.image = "moz-icon://" + iconUrlSpec + "?size=16";
-
-  // Display a 'pretty' label or the path in the UI.
-  switch (FolderToIndex(currentDirPref)) {
-    case kDesktop:
-      downloadFolder.label = prefutilitiesBundle.getString("desktopFolderName");
-      break;
-    case kDownloads:
-      downloadFolder.label = prefutilitiesBundle.getString("downloadsFolderName");
-      break;
-    default:
-      downloadFolder.label = currentDirPref ? currentDirPref.path : "";
-      break;
-  }
-}
-
-/**
-  * Returns the Desktop folder.
-  */
-function GetDesktopFolder()
-{
-  return Components.classes["@mozilla.org/file/directory_service;1"]
-                   .getService(Components.interfaces.nsIProperties)
-                   .get("Desk", Components.interfaces.nsILocalFile);
+  EnableElementById("downloadLocation", !aEnable, false);
 }
 
-/**
-  * Returns the Downloads folder as determined by the XPCOM directory service
-  * via the download manager's attribute defaultDownloadsDirectory.
-  */
-function GetDownloadsFolder()
-{
-  return Components.classes["@mozilla.org/download-manager;1"]
-                   .getService(Components.interfaces.nsIDownloadManager)
-                   .defaultDownloadsDirectory;
-}
-
-/**
-  * Determines the type of the given folder.
-  *
-  * @param   aFolder
-  *          the folder whose type is to be determined
-  * @returns integer
-  *          kDesktop if aFolder is the Desktop or is unspecified,
-  *          kDownloads if aFolder is the Downloads folder,
-  *          kUserDir otherwise
-  */
-function FolderToIndex(aFolder)
-{
-  if (!aFolder || aFolder.equals(GetDesktopFolder()))
-    return kDesktop;
-  if (aFolder.equals(GetDownloadsFolder()))
-    return kDownloads;
-  return kUserDir;
-}
-
-/**
-  * Converts an integer into the corresponding folder.
-  *
-  * @param   aIndex
-  *          an integer
-  * @returns the Desktop folder if aIndex == kDesktop,
-  *          the Downloads folder if aIndex == kDownloads,
-  *          the folder stored in browser.download.dir
-  */
-function IndexToFolder(aIndex)
-{
-  var folder;
-  switch (aIndex) {
-    default:
-      folder = document.getElementById("browser.download.dir").value;
-      if (folder && folder.exists())
-        return folder;
-    case kDownloads:
-      folder = GetDownloadsFolder();
-      if (folder && folder.exists())
-        return folder;
-    case kDesktop:
-      return GetDesktopFolder();
-  }
-}
-
-/* XXX: sound is to be reintroduced with bug 490467
 function SetSoundEnabled(aEnable)
 {
   EnableElementById("downloadSndURL", aEnable, false);
   document.getElementById("downloadSndPreview").disabled = !aEnable;
 }
 
+function ReadDLFolder(aField)
+{
+  var file = document.getElementById("browser.download.dir").value;
+  if (file)
+  {
+    aField.file = file;
+    aField.label = (/Mac/.test(navigator.platform)) ? file.leafName : file.path;
+  }
+}
+
+function DownloadSelectFolder()
+{
+  var pref = document.getElementById("browser.download.dir");
+  const nsIFilePicker = Components.interfaces.nsIFilePicker;
+  var fp = Components.classes["@mozilla.org/filepicker;1"]
+                     .createInstance(nsIFilePicker);
+  var prefutilitiesBundle = document.getElementById("bundle_prefutilities");
+  var title = prefutilitiesBundle.getString("downloadfolder");
+  fp.init(window, title, nsIFilePicker.modeGetFolder);
+  fp.displayDirectory = pref.value;
+  fp.appendFilters(nsIFilePicker.filterAll);
+  if (fp.show() == nsIFilePicker.returnOK)
+    pref.value = fp.file;
+}
+
+
 function BrowseSound()
 {
   var pref = document.getElementById("browser.download.finished_sound_url");
 
   const nsIFilePicker = Components.interfaces.nsIFilePicker;
-  const nsILocalFile = Components.interfaces.nsILocalFile;
   var fp = Components.classes["@mozilla.org/filepicker;1"]
                      .createInstance(nsIFilePicker);
   var prefutilitiesBundle = document.getElementById("bundle_prefutilities");
   var title = prefutilitiesBundle.getString("choosesound");
   fp.init(window, title, nsIFilePicker.modeOpen);
 
   if (pref.value)
     fp.displayDirectory = gFPHandler.getFileFromURLSpec(pref.value)
@@ -248,9 +139,8 @@ function ReadSndFile(aField)
   var pref = document.getElementById("browser.download.finished_sound_url");
   if (pref.value)
   {
     var file = gFPHandler.getFileFromURLSpec(pref.value);
     aField.file = file;
     aField.label = (/Mac/.test(navigator.platform)) ? file.leafName : file.path;
   }
 }
-*/
--- a/suite/common/pref/pref-download.xul
+++ b/suite/common/pref/pref-download.xul
@@ -43,103 +43,110 @@
 <!DOCTYPE overlay SYSTEM "chrome://communicator/locale/pref/pref-download.dtd">
 
 <overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
   <prefpane id="download_pane"
             label="&pref.download.title;"
             script="chrome://communicator/content/pref/pref-download.js">
 
     <preferences>
-      <preference id="browser.download.manager.focusWhenStarting"
-                  name="browser.download.manager.focusWhenStarting"
-                  type="bool" inverted="true"/>
-      <preference id="browser.download.manager.behavior"
-                  name="browser.download.manager.behavior"
+      <preference id="browser.downloadmanager.behavior"
+                  name="browser.downloadmanager.behavior"
                   type="int"/>
-      <preference id="browser.download.useDownloadDir"
-                  name="browser.download.useDownloadDir"
+      <preference id="browser.download.autoDownload"
+                  name="browser.download.autoDownload"
+                  type="bool"
+                  onchange="SetAutoDLEnabled(this.value);"/>
+      <preference id="browser.download.lastLocation"
+                  name="browser.download.lastLocation"
                   type="bool"/>
-      <preference id="browser.download.dir"
-                  name="browser.download.dir"
-                  type="file"/>
-      <preference id="browser.download.folderList"
-                  name="browser.download.folderList"
-                  type="int"
-                  onchange="DisplayDownloadDirPref();"/>
-      <!-- XXX: to be reintroduced with bug 490467
-       preference id="browser.download.finished_download_sound"
+      <preference id="browser.download.finished_download_sound"
                   name="browser.download.finished_download_sound"
                   type="bool"
                   onchange="SetSoundEnabled(this.value);"/>
       <preference id="browser.download.finished_download_alert"
                   name="browser.download.finished_download_alert"
                   type="bool"/>
       <preference id="browser.download.finished_sound_url"
                   name="browser.download.finished_sound_url"
-                  type="string"/ -->
+                  type="string"/>
+      <preference id="browser.download.dir"
+                  name="browser.download.dir"
+                  type="file"/>
     </preferences>
 
     <groupbox>
       <caption label="&downloadBehavior.label;"/>
-      <checkbox id="focusWhenStarting"
-                label="&focusWhenStarting.label;"
-                preference="browser.download.manager.focusWhenStarting"
-                accesskey="&focusWhenStarting.accesskey;"/>
       <radiogroup id="downloadBehavior"
-                  class="indent"
-                  preference="browser.download.manager.behavior">
+                  preference="browser.downloadmanager.behavior">
         <radio value="0"
                label="&openDM.label;"
                accesskey="&openDM.accesskey;"/>
         <radio value="1"
                label="&openProgressDialog.label;"
                accesskey="&openProgressDialog.accesskey;"/>
         <radio value="2"
                label="&doNothing.label;"
                accesskey="&doNothing.accesskey;"/>
       </radiogroup>
     </groupbox>
 
     <groupbox>
       <caption label="&downloadLocation.label;"/>
-      <radiogroup id="saveWhere"
-                  preference="browser.download.useDownloadDir"
-                  onsyncfrompreference="return document.getElementById('download_pane').ReadUseDownloadDir();">
-        <hbox id="saveToRow">
-          <radio id="saveTo" value="true"
-                 label="&saveTo.label;"
-                 accesskey="&saveTo.accesskey;"
-                 aria-labelledby="saveTo downloadFolder"/>
-          <filefield id="downloadFolder" flex="1"
+      <radiogroup id="autoDownload"
+                  preference="browser.download.autoDownload">
+        <radio value="false"
+               label="&promptDownload.label;"
+               accesskey="&promptDownload.accesskey;"/>
+        <radiogroup id="downloadLocation"
+                    class="indent"
+                    preference="browser.download.lastLocation">
+          <radio value="true"
+                 label="&lastLocation.label;"
+                 accesskey="&lastLocation.accesskey;"/>
+          <radio value="false"
+                 label="&specifiedLocation.label;"
+                 accesskey="&specifiedLocation.accesskey;"/>
+        </radiogroup>
+        <radio value="true"
+               label="&autoDownload.label;"
+               accesskey="&autoDownload.accesskey;"/>
+      </radiogroup>
+
+      <separator class="thin"/>
+
+      <vbox>
+        <label value="&downloadFolder.label;"/>
+        <hbox align="center">
+          <filefield id="downloadFolder"
+                     flex="1"
                      preference="browser.download.dir"
                      preference-editable="true"
-                     aria-labelledby="saveTo"
-                     onsyncfrompreference="document.getElementById('download_pane').DisplayDownloadDirPref();"/>
-          <button id="chooseFolder" oncommand="ChooseFolder();"
+                     onsyncfrompreference="return document.getElementById('download_pane').ReadDLFolder(this);"/>
+          <button id="chooseDownloadFolder"
                   label="&chooseDownloadFolder.label;"
-                  accesskey="&chooseDownloadFolder.accesskey;"/>
+                  accesskey="&chooseDownloadFolder.accesskey;"
+                  oncommand="DownloadSelectFolder();">
+            <observes element="downloadFolder" attribute="disabled"/>
+          </button>
         </hbox>
-        <radio id="alwaysAsk" value="false"
-               label="&alwaysAsk.label;"
-               accesskey="&alwaysAsk.accesskey;"/>
-      </radiogroup>
+      </vbox>
     </groupbox>
 
-    <!-- XXX: to be reintroduced with bug 490467
-     groupbox>
+    <groupbox>
       <caption label="&finishedBehavior.label;"/>
       <hbox align="center">
-        <checkbox id="finishedNotificationSound"
+	<checkbox id="finishedNotificationSound"
                   label="&playSound.label;"
-                  preference="browser.download.finished_download_sound"
-                  accesskey="&playSound.accesskey;"/>
-        <checkbox id="finishedNotificationAlert"
+		  preference="browser.download.finished_download_sound"
+		  accesskey="&playSound.accesskey;"/>
+	<checkbox id="finishedNotificationAlert"
                   label="&showAlert.label;"
-                  preference="browser.download.finished_download_alert"
-                  accesskey="&showAlert.accesskey;"/>
+		  preference="browser.download.finished_download_alert"
+		  accesskey="&showAlert.accesskey;"/>
       </hbox>
 
       <hbox align="center" class="indent">
         <filefield id="downloadSndURL"
                    flex="1"
                    preference="browser.download.finished_sound_url"
                    preference-editable="true"
                    onsyncfrompreference="return document.getElementById('download_pane').ReadSndFile(this);"/>
@@ -151,11 +158,11 @@
             <observes element="downloadSndURL" attribute="disabled"/>
           </button>
           <button id="downloadSndPreview"
                   label="&preview.label;"
                   accesskey="&preview.accesskey;"
                   oncommand="PreviewSound();"/>
         </hbox>
       </hbox>
-    </groupbox -->
+    </groupbox>
   </prefpane>
 </overlay>
--- a/suite/locales/en-US/chrome/common/contentAreaCommands.dtd
+++ b/suite/locales/en-US/chrome/common/contentAreaCommands.dtd
@@ -1,13 +1,13 @@
 <!-- Context Menu -->
 <!ENTITY popupWindowRejectCmd.label     "Reject popup windows from this site">
-<!ENTITY popupWindowRejectCmd.accesskey "o">
+<!ENTITY popupWindowRejectCmd.accesskey "">
 <!ENTITY popupWindowAllowCmd.label      "Allow popup windows from this site">
-<!ENTITY popupWindowAllowCmd.accesskey  "o">
+<!ENTITY popupWindowAllowCmd.accesskey  "">
 <!ENTITY openLinkCmd.label            "Open Link in New Window">
 <!ENTITY openLinkCmd.accesskey        "W">
 <!ENTITY openLinkCmdInTab.label       "Open Link in New Tab">
 <!ENTITY openLinkCmdInTab.accesskey   "T">
 <!ENTITY openLinkInWindowCmd.label    "Open">
 <!ENTITY openLinkInWindowCmd.accesskey "p">
 <!ENTITY openFrameCmd.label           "Open Frame in New Window">
 <!ENTITY openFrameCmd.accesskey       "W">
@@ -25,74 +25,74 @@
 <!ENTITY reloadCmd.accesskey          "R">
 <!ENTITY reloadCmd.commandkey         "r">
 <!ENTITY stopCmd.label                "Stop">
 <!ENTITY stopCmd.accesskey            "S">
 <!ENTITY reloadFrameCmd.label         "Reload Frame">
 <!ENTITY reloadFrameCmd.accesskey     "R">
 <!ENTITY viewPartialSourceForSelectionCmd.label "View Selection Source">
 <!ENTITY viewPartialSourceForMathMLCmd.label    "View MathML Source">
-<!ENTITY viewPartialSourceCmd.accesskey "u">
+<!ENTITY viewPartialSourceCmd.accesskey "e">
 <!ENTITY viewPageSourceCmd.label      "View Page Source">
 <!ENTITY viewPageSourceCmd.accesskey  "V">
 <!ENTITY viewFrameSourceCmd.label     "View Frame Source">
 <!ENTITY viewFrameSourceCmd.accesskey "V">
 <!ENTITY viewPageInfoCmd.label        "View Page Info">
 <!ENTITY viewPageInfoCmd.accesskey    "I">
 <!ENTITY viewFrameInfoCmd.label       "View Frame Info">
 <!ENTITY viewFrameInfoCmd.accesskey   "I">
 <!ENTITY fitImageCmd.label            "Fit Image to Window">
 <!ENTITY fitImageCmd.accesskey        "F">
 <!ENTITY reloadImageCmd.label         "Reload Image">
-<!ENTITY reloadImageCmd.accesskey     "R">
+<!ENTITY reloadImageCmd.accesskey     "e">
 <!ENTITY viewImageCmd.label           "View Image">
-<!ENTITY viewImageCmd.accesskey       "w">
+<!ENTITY viewImageCmd.accesskey       "I">
 <!ENTITY viewBGImageCmd.label         "View Background Image">
 <!ENTITY viewBGImageCmd.accesskey     "w">
 <!ENTITY setWallpaperCmd.label        "Set As Wallpaper">
-<!ENTITY setWallpaperCmd.accesskey    "e">
+<!ENTITY setWallpaperCmd.accesskey    "S">
 <!ENTITY bookmarkPageCmd.label        "Bookmark This Page">
 <!ENTITY bookmarkPageCmd.accesskey    "m">
 <!ENTITY bookmarkLinkCmd.label        "Bookmark This Link">
-<!ENTITY bookmarkLinkCmd.accesskey    "B">
+<!ENTITY bookmarkLinkCmd.accesskey    "L">
 <!ENTITY bookmarkFrameCmd.label       "Bookmark This Frame">
-<!ENTITY bookmarkFrameCmd.accesskey   "B">
+<!ENTITY bookmarkFrameCmd.accesskey   "m">
 <!ENTITY savePageAsCmd.label          "Save Page As…">
 <!ENTITY savePageCmd.label            "Save Page">
-<!ENTITY savePageCmd.accesskey        "e">
+<!ENTITY savePageCmd.accesskey        "a">
 <!ENTITY savePageCmd.commandkey       "s">
 <!ENTITY saveFrameAsCmd.label         "Save Frame As…">
 <!ENTITY saveFrameCmd.label           "Save Frame">
 <!ENTITY saveFrameCmd.accesskey       "m">
 <!ENTITY saveLinkAsCmd.label          "Save Link Target As…">
 <!ENTITY saveLinkCmd.label            "Save Link Target">
-<!ENTITY saveLinkCmd.accesskey        "S">
+<!ENTITY saveLinkCmd.accesskey        "r">
 <!ENTITY saveImageAsCmd.label         "Save Image As…">
 <!ENTITY saveImageCmd.label           "Save Image">
 <!ENTITY saveImageCmd.accesskey       "v">
 <!ENTITY saveVideoCmd.label           "Save Video As…">
 <!ENTITY saveVideoCmd.accesskey       "v">
 <!ENTITY saveAudioCmd.label           "Save Audio As…">
 <!ENTITY saveAudioCmd.accesskey       "v">
 <!ENTITY copyCmd.label                "Copy">
 <!ENTITY copyCmd.accesskey            "C">
 <!ENTITY selectAllCmd.label           "Select All">
 <!ENTITY selectAllCmd.accesskey       "A">
 <!ENTITY copyLinkCmd.label            "Copy Link Location">
-<!ENTITY copyLinkCmd.accesskey        "L">
+<!ENTITY copyLinkCmd.accesskey        "C">
 <!ENTITY copyImageCmd.label           "Copy Image">
-<!ENTITY copyImageCmd.accesskey       "I">
+<!ENTITY copyImageCmd.accesskey       "o">
 <!ENTITY copyVideoURLCmd.label        "Copy Video Location">
-<!ENTITY copyVideoURLCmd.accesskey    "L">
+<!ENTITY copyVideoURLCmd.accesskey    "o">
 <!ENTITY copyAudioURLCmd.label        "Copy Audio Location">
-<!ENTITY copyAudioURLCmd.accesskey    "L">
+<!ENTITY copyAudioURLCmd.accesskey    "o">
 <!ENTITY metadataCmd.label            "Properties">
 <!ENTITY metadataCmd.accesskey        "P">
 <!ENTITY copyEmailCmd.label           "Copy Email Address">
-<!ENTITY copyEmailCmd.accesskey       "A">
+<!ENTITY copyEmailCmd.accesskey       "E">
 <!ENTITY pasteCmd.label               "Paste">
 <!ENTITY pasteCmd.accesskey           "P">
 <!ENTITY cutCmd.label                 "Cut">
 <!ENTITY cutCmd.accesskey             "t">
 <!ENTITY deleteCmd.label              "Delete">
 <!ENTITY deleteCmd.accesskey          "D">
 <!ENTITY undoCmd.label                "Undo">
 <!ENTITY undoCmd.accesskey            "U">
@@ -111,17 +111,17 @@
 <!ENTITY mediaShowControls.label      "Show Media Controls">
 <!ENTITY mediaShowControls.accesskey  "a">
 <!ENTITY mediaHideControls.label      "Hide Media Controls">
 <!ENTITY mediaHideControls.accesskey  "a">
 <!ENTITY search.accesskey             "W">
 <!ENTITY bidiSwitchPageDirectionItem.label        "Switch Page Direction">
 <!ENTITY bidiSwitchPageDirectionItem.accesskey    "g">
 <!ENTITY bidiSwitchTextDirectionItem.label        "Switch Text Direction">
-<!ENTITY bidiSwitchTextDirectionItem.accesskey    "x">
+<!ENTITY bidiSwitchTextDirectionItem.accesskey    "w">
 <!ENTITY spellAddToDictionary.label     "Add to Dictionary">
 <!ENTITY spellAddToDictionary.accesskey "o">
 <!ENTITY spellIgnoreWord.label          "Ignore Word">
 <!ENTITY spellIgnoreWord.accesskey      "W">
 <!ENTITY spellCheckEnable.label         "Check Spelling">
 <!ENTITY spellCheckEnable.accesskey     "S">
 <!ENTITY spellNoSuggestions.label       "(No Spelling Suggestions)">
 <!ENTITY spellDictionaries.label        "Languages">
--- a/suite/locales/en-US/chrome/common/contentAreaCommands.properties
+++ b/suite/locales/en-US/chrome/common/contentAreaCommands.properties
@@ -1,17 +1,17 @@
 # context menu strings
 
 searchText=Search Web for "%S"
-searchText.accesskey=S
+searchText.accesskey=W
 
 blockImage=Block Images from %S
-blockImage.accesskey=k
+blockImage.accesskey=B
 unblockImage=Unblock Images from %S
-unblockImage.accesskey=k
+unblockImage.accesskey=b
 
 SaveImageTitle=Save Image
 SaveVideoTitle=Save Video
 SaveAudioTitle=Save Audio
 SaveLinkTitle=Save As
 SaveAttachmentTitle=Save Attachment
 DefaultSaveFileName=index
 WebPageCompleteFilter=Web Page, complete
--- a/suite/locales/en-US/chrome/common/downloads/downloadmanager.dtd
+++ b/suite/locales/en-US/chrome/common/downloads/downloadmanager.dtd
@@ -58,17 +58,17 @@
 <!ENTITY view.sortDescending.label       "Z > A Sort Order">
 <!ENTITY view.sortDescending.accesskey   "Z">
 
 <!ENTITY cmd.pause.label                 "Pause">
 <!ENTITY cmd.pause.accesskey             "P">
 <!ENTITY cmd.resume.label                "Resume">
 <!ENTITY cmd.resume.accesskey            "R">
 <!ENTITY cmd.retry.label                 "Retry">
-<!ENTITY cmd.retry.accesskey             "t">
+<!ENTITY cmd.retry.accesskey             "R">
 <!ENTITY cmd.cancel.label                "Cancel">
 <!ENTITY cmd.cancel.accesskey            "C">
 <!ENTITY cmd.remove.label                "Remove From List">
 <!ENTITY cmd.remove.accesskey            "e">
 <!ENTITY cmd.open.label                  "Open">
 <!ENTITY cmd.open.accesskey              "O">
 <!ENTITY cmd.show.label                  "Open Containing Folder">
 <!ENTITY cmd.show.accesskey              "F">
--- a/suite/locales/en-US/chrome/common/pref/pref-download.dtd
+++ b/suite/locales/en-US/chrome/common/pref/pref-download.dtd
@@ -1,29 +1,29 @@
 <!ENTITY pref.download.title            "Downloads">
-
 <!ENTITY downloadBehavior.label         "When starting a download">
-<!ENTITY focusWhenStarting.label        "Flash the download manager if it is already open, otherwise:">
-<!ENTITY focusWhenStarting.accesskey    "F">
+<!ENTITY downloadLocation.label         "When saving a file">
+<!ENTITY finishedBehavior.label         "When a download completes">
 <!ENTITY openDM.label                   "Open the download manager">
 <!ENTITY openDM.accesskey               "m">
 <!ENTITY openProgressDialog.label       "Open a progress dialog">
 <!ENTITY openProgressDialog.accesskey   "O">
 <!ENTITY doNothing.label                "Don't open anything">
 <!ENTITY doNothing.accesskey            "D">
-
-<!ENTITY downloadLocation.label         "When saving a file">
-<!ENTITY saveTo.label                   "Save files to">
-<!ENTITY saveTo.accesskey               "v">
+<!ENTITY promptDownload.label           "Prompt for download location and default to">
+<!ENTITY promptDownload.accesskey       "P">
+<!ENTITY lastLocation.label             "Last download folder">
+<!ENTITY lastLocation.accesskey         "L">
+<!ENTITY specifiedLocation.label        "Specified download folder">
+<!ENTITY specifiedLocation.accesskey    "e">
+<!ENTITY autoDownload.label             "Automatically download files to specified download folder">
+<!ENTITY autoDownload.accesskey         "A">
+<!ENTITY downloadFolder.label           "Current Download Folder:">
 <!ENTITY chooseDownloadFolder.label     "Choose Folder…">
 <!ENTITY chooseDownloadFolder.accesskey "C">
-<!ENTITY alwaysAsk.label                "Always ask me where to save files">
-<!ENTITY alwaysAsk.accesskey            "A">
-
-<!ENTITY finishedBehavior.label         "When a download completes">
 <!ENTITY playSound.label                "Play a sound">
 <!ENTITY playSound.accesskey            "s">
 <!ENTITY showAlert.label                "Show an alert">
-<!ENTITY showAlert.accesskey            "a">
+<!ENTITY showAlert.accesskey            "n">
 <!ENTITY browse.label                   "Browse…">
 <!ENTITY browse.accesskey               "B">
 <!ENTITY preview.label                  "Preview">
-<!ENTITY preview.accesskey              "e">
+<!ENTITY preview.accesskey              "v">
--- a/suite/locales/en-US/chrome/common/pref/prefutilities.properties
+++ b/suite/locales/en-US/chrome/common/pref/prefutilities.properties
@@ -1,10 +1,8 @@
 cachefolder=Choose Cache Folder
 choosehomepage=Choose Home Page
 downloadfolder=Choose a Download Folder
-desktopFolderName=Desktop
-downloadsFolderName=Downloads
 choosesound=Choose a sound
 
 SoundFiles=Sounds
 
 labelDefaultFont=Default (%font_family%)
--- a/suite/themes/modern/jar.mn
+++ b/suite/themes/modern/jar.mn
@@ -17,19 +17,17 @@ modern.jar:
   skin/modern/communicator/toolbar.css                             (communicator/toolbar.css)
   skin/modern/communicator/dialogs.css                             (communicator/dialogs.css)
   skin/modern/communicator/helpOverlay.css                         (communicator/helpOverlay.css)
   skin/modern/communicator/smileys.css                             (communicator/smileys.css)
   skin/modern/communicator/communicator.css                        (communicator/communicator.css)
   skin/modern/communicator/aboutSessionRestore.css                 (communicator/aboutSessionRestore.css)
   skin/modern/communicator/bookmarks/bookmark-folder-closed.gif    (communicator/bookmarks/bookmark-folder-closed.gif)
   skin/modern/communicator/bookmarks/bookmark-folder-dis.gif       (communicator/bookmarks/bookmark-folder-dis.gif)
-  skin/modern/communicator/downloads/dl-remove.png                 (communicator/downloads/dl-remove.png)
-  skin/modern/communicator/downloads/downloadmanager.css           (communicator/downloads/downloadmanager.css)
- skin/modern/communicator/bookmarks/bookmark-folder-open.gif      (communicator/bookmarks/bookmark-folder-open.gif)
+  skin/modern/communicator/bookmarks/bookmark-folder-open.gif      (communicator/bookmarks/bookmark-folder-open.gif)
   skin/modern/communicator/bookmarks/bookmark-group.gif            (communicator/bookmarks/bookmark-group.gif)
   skin/modern/communicator/bookmarks/bookmark-item-dis.gif         (communicator/bookmarks/bookmark-item-dis.gif)
   skin/modern/communicator/bookmarks/bookmark-item-updated.gif     (communicator/bookmarks/bookmark-item-updated.gif)
   skin/modern/communicator/bookmarks/bookmark-item.gif             (communicator/bookmarks/bookmark-item.gif)
   skin/modern/communicator/bookmarks/bookmarks.css                 (communicator/bookmarks/bookmarks.css)
   skin/modern/communicator/bookmarks/bookmarksToolbar.css          (communicator/bookmarks/bookmarksToolbar.css)
   skin/modern/communicator/bookmarks/bookmarksWindow.css           (communicator/bookmarks/bookmarksWindow.css)
   skin/modern/communicator/brand/throbber-anim.png                 (communicator/brand/throbber-anim.png)