home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 May / Chip_2001-05_cd2.bin / ChipCD / browsery / netscape601_eng / psm.xpi / install.js
Text File  |  2001-02-02  |  5KB  |  174 lines

  1. // this function verifies disk space in kilobytes
  2. function verifyDiskSpace(dirPath, spaceRequired)
  3. {
  4.   var spaceAvailable;
  5.  
  6.   // Get the available disk space on the given path
  7.   spaceAvailable = fileGetDiskSpaceAvailable(dirPath);
  8.  
  9.   // Convert the available disk space into kilobytes
  10.   spaceAvailable = parseInt(spaceAvailable / 1024);
  11.  
  12.   // do the verification
  13.   if(spaceAvailable < spaceRequired)
  14.   {
  15.     logComment("Insufficient disk space: " + dirPath);
  16.     logComment("  required : " + spaceRequired + " K");
  17.     logComment("  available: " + spaceAvailable + " K");
  18.     return(false);
  19.   }
  20.  
  21.   return(true);
  22. }
  23.  
  24. function updateWinReg4Ren8dot3() 
  25. {
  26.   var fProgram      = getFolder("Program");
  27.   var fTemp         = getFolder("Temporary");
  28.  
  29.   //Notes:
  30.   // can't use a double backslash before subkey - Windows already puts it in.            
  31.   // subkeys have to exist before values can be put in.
  32.   var subkey;  // the name of the subkey you are poking around in
  33.   var valname; // the name of the value you want to look at
  34.   var value;   // the data in the value you want to look at.
  35.   var winreg = getWinRegistry() ;
  36.  
  37.   if(winreg != null) 
  38.   {
  39.     // Here, we get the current version.
  40.     winreg.setRootKey(winreg.HKEY_CURRENT_USER) ;  // CURRENT_USER
  41.     subkey  = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce" ;
  42.  
  43.     winreg.createKey(subkey,"");
  44.     valname = "ren8dot3";
  45.     value   = fProgram + "ren8dot3.exe " + fTemp + "ren8dot3.ini";
  46.     err     = winreg.setValueString(subkey, valname, value);
  47.   }
  48. }
  49.  
  50. function prepareRen8dot3(listLongFilePaths)
  51. {
  52.   var fTemp                 = getFolder("Temporary");
  53.   var fProgram              = getFolder("Program");
  54.   var fRen8dot3Ini          = getWinProfile(fTemp, "ren8dot3.ini");
  55.   var bIniCreated           = false;
  56.   var fLongFilePath;
  57.   var sShortFilePath;
  58.  
  59.   if(fRen8dot3Ini != null)
  60.   {
  61.     for(i = 0; i < listLongFilePaths.length; i++)
  62.     {
  63.       fLongFilePath   = getFolder(fProgram, listLongFilePaths[i]);
  64.       sShortFilePath  = File.windowsGetShortName(fLongFilePath);
  65.       if(sShortFilePath)
  66.       {
  67.         fRen8dot3Ini.writeString("rename", sShortFilePath, fLongFilePath);
  68.         bIniCreated = true;
  69.       }
  70.     }
  71.  
  72.     if(bIniCreated)
  73.       updateWinReg4Ren8dot3() ;
  74.   }
  75.  
  76.   return(0);
  77. }
  78.  
  79. function updateWindowsRegistry(psmPath)
  80. {
  81.   var winReg = getWinRegistry();
  82.   if(winReg != null)
  83.   {
  84.     winReg.setRootKey(winReg.HKEY_LOCAL_MACHINE);
  85.     subKey    = "SOFTWARE\\Netscape";
  86.     err       = winReg.createKey(subKey, "");
  87.  
  88.     subKey    = "SOFTWARE\\Netscape\\Personal Security Manager";
  89.     err       = winReg.createKey(subKey, "");
  90.  
  91.     subKey    = "SOFTWARE\\Netscape\\Personal Security Manager\\Main";
  92.     valueName = "Install Directory";
  93.     err       = winReg.createKey(subKey, "");
  94.     err       = winReg.setValueString(subKey, valueName, psmPath);
  95.   }
  96.   else
  97.   {
  98.     logComment("getWinRegsitry() failed: " + winReg);
  99.   }
  100. }
  101.  
  102. function getPSMFolder()
  103. {
  104.   var winReg = getWinRegistry();
  105.   if(winReg != null)
  106.   {
  107.     winReg.setRootKey(winReg.HKEY_LOCAL_MACHINE);
  108.     subKey    = "SOFTWARE\\Netscape\\Personal Security Manager\\Main";
  109.     valueName = "Install Directory";
  110.     fPSMstr   = winReg.getValueString(subKey, valueName);
  111.     if((fPSMstr == null) || (fPSMstr == ""))
  112.     {
  113.       subKey          = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion";
  114.       valueName       = "CommonFilesDir";
  115.       fCommonFilesDir = winReg.getValueString(subKey, valueName);
  116.       fPSMstr         = fCommonFilesDir + "\\Netscape Shared\\Security\\";
  117.     }
  118.  
  119.     fPSM = getFolder("file:///", fPSMstr);
  120.   }
  121.   else
  122.   {
  123.     logComment("getWinRegsitry() failed: " + winReg);
  124.   }
  125.  
  126.   return fPSM;
  127. }
  128.  
  129. // main
  130. var srDest;
  131. var err;
  132. var fPSM;
  133. //var agt;
  134. //var is_winnt;
  135.  
  136. srDest = 4449;
  137. err    = initInstall("Netscape Personal Security Manager", "/Netscape/Personal Security Manager", "6.0.1.2001013114"); 
  138. logComment("initInstall() returned: " + err);
  139.  
  140. //agt      = navigator.userAgent.toLowerCase(); 
  141. //is_winnt = ((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1));
  142. fPSM     = getPSMFolder();
  143.  
  144. if(verifyDiskSpace(fPSM, srDest))
  145. {
  146.   setPackageFolder(fPSM);
  147.   err  = addDirectory("/Netscape/Personal Security Manager/Program",
  148.                       "6.0.1.2001013114",
  149.                       "psm",                 // dir name in jar to extract 
  150.                       fPSM,                  // Where to put this file (Returned from getFolder) 
  151.                       "",                    // subdir name to create relative to communicatorFolder
  152.                       true );                // Force Flag 
  153.   logComment("addDirectory() returned: " + err);
  154.  
  155.   // check return value
  156.   if(!err)
  157.   {
  158.     updateWindowsRegistry(fPSM);
  159.  
  160. //    if(is_winnt == false)
  161. //    {
  162. //    }
  163.  
  164.     err = performInstall(); 
  165.     logComment("performInstall() returned: " + err);
  166.   }
  167.   else
  168.     cancelInstall(err);
  169. }
  170. else
  171.   cancelInstall(INSUFFICIENT_DISK_SPACE);
  172.  
  173. // end main
  174.