Bug 444582 - Migrate SeaMonkey's Download preferences to new pref window
authorManuel Reimer <Manuel.Spam@nurfuerspam.de>
Mon, 08 Sep 2008 07:57:09 +0100
changeset 276 509bee54949d1d2354247d318af3034eaefabc2c
parent 275 dd10c695faf9af877aec0cb91d9c80c71505777c
child 277 3251006d4f7f740b584c7000300d7d5b22c1e4af
push id247
push useriann_cvs@blueyonder.co.uk
push dateMon, 08 Sep 2008 06:57:43 +0000
treeherdercomm-central@509bee54949d [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs444582
Bug 444582 - Migrate SeaMonkey's Download preferences to new pref window r/sr=neil
suite/common/pref/pref-download.js
suite/common/pref/pref-download.xul
suite/common/pref/preferences.xul
suite/common/pref/preftree.xul
--- a/suite/common/pref/pref-download.js
+++ b/suite/common/pref/pref-download.js
@@ -1,181 +1,146 @@
-const nsIFilePicker       = Components.interfaces.nsIFilePicker;
-const nsILocalFile        = Components.interfaces.nsILocalFile;
-const nsIProperties       = Components.interfaces.nsIProperties;
-const nsIIOService        = Components.interfaces.nsIIOService;
-const nsIFileHandler      = Components.interfaces.nsIFileProtocolHandler;
-const nsIURIFixup         = Components.interfaces.nsIURIFixup;
-const kDownloadDirPref    = "browser.download.dir";
+/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released
+ * March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ *
+ * Portions created by the Initial Developer are Copyright (C) 1998-1999
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *   Manuel Reimer <Manuel.Reimer@gmx.de>
+ *
+ * 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
+ * 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 ***** */
 
-var gPrompt;
-var gLocation;
-var gChooseButton;
-var gFolderField;
-var gFinishedSound;
-var gChooseButtonLocked;
-var gPromptLocked;
-var gFinishedSoundLocked;
-var gIOService;
-var gSound = null;
+var gFPHandler;
 
 function Startup()
 {
-  gIOService = Components.classes["@mozilla.org/network/io-service;1"]
-                         .getService(nsIIOService);
-  gPrompt        = document.getElementById("autoDownload");
-  gLocation      = document.getElementById("downloadLocation");
-  gChooseButton  = document.getElementById("chooseDownloadFolder");
-  gFolderField   = document.getElementById("downloadFolder");
-  gFinishedSound = document.getElementById("finishedSoundUrl");
-
-  var prefWindow = parent.hPrefWindow;
-  gChooseButtonLocked  = prefWindow.getPrefIsLocked(kDownloadDirPref);
-  gPromptLocked        = prefWindow.getPrefIsLocked("browser.download.autoDownload");
-  gFinishedSoundLocked = prefWindow.getPrefIsLocked("browser.download.finished_sound_url");
-
-  var dir = prefWindow.getPref("localfile", kDownloadDirPref);
-  if (dir == "!/!ERROR_UNDEFINED_PREF!/!")
-    dir = null;
+  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/protocol;1?name=file"]
+                         .getService(Components.interfaces.nsIFileProtocolHandler);
 
-  if (!dir)
-  {
-    try
-    {
-      // no default_dir folder found; default to profile directory
-      var dirSvc = Components.classes["@mozilla.org/file/directory_service;1"]
-                             .getService(nsIProperties);
-      dir = dirSvc.get("ProfD", nsILocalFile);
-
-      // now remember the new assumption
-      prefWindow.setPref("localfile", kDownloadDirPref, dir);
-    }
-    catch (ex)
-    {
-    }
-  }
-
-  // if both pref and dir svc fail leave this field blank else show path
-  if (dir)
-    gFolderField.value = (/Mac/.test(navigator.platform)) ? dir.leafName : dir.path;
-
-  setPrefDLElements();
-
-  // Make sure sound_url setting is actually a URL
-  try {
-    var URIFixup = Components.classes["@mozilla.org/docshell/urifixup;1"]
-                             .getService(nsIURIFixup);
-    gFinishedSound.value = URIFixup.createFixupURI(gFinishedSound.value, nsIURIFixup.FIXUP_FLAG_NONE).spec;
-  } catch (ex) { }
-
-  PlaySoundCheck();
-
-  // if we don't have the alert service, hide the pref UI for using alerts to notify on download completion
+  // if we don't have the alert service, hide the pref UI for using alerts to
+  // notify on download completion
   // see bug #158711
   var downloadDoneNotificationAlertUI = document.getElementById("finishedNotificationAlert");
   downloadDoneNotificationAlertUI.hidden = !("@mozilla.org/alerts-service;1" in Components.classes);
 }
 
-function setPrefDLElements()
+function SetAutoDLEnabled(aEnable)
 {
-  if (!gPromptLocked)
-    gLocation.disabled = (gPrompt.value == "true");
-  gFolderField.disabled = gChooseButtonLocked;
-  gChooseButton.disabled = gChooseButtonLocked;
+  EnableElementById("downloadLocation", !aEnable, false);
 }
 
-function prefDownloadSelectFolder()
+function SetSoundEnabled(aEnable)
 {
-  var prefWindow = parent.hPrefWindow;
-  var initialDir = prefWindow.getPref("localfile", kDownloadDirPref);
-
-  // file picker will open at default location if no pref set
-  if (initialDir == "!/!ERROR_UNDEFINED_PREF!/!")
-    initialDir = null;
+  EnableElementById("downloadSndURL", aEnable, false);
+  document.getElementById("downloadSndPreview").disabled = !aEnable;
+}
 
-  var fpParams = {
-    fp: makeFilePicker(),
-    fptitle: "downloadfolder",
-    fpdir: initialDir,
-    fpmode: nsIFilePicker.modeGetFolder,
-    fpfiletype: null,
-    fpext: null,
-    fpfilters: nsIFilePicker.filterAll
-  };
-
-  var ret = poseFilePicker(fpParams);
-  if (ret == nsIFilePicker.returnOK) {
-    var localFile = fpParams.fp.file.QueryInterface(nsILocalFile);
-    prefWindow.setPref("localfile", kDownloadDirPref, localFile);
-    gFolderField.value = (/Mac/.test(navigator.platform)) ? fpParams.fp.file.leafName : fpParams.fp.file.path;
+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 makeFilePicker()
+function DownloadSelectFolder()
 {
-  return Components.classes["@mozilla.org/filepicker;1"]
-                   .createInstance(nsIFilePicker);
-}
-
-function poseFilePicker(aFpP)
-{
+  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(aFpP.fptitle);
-  var fp = aFpP.fp; // simply for smaller readable code
-
-  fp.init(window, title, aFpP.fpmode);
-  if (aFpP.fpdir)
-    fp.displayDirectory = aFpP.fpdir;
-
-  if (aFpP.fpfiletype) {
-    var filetype = prefutilitiesBundle.getString(aFpP.fpfiletype);
-    fp.appendFilter(filetype, aFpP.fpext);
-  }
-  if (aFpP.fpfilters)
-    fp.appendFilters(aFpP.fpfilters);
-  return fp.show();
+  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 PlaySoundCheck()
-{
-  var disableCustomUI = !document.getElementById("finishedNotificationSound").checked;
 
-  gFinishedSound.disabled = disableCustomUI || gFinishedSoundLocked;
-  document.getElementById("preview").disabled = disableCustomUI;
-  document.getElementById("browse").disabled = disableCustomUI || gFinishedSoundLocked;
-}
-
-function Browse()
+function BrowseSound()
 {
-  var initialDir = null;
-  if (gFinishedSound.value != "") {
-    var fileHandler = gIOService.getProtocolHandler("file")
-                                .QueryInterface(nsIFileHandler);
-    initialDir = fileHandler.getFileFromURLSpec(gFinishedSound.value)
-                            .parent.QueryInterface(nsILocalFile);
-  }
-  var fpParams = {
-    fp: makeFilePicker(),
-    fptitle: "choosesound",
-    fpdir: initialDir,
-    fpmode: nsIFilePicker.modeOpen,
-    fpfiletype: "SoundFiles",
-    fpext: "*.wav; *.wave",
-    fpfilters: nsIFilePicker.filterAll
-  };
+  var pref = document.getElementById("browser.download.finished_sound_url");
+
+  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("choosesound");
+  fp.init(window, title, nsIFilePicker.modeOpen);
 
-  var ret = poseFilePicker(fpParams);
-  if (ret == nsIFilePicker.returnOK) {
-    // convert the nsILocalFile into a nsIFile url 
-    gFinishedSound.value = fpParams.fp.fileURL.spec;
-  }
+  if (pref.value)
+    fp.displayDirectory = gFPHandler.getFileFromURLSpec(pref.value)
+                                    .parent.QueryInterface(nsILocalFile);
+
+  var ftype = prefutilitiesBundle.getString("SoundFiles");
+  fp.appendFilter(ftype, "*.wav; *.wave");
+  fp.appendFilters(nsIFilePicker.filterAll);
+
+  if (fp.show() == nsIFilePicker.returnOK)
+    pref.value = fp.fileURL.spec;
 }
 
 function PreviewSound()
 {
-  if (!gSound)
-    gSound = Components.classes["@mozilla.org/sound;1"].createInstance(Components.interfaces.nsISound);
+  var pref = document.getElementById("browser.download.finished_sound_url");
+  var sound = Components.classes["@mozilla.org/sound;1"]
+                        .createInstance(Components.interfaces.nsISound);
 
-  if (gFinishedSound.value != "")
-    gSound.play(gIOService.newURI(gFinishedSound.value, null, null));
+  if (pref.value)
+  {
+    var ioservice = Components.classes["@mozilla.org/network/io-service;1"]
+                              .getService(Components.interfaces.nsIIOService);
+    sound.play(ioservice.newURI(pref.value, null, null));
+  }
   else
-    gSound.beep();
+    sound.beep();
 }
+
+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
@@ -1,9 +1,9 @@
-<?xml version="1.0"?> 
+<?xml version="1.0"?>
 <!-- ***** BEGIN LICENSE BLOCK *****
  Version: MPL 1.1/GPL 2.0/LGPL 2.1
 
  The contents of this file are subject to the Mozilla Public License Version
  1.1 (the "License"); you may not use this file except in compliance with
  the License. You may obtain a copy of the License at
  http://www.mozilla.org/MPL/
 
@@ -16,102 +16,156 @@
  March 31, 1998.
 
  The Initial Developer of the Original Code is
  Netscape Communications Corporation.
  Portions created by the Initial Developer are Copyright (C) 1998-1999
  the Initial Developer. All Rights Reserved.
 
  Contributor(s):
+    Manuel Reimer <Manuel.Reimer@gmx.de>
 
  Alternatively, the contents of this file may be used under the terms of
  either of 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
  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 ***** -->
 
 <?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
+<?xml-stylesheet href="chrome://mozapps/content/preferences/preferences.css"?>
 
-<!DOCTYPE page SYSTEM "chrome://communicator/locale/pref/pref-download.dtd" >
+<!DOCTYPE overlay SYSTEM "chrome://communicator/locale/pref/pref-download.dtd">
 
-<page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
-      onload="parent.initPanel('chrome://communicator/content/pref/pref-download.xul');"
-      headertitle="&pref.download.title;">
+<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">
 
-  <stringbundle id="bundle_prefutilities"
-                src="chrome://communicator/locale/pref/prefutilities.properties"/>
-  <script type="application/x-javascript" src="chrome://communicator/content/pref/pref-download.js"/>
-  <script type="application/x-javascript">
-  <![CDATA[
-    var _elementIDs = ["downloadBehavior", "autoDownload", "downloadLocation",
-		       "finishedNotificationAlert", "finishedNotificationSound", "finishedSoundUrl"];
-  ]]>
-  </script>
+    <preferences>
+      <preference id="browser.downloadmanager.behavior"
+                  name="browser.downloadmanager.behavior"
+                  type="int"/>
+      <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.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"/>
+      <preference id="browser.download.dir"
+                  name="browser.download.dir"
+                  type="file"/>
+    </preferences>
 
-  <groupbox>
-    <caption label="&downloadBehavior.label;"/>
-    <radiogroup id="downloadBehavior" prefstring="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>
+    <stringbundle id="bundle_prefutilities"
+                  src="chrome://communicator/locale/pref/prefutilities.properties"/>
 
-  <groupbox>
-    <caption label="&downloadLocation.label;"/>
-    <radiogroup id="autoDownload" oncommand="setPrefDLElements();"
-                preftype="bool" prefstring="browser.download.autoDownload">
-      <radio value="false" label="&promptDownload.label;" accesskey="&promptDownload.accesskey;"/>
-      <radiogroup id="downloadLocation" class="indent"
-                  preftype="bool" prefstring="browser.download.lastLocation">
-        <radio value="true" label="&lastLocation.label;" accesskey="&lastLocation.accesskey;"/>
-        <radio value="false" label="&specifiedLocation.label;" accesskey="&specifiedLocation.accesskey;"/>
+    <groupbox>
+      <caption label="&downloadBehavior.label;"/>
+      <radiogroup id="downloadBehavior"
+                  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>
-      <radio value="true" label="&autoDownload.label;" accesskey="&autoDownload.accesskey;"/>
-    </radiogroup>
+    </groupbox>
 
-    <separator class="thin"/>
+    <groupbox>
+      <caption label="&downloadLocation.label;"/>
+      <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>
 
-    <vbox>
-      <label value="&downloadFolder.label;"/>
+      <separator class="thin"/>
+
+      <vbox>
+        <label value="&downloadFolder.label;"/>
+        <hbox align="center">
+          <filefield id="downloadFolder"
+                     flex="1"
+                     preference="browser.download.dir"
+                     preference-editable="true"
+                     onsyncfrompreference="return document.getElementById('download_pane').ReadDLFolder(this);"/>
+          <button id="chooseDownloadFolder"
+                  label="&chooseDownloadFolder.label;"
+                  accesskey="&chooseDownloadFolder.accesskey;"
+                  oncommand="DownloadSelectFolder();">
+            <observes element="downloadFolder" attribute="disabled"/>
+          </button>
+        </hbox>
+      </vbox>
+    </groupbox>
+
+    <groupbox>
+      <caption label="&finishedBehavior.label;"/>
       <hbox align="center">
-        <textbox id="downloadFolder" flex="1" readonly="true" class="uri-element"/>
-        <button label="&chooseDownloadFolder.label;" accesskey="&chooseDownloadFolder.accesskey;"
-                oncommand="prefDownloadSelectFolder();" id="chooseDownloadFolder"/>
-      </hbox>
-    </vbox>
-  </groupbox>
-
-  <groupbox>
-    <caption label="&finishedBehavior.label;"/>
-
-      <hbox align="center">
-	<checkbox id="finishedNotificationSound" label="&playSound.label;"
-		  prefstring="browser.download.finished_download_sound"
-		  accesskey="&playSound.accesskey;"
-		  oncommand="PlaySoundCheck()"/>
-	<checkbox id="finishedNotificationAlert" label="&showAlert.label;"
-		  prefstring="browser.download.finished_download_alert"
+	<checkbox id="finishedNotificationSound"
+                  label="&playSound.label;"
+		  preference="browser.download.finished_download_sound"
+		  accesskey="&playSound.accesskey;"/>
+	<checkbox id="finishedNotificationAlert"
+                  label="&showAlert.label;"
+		  preference="browser.download.finished_download_alert"
 		  accesskey="&showAlert.accesskey;"/>
       </hbox>
 
       <hbox align="center" class="indent">
-        <textbox readonly="true" flex="1" id="finishedSoundUrl" preftype="string"
-             prefstring="browser.download.finished_sound_url"/>
+        <filefield id="downloadSndURL"
+                   flex="1"
+                   preference="browser.download.finished_sound_url"
+                   preference-editable="true"
+                   onsyncfrompreference="return document.getElementById('download_pane').ReadSndFile(this);"/>
         <hbox align="center">
-          <button id="browse" label="&browse.label;"
-                  accesskey="&browse.accesskey;" oncommand="Browse()"/>
-          <button id="preview" label="&preview.label;"
-                  accesskey="&preview.accesskey;" oncommand="PreviewSound()"/>
+          <button id="downloadSndBrowse"
+                  label="&browse.label;"
+                  accesskey="&browse.accesskey;"
+                  oncommand="BrowseSound();">
+            <observes element="downloadSndURL" attribute="disabled"/>
+          </button>
+          <button id="downloadSndPreview"
+                  label="&preview.label;"
+                  accesskey="&preview.accesskey;"
+                  oncommand="PreviewSound();"/>
         </hbox>
       </hbox>
-  </groupbox>
-
-</page>
-
+    </groupbox>
+  </prefpane>
+</overlay>
--- a/suite/common/pref/preferences.xul
+++ b/suite/common/pref/preferences.xul
@@ -134,20 +134,21 @@
           <treeitem id="searchItem" label="&search.label;"
                     prefpane="search_pane"
                     helpTopic="navigator_pref_internet_searching"
                     url="chrome://communicator/content/pref/pref-search.xul"/>
           <treeitem id="tabsItem" label="&tabWindows.label;"
                     prefpane="tabs_pane"
                     helpTopic="navigator_pref_tabbed_browsing"
                     url="chrome://communicator/content/pref/pref-tabs.xul"/>
-<!-- commenting out yet unmigrated panels
-          <treeitem label="&download.label;"
+          <treeitem id="downloadItem"
+                    label="&download.label;"
+                    prefpane="download_pane"
+                    helpTopic="navigator_pref_downloads"
                     url="chrome://communicator/content/pref/pref-download.xul"/>
--->
           <!-- Taking out Policies panel b/c bug 44121
           <treeitem url="chrome://communicator/content/pref/pref-policies.xul" label="&policies.label;"/>
           -->
         </treechildren>
       </treeitem>
 
       <!-- Security and Privacy items -->
       <treeitem container="true"
--- a/suite/common/pref/preftree.xul
+++ b/suite/common/pref/preftree.xul
@@ -104,17 +104,17 @@
         </treeitem>
         <treeitem>
           <treerow>
             <treecell label="Migrated: &tabWindows.label;"/>
           </treerow>
         </treeitem>
         <treeitem>
           <treerow>
-            <treecell url="chrome://communicator/content/pref/pref-download.xul" label="&download.label;"/>
+            <treecell label="(Migrated: &download.label;)"/>
           </treerow>
         </treeitem>
         <!-- Taking out Policies panel b/c bug 44121
         <treeitem>
           <treerow>
             <treecell url="chrome://communicator/content/pref/pref-policies.xul" label="&policies.label;"/>
           </treerow>
         </treeitem> -->