home *** CD-ROM | disk | FTP | other *** search
/ ftp.swcp.com / ftp.swcp.com.zip / ftp.swcp.com / mac / mozilla-macos9-1.3.1.sea.bin / Mozilla1.3.1 / Chrome / comm.jar / content / communicator / pref / pref-cache.js < prev    next >
Text File  |  2003-06-08  |  3KB  |  97 lines

  1. /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  2.  *
  3.  */
  4.  
  5. const nsIFilePicker       = Components.interfaces.nsIFilePicker;
  6. const nsILocalFile        = Components.interfaces.nsILocalFile;
  7. const nsIFile             = Components.interfaces.nsIFile;
  8. const nsIProperties       = Components.interfaces.nsIProperties;
  9. const kCacheParentDirPref = "browser.cache.disk.parent_directory";
  10.  
  11. function Startup()
  12. {
  13.   var path = null;
  14.   var pref = null;
  15.   try 
  16.   {
  17.     pref = Components.classes["@mozilla.org/preferences-service;1"]
  18.       .getService(Components.interfaces.nsIPrefBranch);
  19.     path = pref.getComplexValue(kCacheParentDirPref, nsILocalFile);
  20.   }
  21.   catch (ex)
  22.   {
  23.     // parent_directory pref not set; path is null so we'll failover
  24.     // to filling in the parent_directory as the profile directory
  25.   }
  26.  
  27.   if (!path)
  28.   {
  29.     try
  30.     {
  31.       // no disk cache folder found; default to profile directory
  32.       var dirSvc = Components.classes["@mozilla.org/file/directory_service;1"]
  33.         .getService(nsIProperties);
  34.       var ifile = dirSvc.get("ProfD", nsIFile);
  35.       path = ifile.QueryInterface(nsILocalFile);
  36.  
  37.       // now remember the new assumption
  38.       if (pref)
  39.         pref.setComplexValue(kCacheParentDirPref, nsILocalFile, path);
  40.     }
  41.     catch (ex)
  42.     {
  43.     }
  44.   }
  45.  
  46.   // if both pref and dir svc fail leave this field blank else show path
  47.   if (path)
  48.     document.getElementById("browserCacheDiskCacheFolder").value = 
  49.       path.path;
  50. }
  51.  
  52.  
  53. function prefCacheSelectFolder()
  54. {
  55.   var fp = Components.classes["@mozilla.org/filepicker;1"]
  56.                      .createInstance(nsIFilePicker);
  57.   var pref = Components.classes["@mozilla.org/preferences-service;1"]
  58.                      .getService(Components.interfaces.nsIPrefBranch);
  59.   var prefutilitiesBundle = document.getElementById("bundle_prefutilities");
  60.   var title = prefutilitiesBundle.getString("cachefolder");
  61.  
  62.   fp.init(window, title, nsIFilePicker.modeGetFolder);
  63.   try 
  64.   {
  65.     var initialDir = pref.getComplexValue(kCacheParentDirPref, nsILocalFile);
  66.     if (initialDir)
  67.       fp.displayDirectory = initialDir;
  68.   }
  69.   catch (ex)
  70.   {
  71.     // ignore exception: file picker will open at default location
  72.   }
  73.   fp.appendFilters(nsIFilePicker.filterAll);
  74.   var ret = fp.show();
  75.  
  76.   if (ret == nsIFilePicker.returnOK) {
  77.     var localFile = fp.file.QueryInterface(nsILocalFile);
  78.     var viewable = fp.file.path;
  79.     var folderField = document.getElementById("browserCacheDiskCacheFolder");
  80.     folderField.value = viewable;
  81.     pref.setComplexValue(kCacheParentDirPref, nsILocalFile, localFile)
  82.   }
  83. }
  84.  
  85. function prefClearCache(aType)
  86. {
  87.     var classID = Components.classes["@mozilla.org/network/cache-service;1"];
  88.     var cacheService = classID.getService(Components.interfaces.nsICacheService);
  89.     cacheService.evictEntries(aType);
  90. }
  91.  
  92. function prefClearDiskAndMemCache()
  93. {
  94.     prefClearCache(Components.interfaces.nsICache.STORE_ON_DISK);
  95.     prefClearCache(Components.interfaces.nsICache.STORE_IN_MEMORY);
  96. }
  97.