зеркало из https://github.com/mozilla/gecko-dev.git
Bug #373816 --> remove old xpinstall based installer files.
sr=bienvenu
This commit is contained in:
Родитель
602e1efc49
Коммит
92fad7dd3a
|
@ -1,6 +0,0 @@
|
|||
cd 7zstage
|
||||
7z a -t7z ..\7z\app.7z *.* -mx -m0=BCJ2 -m1=LZMA:d24 -m2=LZMA:d19 -m3=LZMA:d19 -mb0:1 -mb0s1:2 -mb0s2:3
|
||||
cd ..\7z
|
||||
upx --best 7zSD.sfx
|
||||
copy /b 7zSD.sfx+app.tag+app.7z SetupGeneric.exe
|
||||
cd ..
|
Двоичные данные
mail/installer/windows/Header.bmp
Двоичные данные
mail/installer/windows/Header.bmp
Двоичный файл не отображается.
До Ширина: | Высота: | Размер: 176 KiB |
|
@ -120,8 +120,6 @@ include $(topsrcdir)/toolkit/mozapps/installer/windows/nsis/makensis.mk
|
|||
export::
|
||||
ifndef MOZ_BRANDING_DIRECTORY
|
||||
$(NSINSTALL) -D $(DIST)/branding
|
||||
cp $(srcdir)/Header.bmp $(DIST)/branding/Header.bmp
|
||||
cp $(srcdir)/Watermrk.bmp $(DIST)/branding/Watermrk.bmp
|
||||
cp $(srcdir)/nsis/branding.nsi $(DIST)/branding/branding.nsi
|
||||
cp $(srcdir)/wizHeader.bmp $(DIST)/branding/wizHeader.bmp
|
||||
cp $(srcdir)/wizHeaderRTL.bmp $(DIST)/branding/wizHeaderRTL.bmp
|
||||
|
|
Двоичные данные
mail/installer/windows/Watermrk.bmp
Двоичные данные
mail/installer/windows/Watermrk.bmp
Двоичный файл не отображается.
До Ширина: | Высота: | Размер: 1.4 MiB |
|
@ -1,431 +0,0 @@
|
|||
#filter substitution
|
||||
|
||||
// main
|
||||
var srDest;
|
||||
var err;
|
||||
var fProgram;
|
||||
logComment("initInstall");
|
||||
|
||||
function registerProgramFolderKey(winreg, fFolderPath)
|
||||
{
|
||||
var subkey;
|
||||
var err;
|
||||
|
||||
/* set the Program Folder Path in the Mozilla key in the Windows Registry */
|
||||
winreg.createKey("SOFTWARE\\$CompanyName$","");
|
||||
|
||||
subkey = "SOFTWARE\\$CompanyName$\\$ProductName$";
|
||||
winreg.createKey(subkey,"");
|
||||
err = winreg.setValueString(subkey, "CurrentVersion", "$UserAgent$");
|
||||
|
||||
subkey = "SOFTWARE\\$CompanyName$\\$ProductName$\\$UserAgent$";
|
||||
winreg.createKey(subkey,"");
|
||||
|
||||
subkey = "SOFTWARE\\$CompanyName$\\$ProductName$\\$UserAgent$\\Main";
|
||||
winreg.createKey(subkey,"");
|
||||
err = winreg.setValueString(subkey, "Program Folder Path", fFolderPath);
|
||||
}
|
||||
|
||||
function createShortcuts()
|
||||
{
|
||||
var subkey;
|
||||
var valname;
|
||||
var szStartMenuPrograms;
|
||||
var szStartMenu;
|
||||
var szFolderDesktop;
|
||||
var szFolderQuickLaunch;
|
||||
var szFolderSendTo;
|
||||
var szFolderAppData;
|
||||
var szStartupFolder;
|
||||
var winreg;
|
||||
var fWindows;
|
||||
var fTemp;
|
||||
var fProgram;
|
||||
var fDefShortcuts;
|
||||
var fileExe;
|
||||
var fileReadme;
|
||||
var fileLicense;
|
||||
var scExeDesc;
|
||||
var scReadmeDesc;
|
||||
var scLicenseDesc;
|
||||
var scProfileDesc;
|
||||
var scProfileDescParam;
|
||||
var scFolderName;
|
||||
var fFolderDesktop;
|
||||
var fFolderPath;
|
||||
var fFolderPathStr;
|
||||
var fFolderQuickLaunch;
|
||||
var is_winnt;
|
||||
var szCurrentVersion;
|
||||
var folderQuickLaunchExists;
|
||||
|
||||
winreg = getWinRegistry();
|
||||
fWindows = getFolder("Windows");
|
||||
fProgram = getFolder("Program");
|
||||
fDefShortcuts = getFolder("Program","defaults/shortcuts");
|
||||
fTemp = fProgram + "$MainExeFile$";
|
||||
fileExe = getFolder("file:///", fTemp);
|
||||
fileReadme = getFolder("file:///", fProgram + "readme.txt");
|
||||
fileLicense = getFolder("file:///", fProgram + "license.txt");
|
||||
scExeDesc = "$ProductName$";
|
||||
scReadmeDesc = "Readme";
|
||||
scLicenseDesc = "License";
|
||||
scProfileDesc = "Profile Manager";
|
||||
scProfileDescParam = "-ProfileManager";
|
||||
scSafeModeDesc = "$ProductName$ (No Extensions)";
|
||||
scSafeModeDescParam = "-safe-mode";
|
||||
scFolderName = "$ProductName$";
|
||||
|
||||
fileMailIcon = getFolder("Chrome", "icons/default/messengerWindow.ico");
|
||||
|
||||
if(winreg != null)
|
||||
{
|
||||
/* determine if the script is running under NT or not */
|
||||
winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
|
||||
subkey = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion";
|
||||
szCurrentVersion = winreg.getValueString(subkey, "CurrentVersion");
|
||||
logComment("szCurrentVersion: " + szCurrentVersion);
|
||||
if((szCurrentVersion == "") || (szCurrentVersion == null))
|
||||
{
|
||||
is_winnt = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
is_winnt = true;
|
||||
}
|
||||
|
||||
logComment("is_winnt value: " + is_winnt);
|
||||
logComment("restrictedAccess value: " + restrictedAccess);
|
||||
if(!is_winnt || restrictedAccess)
|
||||
{
|
||||
winreg.setRootKey(winreg.HKEY_CURRENT_USER);
|
||||
subkey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders";
|
||||
szStartMenuPrograms = winreg.getValueString(subkey, "Programs");
|
||||
szStartMenu = winreg.getValueString(subkey, "Start Menu");
|
||||
szFolderDesktop = winreg.getValueString(subkey, "Desktop");
|
||||
szStartupFolder = winreg.getValueString(subkey, "Startup");
|
||||
}
|
||||
else
|
||||
{
|
||||
winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
|
||||
subkey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders";
|
||||
szStartMenuPrograms = winreg.getValueString(subkey, "Common Programs");
|
||||
szStartMenu = winreg.getValueString(subkey, "Common Start Menu");
|
||||
szFolderDesktop = winreg.getValueString(subkey, "Common Desktop");
|
||||
szStartupFolder = winreg.getValueString(subkey, "Common Startup");
|
||||
}
|
||||
|
||||
winreg.setRootKey(winreg.HKEY_CURRENT_USER);
|
||||
subkey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders";
|
||||
szFolderSendTo = winreg.getValueString(subkey, "SendTo");
|
||||
|
||||
subkey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders";
|
||||
szFolderAppData = winreg.getValueString(subkey, "AppData");
|
||||
|
||||
// locate the Quick Launch folder
|
||||
szFolderQuickLaunch = szFolderAppData + "\\Microsoft\\Internet Explorer\\Quick Launch";
|
||||
fFolderQuickLaunch = getFolder("file:///", szFolderQuickLaunch);
|
||||
folderQuickLaunchExists = File.isDirectory(fFolderQuickLaunch);
|
||||
if(!folderQuickLaunchExists)
|
||||
{
|
||||
subkey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\GrpConv\\MapGroups";
|
||||
szFolderQuickLaunch = winreg.getValueString(subkey, "Quick Launch");
|
||||
folderQuickLaunchExists = File.isDirectory(fFolderPath);
|
||||
if(folderQuickLaunchExists)
|
||||
fFolderQuickLaunch = getFolder("file:///", szFolderQuickLaunch);
|
||||
}
|
||||
logComment("folderQuickLaunchExists: " + folderQuickLaunchExists);
|
||||
|
||||
subkey = "SOFTWARE\\$CompanyName$\\$ProductName$\\$UserAgent$\\Main";
|
||||
fFolderPathStr = winreg.getValueString(subkey, "Program Folder Path");
|
||||
if((fFolderPathStr == "") || (fFolderPathStr == null))
|
||||
{
|
||||
fTemp = szStartMenuPrograms + "\\" + scFolderName;
|
||||
fFolderPath = getFolder("file:///", fTemp);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* convert the path string to a path folder object */
|
||||
fFolderPath = getFolder("file:///", fFolderPathStr);
|
||||
}
|
||||
/* convert the path string to a path folder object */
|
||||
fFolderDesktop = getFolder("file:///", szFolderDesktop);
|
||||
|
||||
logComment("Folder StartMenuPrograms: " + szStartMenuPrograms);
|
||||
logComment("Folder StartMenu : " + szStartMenu);
|
||||
logComment("Folder FolderDesktop : " + szFolderDesktop);
|
||||
logComment("Folder FolderSendTo : " + szFolderSendTo);
|
||||
logComment("Folder FolderQuickLaunch: " + szFolderQuickLaunch);
|
||||
logComment("fileExe : " + fileExe);
|
||||
logComment("fFolderPath : " + fFolderPath);
|
||||
logComment("scExeDesc : " + scExeDesc);
|
||||
logComment("fProgram : " + fProgram);
|
||||
|
||||
/* explicitly create the fFolderPath even though the windowsShortcut function creates the folder.
|
||||
* This is so that the folder creation gets logged for uninstall to remove it. */
|
||||
if(winreg.getValueNumber(subkey, "Create Start Menu Shortcut") != 0 && !File.exists(fFolderPath))
|
||||
File.dirCreate(fFolderPath);
|
||||
if(winreg.getValueNumber(subkey, "Create Start Menu Shortcut") != 0 && !File.exists(fDefShortcuts))
|
||||
File.dirCreate(fDefShortcuts);
|
||||
|
||||
/* create the shortcuts */
|
||||
// Create the Shortcuts
|
||||
winreg.setRootKey(winreg.HKEY_CURRENT_USER);
|
||||
subkey = "SOFTWARE\\$CompanyName$\\$ProductName$\\$UserAgent$\\Main";
|
||||
if (winreg.getValueNumber(subkey, "Create Desktop Shortcut") != 0)
|
||||
File.windowsShortcut(fileExe, fFolderDesktop, scExeDesc, fProgram, "", fileExe, 0);
|
||||
|
||||
if (winreg.getValueNumber(subkey, "Create Start Menu Shortcut") != 0) {
|
||||
File.windowsShortcut(fileExe, fFolderPath, scExeDesc, fProgram, "", fileExe, 0);
|
||||
File.windowsShortcut(fileExe, fFolderPath, scProfileDesc, fProgram, scProfileDescParam, fileExe, 0);
|
||||
File.windowsShortcut(fileExe, fFolderPath, scSafeModeDesc, fProgram, scSafeModeDescParam, fileExe, 0);
|
||||
File.windowsShortcut(fileReadme, fFolderPath, scReadmeDesc, fProgram, "", fileReadme, 0);
|
||||
File.windowsShortcut(fileLicense, fFolderPath, scLicenseDesc, fProgram, "", fileLicense, 0);
|
||||
}
|
||||
File.windowsShortcut(fileExe, fDefShortcuts, scExeDesc, fProgram, "", fileExe, 0);
|
||||
File.windowsShortcut(fileExe, fDefShortcuts, scSafeModeDesc, fProgram, scSafeModeDescParam, fileExe, 0);
|
||||
|
||||
// create shortcut in the Quick Launch folder
|
||||
if (winreg.getValueNumber(subkey, "Create Quick Launch Shortcut") != 0 && folderQuickLaunchExists)
|
||||
File.windowsShortcut(fileExe, fFolderQuickLaunch, scExeDesc, fProgram, "", fileExe, 0);
|
||||
|
||||
// Clean up after ourselves
|
||||
winreg.deleteValue(subkey, "Create Desktop Shortcut");
|
||||
winreg.deleteValue(subkey, "Create Quick Launch Shortcut");
|
||||
winreg.deleteValue(subkey, "Create Start Menu Shortcut");
|
||||
|
||||
if(!restrictedAccess)
|
||||
{
|
||||
winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
|
||||
registerProgramFolderKey(winreg, fFolderPath);
|
||||
}
|
||||
|
||||
winreg.setRootKey(winreg.HKEY_CURRENT_USER);
|
||||
registerProgramFolderKey(winreg, fFolderPath);
|
||||
|
||||
// Register as a windows XP mail application
|
||||
if( IsWinnt() )
|
||||
{
|
||||
subkey = "Software\\Clients\\Mail\\$ProductNameInternal$";
|
||||
winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
|
||||
|
||||
winreg.createKey(subkey,"");
|
||||
winreg.createKey(subkey + "\\DefaultIcon", "");
|
||||
winreg.createKey(subkey + "\\shell", "");
|
||||
winreg.createKey(subkey + "\\shell\\open", "");
|
||||
winreg.createKey(subkey + "\\shell\\open\\command", "");
|
||||
winreg.createKey(subkey + "\\InstallInfo","");
|
||||
|
||||
winreg.setValueString(subkey, "", "$ProductName$");
|
||||
|
||||
// path does not need to be quoted per MS doc
|
||||
data = fProgram + "chrome\\icons\\default\\messengerWindow.ico,0";
|
||||
winreg.setValueString(subkey + "\\DefaultIcon", "", data);
|
||||
|
||||
data = "\"" + fProgram + "$MainExeFile$\"";
|
||||
winreg.setValueString(subkey + "\\shell\\open\\command", "", data);
|
||||
|
||||
data = "\"" + fProgram + "uninstall\\uninstall.exe\" /ua \"$UserAgent$\" /hs";
|
||||
winreg.setValueString(subkey + "\\InstallInfo", "HideIconsCommand", data);
|
||||
|
||||
// set this value to 0 because we're not creating the mail shortcuts yet.
|
||||
winreg.setValueNumber(subkey + "\\InstallInfo", "IconsVisible", 0);
|
||||
|
||||
data = "\"" + fProgram + "$MainExeFile$\" -silent -nosplash -setDefaultMail";
|
||||
winreg.setValueString(subkey + "\\InstallInfo", "ReinstallCommand", data);
|
||||
|
||||
data = "\"" + fProgram + "uninstall\\uninstall.exe\" /ua \"$UserAgent$\" /ss mail";
|
||||
winreg.setValueString(subkey + "\\InstallInfo", "ShowIconsCommand", data);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
logComment("winreg is null");
|
||||
}
|
||||
}
|
||||
|
||||
function IsWinnt()
|
||||
{
|
||||
/* Determines if the script is running under NT or not.
|
||||
*
|
||||
*/
|
||||
var winreg = getWinRegistry();
|
||||
var subkey;
|
||||
var szCurrentVersion;
|
||||
|
||||
winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
|
||||
subkey = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion";
|
||||
szCurrentVersion = winreg.getValueString(subkey, "CurrentVersion");
|
||||
logComment("szCurrentVersion: " + szCurrentVersion);
|
||||
return szCurrentVersion != "";
|
||||
}
|
||||
|
||||
function registerMainKeys(winreg)
|
||||
{
|
||||
var subkey; //the name of the subkey you are poking around in
|
||||
var data;
|
||||
var err;
|
||||
|
||||
winreg.createKey("SOFTWARE\\$CompanyName$","");
|
||||
|
||||
subkey = "SOFTWARE\\$CompanyName$\\$ProductName$";
|
||||
winreg.createKey(subkey,"");
|
||||
err = winreg.setValueString(subkey, "CurrentVersion", "$UserAgent$");
|
||||
|
||||
subkey = "SOFTWARE\\$CompanyName$\\$ProductName$\\$UserAgent$";
|
||||
winreg.createKey(subkey,"");
|
||||
|
||||
subkey = "SOFTWARE\\$CompanyName$\\$ProductName$\\$UserAgent$\\Main";
|
||||
winreg.createKey(subkey,"");
|
||||
|
||||
err = winreg.setValueString(subkey, "Install Directory", fProgram);
|
||||
|
||||
// now set Mozilla\Mozilla Thunderbird\bin\PathToExe so 3rd party vendors can find our app
|
||||
subkey = "SOFTWARE\\Mozilla\\$ProductName$ $UserAgentShort$\\bin";
|
||||
winreg.createKey(subkey,"");
|
||||
err = winreg.setValueString(subkey, "PathToExe", fProgram + "$MainExeFile$");
|
||||
|
||||
subkey = "SOFTWARE\\$CompanyName$\\$ProductName$\\$UserAgent$\\Main";
|
||||
err = winreg.setValueString(subkey, "PathToExe", fProgram + "$MainExeFile$");
|
||||
}
|
||||
|
||||
function updateWinReg()
|
||||
{
|
||||
//Notes:
|
||||
// can't use a double backslash before subkey - Windows already puts it in.
|
||||
// subkeys have to exist before values can be put in.
|
||||
var winreg = getWinRegistry();
|
||||
var subkey; //the name of the subkey you are poking around in
|
||||
var err;
|
||||
var ikwDefined;
|
||||
|
||||
if(winreg != null)
|
||||
{
|
||||
/* This will check to see if the user has restricted access or not.
|
||||
* It checks to see if HKEY_LOCALMACHINE\SOFTWARE is writable. If
|
||||
* it is, then access is not restricted. This is only used to
|
||||
* determine which Desktop, Programs, and Start Menu folders
|
||||
* are to used: common or per user
|
||||
*/
|
||||
restrictedAccess = false;
|
||||
ikwDefined = typeof(winreg.isKeyWritable);
|
||||
logComment("winreg.isKeyWritable(): " + ikwDefined);
|
||||
if(ikwDefined == "function")
|
||||
{
|
||||
winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
|
||||
if(!winreg.isKeyWritable("SOFTWARE"))
|
||||
restrictedAccess = true;
|
||||
}
|
||||
|
||||
logComment("restrictedAccess value: " + restrictedAccess);
|
||||
if(!restrictedAccess)
|
||||
{
|
||||
winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
|
||||
registerMainKeys(winreg);
|
||||
|
||||
// set the App Paths key here
|
||||
subkey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\$MainExeFile$";
|
||||
winreg.createKey(subkey,"");
|
||||
err = winreg.setValueString(subkey, "", fProgram + "$MainExeFile$");
|
||||
err = winreg.setValueString(subkey, "Path", fProgram);
|
||||
}
|
||||
|
||||
winreg.setRootKey(winreg.HKEY_CURRENT_USER);
|
||||
registerMainKeys(winreg);
|
||||
}
|
||||
}
|
||||
|
||||
function upgradeCleanup()
|
||||
{
|
||||
// Now clean up Uninstall entries that may be laying around in the
|
||||
// registry for older versions of the software that we're overwriting/
|
||||
// upgrading...
|
||||
var wr = getWinRegistry();
|
||||
wr.setRootKey(wr.HKEY_LOCAL_MACHINE);
|
||||
var i = 0;
|
||||
const uninstallKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall";
|
||||
do {
|
||||
var key = wr.enumKeys(uninstallKey, i++);
|
||||
if (!key)
|
||||
break;
|
||||
key = uninstallKey + "\\" + key;
|
||||
|
||||
// For us to remove the entry from the ARP uninstall list, the install
|
||||
// folder paths must *match* and the display version strings must *NOT
|
||||
// MATCH* - i.e. we don't want to remove the entry we just created for
|
||||
// this version.
|
||||
var itemInstallFolder = wr.getValueString(key, "InstallLocation");
|
||||
var thisInstallFolder = wr.getValueString("SOFTWARE\\$CompanyName$\\$ProductName$\\$UserAgent$\\Main",
|
||||
"Install Directory");
|
||||
var itemInstallFolderShortName = File.windowsGetShortName(getFolder("file:///", itemInstallFolder));
|
||||
var thisInstallFolderShortName = File.windowsGetShortName(getFolder("file:///", thisInstallFolder));
|
||||
|
||||
var itemDisplayVersion = wr.getValueString(key, "DisplayVersion");
|
||||
var thisDisplayVersion = "$UserAgent$";
|
||||
|
||||
// It is possible that a user might have installed several products into
|
||||
// the same directory that have the same "DisplayVersion" (e.g. "1.0")...
|
||||
// in this case we don't want to trash the Uninstall info for the others
|
||||
// so we have to be sure to make sure Comment matches... we use Comment
|
||||
// instead of DisplayName since DisplayName varies from version to version
|
||||
// as it contains the version number, and this instance of javascript is
|
||||
// crippled so as not to contain any useful string parsing.
|
||||
var itemComment = wr.getValueString(key, "Comment");
|
||||
var thisComment = "$ProductName$";
|
||||
|
||||
if ((itemComment == thisComment || itemComment == "Reclaim Your Inbox.") &&
|
||||
itemInstallFolderShortName == thisInstallFolderShortName &&
|
||||
thisDisplayVersion != itemDisplayVersion &&
|
||||
wr.isKeyWritable(key)) {
|
||||
wr.deleteKey(key);
|
||||
logComment("Removing obsolete uninstall key with upgrade: " + key);
|
||||
}
|
||||
}
|
||||
while (true);
|
||||
}
|
||||
|
||||
// end
|
||||
// end - OS type detection
|
||||
|
||||
srDest = $SpaceRequired$:bin;
|
||||
err = initInstall("@AB_CD@ Langpack", "@AB_CD@", "$Version$");
|
||||
logComment("initInstall: " + err);
|
||||
|
||||
fProgram = getFolder("Program");
|
||||
logComment("fProgram: " + fProgram);
|
||||
|
||||
if(verifyDiskSpace(fProgram, srDest))
|
||||
{
|
||||
var chromeType = LOCALE;
|
||||
err = addDirectory("",
|
||||
"bin", // dir name in jar to extract
|
||||
fProgram, // Where to put this file (Returned from GetFolder)
|
||||
""); // Force Flag
|
||||
logComment("addDirectory() returned: " + err);
|
||||
|
||||
setPackageFolder(fProgram);
|
||||
|
||||
upgradeCleanup();
|
||||
|
||||
registerChrome(LOCALE | DELAYED_CHROME, getFolder("Chrome", "@AB_CD@.jar"), "locale/@AB_CD@/editor/");
|
||||
registerChrome(LOCALE | DELAYED_CHROME, getFolder("Chrome", "@AB_CD@.jar"), "locale/@AB_CD@/wallet/");
|
||||
|
||||
// check return value
|
||||
if (err == SUCCESS)
|
||||
{
|
||||
updateWinReg(); // Finish registering above marshalling dll's
|
||||
createShortcuts();
|
||||
|
||||
err = performInstall();
|
||||
logComment("performInstall() returned: " + err);
|
||||
}
|
||||
else
|
||||
{
|
||||
cancelInstall(err);
|
||||
logComment("cancelInstall due to error: " + err);
|
||||
}
|
||||
}
|
||||
else
|
||||
cancelInstall(INSUFFICIENT_DISK_SPACE);
|
||||
|
||||
// end main
|
|
@ -1,40 +0,0 @@
|
|||
var err = initInstall("Developer Tools", "Developer Tools", "$Version$");
|
||||
logComment("initInstall: " + err);
|
||||
|
||||
// JavaScript Debugger
|
||||
// addFile("Venkman Service",
|
||||
// "bin/components/venkman-service.js",
|
||||
// getFolder("Components"),
|
||||
// "");
|
||||
|
||||
// addFile("Venkman Chrome",
|
||||
// "bin/chrome/venkman.jar", // jar source folder
|
||||
// getFolder("Chrome"), // target folder
|
||||
// ""); // target subdir
|
||||
|
||||
// registerChrome(PACKAGE | DELAYED_CHROME, getFolder("Chrome","venkman.jar"), "content/venkman/");
|
||||
// registerChrome(SKIN | DELAYED_CHROME, getFolder("Chrome","venkman.jar"), "skin/modern/venkman/");
|
||||
// registerChrome(LOCALE | DELAYED_CHROME, getFolder("Chrome","venkman.jar"), "locale/en-US/venkman/");
|
||||
|
||||
// DOM Inspector
|
||||
var fProgram = getFolder("Program");
|
||||
logComment("fProgram: " + fProgram);
|
||||
|
||||
err = addDirectory("", "$Version$", "bin", fProgram, "", true);
|
||||
logComment("addDirectory: " + err);
|
||||
|
||||
addFile("Inspector Command Line Handler",
|
||||
"bin/components/inspector-cmdline.js",
|
||||
getFolder("Components"),
|
||||
"");
|
||||
|
||||
var jarFolder = getFolder("Chrome", "inspector.jar");
|
||||
registerChrome(PACKAGE | DELAYED_CHROME, jarFolder, "content/inspector/");
|
||||
registerChrome(SKIN | DELAYED_CHROME, jarFolder, "skin/classic/inspector/");
|
||||
registerChrome(LOCALE | DELAYED_CHROME, jarFolder, "locale/en-US/inspector/");
|
||||
|
||||
err = getLastError();
|
||||
if (err==SUCCESS)
|
||||
performInstall();
|
||||
else
|
||||
cancelInstall(err);
|
|
@ -1,3 +0,0 @@
|
|||
#filter substitution
|
||||
AB_CD=@AB_CD@
|
||||
LANGPACK_TITLE=Language Pack
|
|
@ -1,15 +0,0 @@
|
|||
#filter substitution
|
||||
VersionLanguage = @AB_CD@
|
||||
NameCompany = Mozilla
|
||||
NameProduct = Mozilla Thunderbird
|
||||
NameProductInternal = Mozilla Thunderbird
|
||||
ShortNameProduct = Thunderbird
|
||||
VersionProduct = @MOZ_APP_VERSION@
|
||||
DistSubdir = bin
|
||||
FileInstallerEXE = @PKG_BASENAME@.installer.exe
|
||||
FileInstallerMSI = @PKG_BASENAME@.installer.msi
|
||||
FileMainEXE = thunderbird.exe
|
||||
FileInstallerNETRoot = @PKG_BASENAME@.net-installer
|
||||
ComponentList = xpcom,mail,talkback,@AB_CD@,newsblog
|
||||
LicenseFile = mail/LICENSE.txt
|
||||
7ZipSFXModule = other-licenses/7zstub/thunderbird/7zSD.sfx
|
|
@ -1,335 +0,0 @@
|
|||
function updateMapi()
|
||||
{
|
||||
var winreg;
|
||||
var szValue;
|
||||
var szMapiBackupDll;
|
||||
var szDefaultMailClient;
|
||||
var programMozMapi32File;
|
||||
var mainExePath;
|
||||
var sfpProgramMozMapi32File;
|
||||
var sfpMainExePath;
|
||||
var winsysMapi32File;
|
||||
var mapiProxyFile;
|
||||
var subkey;
|
||||
var oldVersionIsDefautClient = false;
|
||||
|
||||
var mailDefaultDescription = "$ProductName$";
|
||||
|
||||
winreg = getWinRegistry();
|
||||
if(winreg != null)
|
||||
{
|
||||
mainExePath = getFolder("Program", "$MainExeFile$");
|
||||
programMozMapi32File = getFolder("Program", "mozMapi32.dll");
|
||||
winsysMapi32File = getFolder("Win System", "Mapi32.dll");
|
||||
winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
|
||||
|
||||
// If Mapi_backup_dll *and* the default var of
|
||||
// HKEY_LOCAL_MACHINE\Software\Clients\Mail is set, then install
|
||||
// mozMapi32.dll to the windows system dir as Mapi32.dll.
|
||||
szMapiBackupDll = winreg.getValueString("SOFTWARE\\Mozilla\\Desktop", "Mapi_backup_dll");
|
||||
szDefaultMailClient = winreg.getValueString("SOFTWARE\\Clients\\Mail", "");
|
||||
logComment("szMapiBackupDll: " + szMapiBackupDll);
|
||||
logComment("szDefaultMailClient: " + szDefaultMailClient);
|
||||
if((szMapiBackupDll != null) && (szMapiBackupDll != "") &&
|
||||
(szDefaultMailClient != null) && (szDefaultMailClient == "$ProductName$"))
|
||||
{
|
||||
// We do not want to log this file to be uninstalled because the
|
||||
// uninstaller already has a special way to deal with restoring the
|
||||
// appropriate previous Mapi32.dll.
|
||||
addFile("",
|
||||
"$Version$",
|
||||
"bin/mozMapi32.dll", // file name in jar to extract
|
||||
getFolder("Win System"), // Where to put this file (Returned from getFolder)
|
||||
"Mapi32.dll", // new name when installed
|
||||
DO_NOT_UNINSTALL);
|
||||
}
|
||||
|
||||
sfpProgramMozMapi32File = File.windowsGetShortName(programMozMapi32File);
|
||||
sfpMainExePath = File.windowsGetShortName(mainExePath);
|
||||
|
||||
subkey = "SOFTWARE\\Clients\\Mail\\$ProductName$";
|
||||
winreg.createKey(subkey, "");
|
||||
winreg.setValueString(subkey, "", mailDefaultDescription);
|
||||
winreg.setValueString(subkey, "DLLPath", sfpProgramMozMapi32File);
|
||||
|
||||
winreg.createKey(subkey + "\\DefaultIcon", "");
|
||||
winreg.setValueString(subkey + "\\DefaultIcon", "", sfpMainExePath + ",0");
|
||||
|
||||
// Register mailto protocol handler
|
||||
|
||||
winreg.createKey(subkey + "\\protocols", "");
|
||||
winreg.createKey(subkey + "\\protocols\\mailto", "");
|
||||
winreg.setValueString(subkey + "\\protocols\\mailto", "", "URL:MailTo Protocol");
|
||||
winreg.setValueString(subkey + "\\protocols\\mailto", "URL Protocol", "");
|
||||
winreg.createKey(subkey + "\\protocols\\mailto\\shell", "");
|
||||
winreg.createKey(subkey + "\\protocols\\mailto\\shell\\open", "");
|
||||
winreg.createKey(subkey + "\\protocols\\mailto\\shell\\open\\command", "");
|
||||
winreg.setValueString(subkey + "\\protocols\\mailto\\shell\\open\\command", "", sfpMainExePath + " -compose \"%1\"");
|
||||
winreg.createKey(subkey + "\\protocols\\mailto\\DefaultIcon", "");
|
||||
winreg.setValueString(subkey + "\\protocols\\mailto\\DefaultIcon", sfpMainExePath + ",0");
|
||||
|
||||
// register shell open command for Mozilla Thunderbird product key under \Mail
|
||||
winreg.createKey(subkey + "\\shell", "");
|
||||
winreg.createKey(subkey + "\\shell\\open", "");
|
||||
winreg.createKey(subkey + "\\shell\\open\\command", "");
|
||||
winreg.setValueString(subkey + "\\shell\\open\\command", "", sfpMainExePath);
|
||||
|
||||
winreg.createKey(subkey + "\\shell\\properties", "");
|
||||
winreg.setValueString(subkey + "\\shell\\properties", "", "Thunderbird &Options");
|
||||
winreg.createKey(subkey + "\\shell\\properties\\command", "");
|
||||
winreg.setValueString(subkey + "\\shell\\properties\\command", "", sfpMainExePath + " -options");
|
||||
|
||||
// Register Thunderbird as a News Reader
|
||||
subkey = "SOFTWARE\\Clients\\News\\$ProductName$";
|
||||
winreg.createKey(subkey, "");
|
||||
winreg.setValueString(subkey, "", mailDefaultDescription);
|
||||
winreg.setValueString(subkey, "DLLPath", sfpProgramMozMapi32File);
|
||||
|
||||
winreg.createKey(subkey + "\\DefaultIcon", "");
|
||||
winreg.setValueString(subkey + "\\DefaultIcon", "", sfpMainExePath + ",0");
|
||||
|
||||
// register shell open command for Mozilla Thunderbird product key under \News
|
||||
winreg.createKey(subkey + "\\shell", "");
|
||||
winreg.createKey(subkey + "\\shell\\open", "");
|
||||
winreg.createKey(subkey + "\\shell\\open\\command", "");
|
||||
winreg.setValueString(subkey + "\\shell\\open\\command", "", sfpMainExePath);
|
||||
|
||||
// Register News protocol handlers (news, snews, nntp)
|
||||
winreg.createKey(subkey + "\\protocols", "");
|
||||
winreg.createKey(subkey + "\\protocols\\news", "");
|
||||
winreg.setValueString(subkey + "\\protocols\\news", "", "URL:News Protocol");
|
||||
winreg.setValueString(subkey + "\\protocols\\news", "URL Protocol", "");
|
||||
winreg.createKey(subkey + "\\protocols\\news\\shell", "");
|
||||
winreg.createKey(subkey + "\\protocols\\news\\shell\\open", "");
|
||||
winreg.createKey(subkey + "\\protocols\\news\\shell\\open\\command", "");
|
||||
winreg.setValueString(subkey + "\\protocols\\news\\shell\\open\\command", "", sfpMainExePath + " -mail \"%1\"");
|
||||
winreg.createKey(subkey + "\\protocols\\news\\DefaultIcon", "");
|
||||
winreg.setValueString(subkey + "\\protocols\\news\\DefaultIcon", sfpMainExePath + ",0");
|
||||
|
||||
winreg.createKey(subkey + "\\protocols\\nntp", "");
|
||||
winreg.setValueString(subkey + "\\protocols\\nntp", "", "URL:NNTP Protocol");
|
||||
winreg.setValueString(subkey + "\\protocols\\nntp", "URL Protocol", "");
|
||||
winreg.createKey(subkey + "\\protocols\\nntp\\shell", "");
|
||||
winreg.createKey(subkey + "\\protocols\\nntp\\shell\\open", "");
|
||||
winreg.createKey(subkey + "\\protocols\\nntp\\shell\\open\\command", "");
|
||||
winreg.setValueString(subkey + "\\protocols\\nntp\\shell\\open\\command", "", sfpMainExePath + " -mail \"%1\"");
|
||||
winreg.createKey(subkey + "\\protocols\\nntp\\DefaultIcon", "");
|
||||
winreg.setValueString(subkey + "\\protocols\\nntp\\DefaultIcon", sfpMainExePath + ",0");
|
||||
|
||||
winreg.createKey(subkey + "\\protocols\\snews", "");
|
||||
winreg.setValueString(subkey + "\\protocols\\snews", "", "URL:Snews Protocol");
|
||||
winreg.setValueString(subkey + "\\protocols\\snews", "URL Protocol", "");
|
||||
winreg.createKey(subkey + "\\protocols\\snews\\shell", "");
|
||||
winreg.createKey(subkey + "\\protocols\\snews\\shell\\open", "");
|
||||
winreg.createKey(subkey + "\\protocols\\snews\\shell\\open\\command", "");
|
||||
winreg.setValueString(subkey + "\\protocols\\snews\\shell\\open\\command", "", sfpMainExePath + " -mail \"%1\"");
|
||||
winreg.createKey(subkey + "\\protocols\\snews\\DefaultIcon", "");
|
||||
winreg.setValueString(subkey + "\\protocols\\snews\\DefaultIcon", sfpMainExePath + ",0");
|
||||
|
||||
subkey = "SOFTWARE\\$ProductName$\\Desktop";
|
||||
szCurrentVersion = winreg.getValueString(subkey, "CurrentVersion");
|
||||
logComment("szCurrentVersion: " + szCurrentVersion);
|
||||
|
||||
// Register MapiProxy.dll
|
||||
mapiProxyFile = getFolder("Program", "MapiProxy.dll");
|
||||
err = File.windowsRegisterServer(mapiProxyFile);
|
||||
logComment("File.windowsRegisterServer(" + mapiProxyFile + ") returned: " + err);
|
||||
|
||||
// Ok, we've registered ourselves as a Mail and News client. We've registered all of the protocols we support.
|
||||
// If the user was using Thunderbird as their default client but had Thunderbird installed in a different directory
|
||||
// than what the installer is installing into, then we end up with the wrong version of Thunderbird as the default app.
|
||||
// to work around this, we are going to test what the current default mail app is. If it contains Thunderbird and it is not
|
||||
// pointing to us, then write into the registry the values necessary for Thunderbird to re-ask the user about being the default
|
||||
// mail app the next time the newly installed version comes up. This case happens a lot because we've had so many releases without
|
||||
// an installer that everyone has ended up installing bits into their own locations.
|
||||
if (szDefaultMailClient == "$ProductName$")
|
||||
{
|
||||
// check to see if the location of the default mail protocol handler matches the location we just wrote to...
|
||||
// if it does not, then
|
||||
var szNewMailtoProtocolHandler = sfpMainExePath + " -compose \"%1\"";
|
||||
var szOldMailtoProtocolHandler = winreg.getValueString("Software\\Classes\\mailto\\shell\\open\\command", "");
|
||||
|
||||
if ((szOldMailtoProtocolHandler != null) && (szNewMailtoProtocolHandler != szOldMailtoProtocolHandler))
|
||||
oldVersionIsDefautClient = true;
|
||||
logComment("oldVersionIsDefautClient: " + oldVersionIsDefautClient);
|
||||
}
|
||||
|
||||
// now that we have registred ourselves as a mail and news client, make some notations in our scratch pad
|
||||
// so the client doesn't try to re-register the same keys all over again.
|
||||
subkey = "SOFTWARE\\$ProductName$";
|
||||
winreg.createKey(subkey, "");
|
||||
winreg.createKey(subkey + "\\Desktop", "");
|
||||
winreg.setValueString(subkey + "\\Desktop", "registeredAsMailApp", "1");
|
||||
winreg.setValueString(subkey + "\\Desktop", "registeredAsNewsApp", "1");
|
||||
|
||||
if (oldVersionIsDefautClient)
|
||||
{
|
||||
// ok here's a scenario where a different version of thunderbird is the default mail client in a different directory
|
||||
// from where the installer is putting it. So clear out our scratchpad registry entries to make Thunderbird ask the user
|
||||
// if it should be the default client again.
|
||||
logComment("Resetting showMapiDialog and defaultMailHasBeenSet");
|
||||
winreg.setValueString(subkey + "\\Desktop", "showMapiDialog", "1");
|
||||
winreg.setValueString(subkey + "\\Desktop", "defaultMailHasBeenSet", "0");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function updateWinIni()
|
||||
{
|
||||
var fWinIni = getWinProfile(getFolder("Windows"), "win.ini");
|
||||
if(fWinIni != null)
|
||||
{
|
||||
fWinIni.writeString("Mail", "MAPI", "1");
|
||||
fWinIni.writeString("Mail", "MAPIX", "1");
|
||||
}
|
||||
}
|
||||
|
||||
// main
|
||||
var srDest;
|
||||
var err;
|
||||
var err2;
|
||||
var fProgram;
|
||||
var fWindowsSystem;
|
||||
var fileComponentRegStr;
|
||||
var fileComponentReg;
|
||||
var restrictedAccess;
|
||||
var fileToRegister;
|
||||
var args;
|
||||
|
||||
args = new String(Install.arguments);
|
||||
logComment("args: " + args);
|
||||
|
||||
srDest = $SpaceRequired$:bin;
|
||||
err = initInstall("$ProductName$", "Thunderbird", "$Version$");
|
||||
logComment("initInstall: " + err);
|
||||
|
||||
fProgram = getFolder("Program");
|
||||
fWindowsSystem = getFolder("Win System");
|
||||
logComment("fProgram: " + fProgram);
|
||||
|
||||
if(verifyDiskSpace(fProgram, srDest))
|
||||
{
|
||||
setPackageFolder(fProgram);
|
||||
|
||||
removeOldFiles();
|
||||
err = addDirectory("",
|
||||
"$Version$",
|
||||
"bin", // dir name in jar to extract
|
||||
fProgram, // Where to put this file (Returned from GetFolder)
|
||||
"", // subdir name to create relative to fProgram
|
||||
true); // Force Flag
|
||||
logComment("addDirectory() of Program returned: " + err);
|
||||
|
||||
// check return value
|
||||
if( err == SUCCESS )
|
||||
{
|
||||
fileToRegister = getFolder(fProgram, "AccessibleMarshal.dll");
|
||||
err2 = File.windowsRegisterServer(fileToRegister);
|
||||
logComment("windowsRegisterServer() returned: " + err2);
|
||||
updateWinIni();
|
||||
updateMapi();
|
||||
|
||||
// we don't want to fail on errors for the above two
|
||||
resetError();
|
||||
|
||||
// Create the uninstall folder.
|
||||
err = File.dirCreate(getFolder("Program", "uninstall"));
|
||||
logComment("dirCreate() of Program/uninstall returned: " + err);
|
||||
|
||||
/* Log files that are created after the installer is done, so they can be uninstalled */
|
||||
logComment("Installing: " + fProgram + ".autoreg");
|
||||
logComment("Installing: " + fProgram + "Xpcs Registry.dat");
|
||||
logComment("Installing: " + fProgram + "xpcom.log");
|
||||
logComment("Create Folder: " + fProgram + "components");
|
||||
logComment("Installing: " + fProgram + "components\\xpti.dat");
|
||||
logComment("Installing: " + fProgram + "components\\xptitemp.dat");
|
||||
logComment("Installing: " + fProgram + "components\\compreg.dat");
|
||||
logComment("Create Folder: " + fProgram + "chrome");
|
||||
logComment("Create Folder: " + fProgram + "uninstall");
|
||||
logComment("Installing: " + fProgram + "active-update.xml");
|
||||
logComment("Installing: " + fProgram + "updates.xml");
|
||||
logComment("Installing: " + fProgram + "last-update.log");
|
||||
logComment("Create Folder: " + fProgram + "updates");
|
||||
|
||||
// log comments for uninstalling the registry keys created by mail for setting
|
||||
// itself up in WinXP's Start menu
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\Mail\\$ProductName$ []");
|
||||
logComment("Store Registry Value: HKEY_LOCAL_MACHINE\\Software\\Clients\\Mail\\$ProductName$ []");
|
||||
logComment("Store Registry Value: HKEY_LOCAL_MACHINE\\Software\\Clients\\Mail\\$ProductName$ [DLLPath]");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\Mail\\$ProductName$\\DefaultIcon []");
|
||||
logComment("Store Registry Value: HKEY_LOCAL_MACHINE\\Software\\Clients\\Mail\\$ProductName$\\DefaultIcon []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\Mail\\$ProductName$\\protocols []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\Mail\\$ProductName$\\protocols\\mailto []");
|
||||
logComment("Store Registry Value: HKEY_LOCAL_MACHINE\\Software\\Clients\\Mail\\$ProductName$\\protocols\\mailto []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\Mail\\$ProductName$\\protocols\\mailto\\DefaultIcon []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\Mail\\$ProductName$\\protocols\\mailto\\shell []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\Mail\\$ProductName$\\protocols\\mailto\\shell\\open []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\Mail\\$ProductName$\\protocols\\mailto\\shell\\open\\command []");
|
||||
logComment("Store Registry Value: HKEY_LOCAL_MACHINE\\Software\\Clients\\Mail\\$ProductName$\\protocols\\mailto\\shell\\open\\command []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\Mail\\$ProductName$\\shell []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\Mail\\$ProductName$\\shell\\open []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\Mail\\$ProductName$\\shell\\open\\command []");
|
||||
logComment("Store Registry Value: HKEY_LOCAL_MACHINE\\Software\\Clients\\Mail\\$ProductName$\\shell\\open\\command []");
|
||||
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$ []");
|
||||
logComment("Store Registry Value: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$ []");
|
||||
logComment("Store Registry Value: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$ [DLLPath]");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\DefaultIcon []");
|
||||
logComment("Store Registry Value: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\DefaultIcon []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\news []");
|
||||
logComment("Store Registry Value: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\news []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\news\\DefaultIcon []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\news\\shell []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\news\\shell\\open []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\news\\shell\\open\\command []");
|
||||
logComment("Store Registry Value: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\news\\shell\\open\\command []");
|
||||
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\snews []");
|
||||
logComment("Store Registry Value: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\snews []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\snews\\DefaultIcon []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\snews\\shell []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\snews\\shell\\open []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\snews\\shell\\open\\command []");
|
||||
logComment("Store Registry Value: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\snews\\shell\\open\\command []");
|
||||
|
||||
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\nntp []");
|
||||
logComment("Store Registry Value: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\nntp []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\nntp\\DefaultIcon []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\nntp\\shell []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\nntp\\shell\\open []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\nntp\\shell\\open\\command []");
|
||||
logComment("Store Registry Value: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\protocols\\nntp\\shell\\open\\command []");
|
||||
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\shell []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\shell\\open []");
|
||||
logComment("Create Registry Key: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\shell\\open\\command []");
|
||||
logComment("Store Registry Value: HKEY_LOCAL_MACHINE\\Software\\Clients\\News\\$ProductName$\\shell\\open\\command []");
|
||||
|
||||
err = getLastError();
|
||||
if (err == SUCCESS)
|
||||
{
|
||||
err = performInstall();
|
||||
logComment("performInstall() returned: " + err);
|
||||
if (! ('buildID' in Install))
|
||||
{
|
||||
logComment("Running Pre-Mozilla 0.9.1");
|
||||
initInstall("Post-install Cleanup Utility", "Mail/xpicleanup", "$Version$");
|
||||
cleanupUtility = getFolder(fProgram, "xpicleanup.exe");
|
||||
err = File.execute(cleanupUtility);
|
||||
logComment("execute() returned: " + err);
|
||||
err = performInstall();
|
||||
}
|
||||
}
|
||||
else
|
||||
cancelInstall(err);
|
||||
}
|
||||
else
|
||||
cancelInstall(err);
|
||||
}
|
||||
else
|
||||
cancelInstall(INSUFFICIENT_DISK_SPACE);
|
||||
|
||||
|
||||
// end main
|
|
@ -1,32 +0,0 @@
|
|||
var err = initInstall("RSS Support", "RSS", "$Version$");
|
||||
logComment("initInstall: " + err);
|
||||
|
||||
// RSS Extension
|
||||
|
||||
var fProgram = getFolder("Program");
|
||||
logComment("fProgram: " + fProgram);
|
||||
|
||||
err = addDirectory("", "$Version$", "bin", fProgram, "", true);
|
||||
logComment("addDirectory: " + err);
|
||||
|
||||
var jarFolder = getFolder("Chrome", "newsblog.jar");
|
||||
|
||||
fTarget = getFolder("Program", "defaults");
|
||||
logComment("fTarget: " + fTarget);
|
||||
err = addDirectory("",
|
||||
"bin/defaults", // dir name in jar to extract
|
||||
fTarget, // Where to put this file (Returned from GetFolder)
|
||||
""); // subdir name to create relative to fProgram
|
||||
|
||||
addFile("RSS Service",
|
||||
"bin/components/newsblog.js",
|
||||
getFolder("Components"),
|
||||
"");
|
||||
|
||||
registerChrome(SKIN | DELAYED_CHROME, getFolder("Chrome","classic.jar"), "skin/classic/messenger-newsblog/");
|
||||
|
||||
err = getLastError();
|
||||
if (err==SUCCESS)
|
||||
performInstall();
|
||||
else
|
||||
cancelInstall(err);
|
|
@ -1,16 +0,0 @@
|
|||
var err = initInstall("Offline Support", "Offline", "$Version$");
|
||||
logComment("initInstall: " + err);
|
||||
|
||||
// Offline Extension
|
||||
|
||||
var fProgram = getFolder("Program");
|
||||
logComment("fProgram: " + fProgram);
|
||||
|
||||
err = addDirectory("", "$Version$", "bin", fProgram, "", true);
|
||||
logComment("addDirectory: " + err);
|
||||
|
||||
err = getLastError();
|
||||
if (err==SUCCESS)
|
||||
performInstall();
|
||||
else
|
||||
cancelInstall(err);
|
|
@ -1,127 +0,0 @@
|
|||
// this function verifies disk space in kilobytes
|
||||
function verifyDiskSpace(dirPath, spaceRequired)
|
||||
{
|
||||
var spaceAvailable;
|
||||
|
||||
// Get the available disk space on the given path
|
||||
spaceAvailable = fileGetDiskSpaceAvailable(dirPath);
|
||||
|
||||
// Convert the available disk space into kilobytes
|
||||
spaceAvailable = parseInt(spaceAvailable / 1024);
|
||||
|
||||
// do the verification
|
||||
if(spaceAvailable < spaceRequired)
|
||||
{
|
||||
logComment("Insufficient disk space: " + dirPath);
|
||||
logComment(" required : " + spaceRequired + " K");
|
||||
logComment(" available: " + spaceAvailable + " K");
|
||||
return(false);
|
||||
}
|
||||
|
||||
return(true);
|
||||
}
|
||||
|
||||
// this function deletes a file if it exists
|
||||
function deleteThisFile(dirKey, file)
|
||||
{
|
||||
var fFileToDelete;
|
||||
|
||||
fFileToDelete = getFolder(dirKey, file);
|
||||
logComment("File to delete: " + fFileToDelete);
|
||||
if(File.isFile(fFileToDelete))
|
||||
{
|
||||
File.remove(fFileToDelete);
|
||||
return(true);
|
||||
}
|
||||
else
|
||||
return(false);
|
||||
}
|
||||
|
||||
// this function deletes a folder if it exists
|
||||
function deleteThisFolder(dirKey, folder, recursiveDelete)
|
||||
{
|
||||
var fToDelete;
|
||||
|
||||
if(typeof recursiveDelete == "undefined")
|
||||
recursiveDelete = true;
|
||||
|
||||
fToDelete = getFolder(dirKey, folder);
|
||||
logComment("Folder to delete: " + fToDelete);
|
||||
if(File.isDirectory(fToDelete))
|
||||
{
|
||||
File.dirRemove(fToDelete, recursiveDelete);
|
||||
return(true);
|
||||
}
|
||||
else
|
||||
return(false);
|
||||
}
|
||||
|
||||
// OS type detection
|
||||
// which platform?
|
||||
function getPlatform()
|
||||
{
|
||||
var platformStr;
|
||||
var platformNode;
|
||||
|
||||
if('platform' in Install)
|
||||
{
|
||||
platformStr = new String(Install.platform);
|
||||
|
||||
if (!platformStr.search(/^Macintosh/))
|
||||
platformNode = 'mac';
|
||||
else if (!platformStr.search(/^Win/))
|
||||
platformNode = 'win';
|
||||
else
|
||||
platformNode = 'unix';
|
||||
}
|
||||
else
|
||||
{
|
||||
var fOSMac = getFolder("Mac System");
|
||||
var fOSWin = getFolder("Win System");
|
||||
|
||||
logComment("fOSMac: " + fOSMac);
|
||||
logComment("fOSWin: " + fOSWin);
|
||||
|
||||
if(fOSMac != null)
|
||||
platformNode = 'mac';
|
||||
else if(fOSWin != null)
|
||||
platformNode = 'win';
|
||||
else
|
||||
platformNode = 'unix';
|
||||
}
|
||||
|
||||
return platformNode;
|
||||
}
|
||||
|
||||
var srDest = $SpaceRequired$;
|
||||
|
||||
var err = initInstall("Quality Feedback Agent", "Quality Feedback Agent", "$Version$");
|
||||
logComment("initInstall: " + err);
|
||||
|
||||
var communicatorFolder = getFolder("Program");
|
||||
logComment("communicatorFolder: " + communicatorFolder);
|
||||
|
||||
if (verifyDiskSpace(communicatorFolder, srDest))
|
||||
{
|
||||
err = addDirectory("",
|
||||
"$Version$",
|
||||
"bin", // jar source folder
|
||||
communicatorFolder, // target folder
|
||||
"", // target subdir
|
||||
true ); // force flag
|
||||
|
||||
logComment("addDirectory() returned: " + err);
|
||||
|
||||
if (err==SUCCESS)
|
||||
{
|
||||
err = performInstall();
|
||||
logComment("performInstall() returned: " + err);
|
||||
}
|
||||
else
|
||||
{
|
||||
cancelInstall(err);
|
||||
logComment("cancelInstall() returned: " + err);
|
||||
}
|
||||
}
|
||||
else
|
||||
cancelInstall(INSUFFICIENT_DISK_SPACE);
|
|
@ -1,49 +0,0 @@
|
|||
// main
|
||||
var srDest;
|
||||
var err;
|
||||
var fDesktop;
|
||||
var szFolderDesktop;
|
||||
|
||||
srDest = $SpaceRequired$;
|
||||
err = initInstall("Thunderbird Installer", "/mozilla.org/Thunderbird Installer", "$Version$");
|
||||
logComment("initInstall: " + err);
|
||||
|
||||
// Find the current user's desktop
|
||||
winreg = getWinRegistry();
|
||||
winreg.setRootKey(winreg.HKEY_CURRENT_USER);
|
||||
subkey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders";
|
||||
valname = "Desktop";
|
||||
szFolderDesktop = winreg.getValueString(subkey, valname);
|
||||
|
||||
fDesktop = getFolder("file:///", szFolderDesktop);
|
||||
logComment("Desktop location: " + fDesktop);
|
||||
|
||||
if(verifyDiskSpace(fDesktop, srDest))
|
||||
{
|
||||
setPackageFolder(fDesktop);
|
||||
|
||||
err = addFile("",
|
||||
"",
|
||||
"ThunderbirdNetSetup.exe", // dir name in jar to extract
|
||||
fDesktop, // Where to put this file (Returned from getFolder)
|
||||
""); // subdir name to create relative to fProgram
|
||||
|
||||
logComment("addFile() returned: " + err);
|
||||
|
||||
err = execute("ThunderbirdNetSetup.exe", "", false);
|
||||
logComment("execute() returned: " + err);
|
||||
|
||||
// check return value
|
||||
if(err==SUCCESS)
|
||||
{
|
||||
err = performInstall();
|
||||
logComment("performInstall() returned: " + err);
|
||||
}
|
||||
else
|
||||
cancelInstall(err);
|
||||
}
|
||||
else
|
||||
cancelInstall(INSUFFICIENT_DISK_SPACE);
|
||||
|
||||
// end main
|
||||
|
|
@ -1,169 +0,0 @@
|
|||
#filter substitution
|
||||
|
||||
[General]
|
||||
; Run Mode values:
|
||||
; Normal - Shows all dialogs. Requires user input.
|
||||
; Auto - Shows some dialogs, but none requiring user input. It will
|
||||
; automatically uninstall the product using default values.
|
||||
; Silent - Show no dialogs at all. It will uninstall product using default
|
||||
; values.
|
||||
Run Mode=Normal
|
||||
|
||||
Company Name=@BRAND_COMPANY_NAME@
|
||||
Product Name=@BRAND_PRODUCT_NAME@
|
||||
|
||||
; Valid Path values:
|
||||
; PROGRAMFILESDIR
|
||||
; WINDISK
|
||||
; WINDIR
|
||||
; WINSYSDIR
|
||||
; COMMON_STARTUP
|
||||
; COMMON_PROGRAMS
|
||||
; COMMON_STARTMENU
|
||||
; COMMON_DESKTOP
|
||||
;
|
||||
; PERSONAL_STARTUP
|
||||
; PERSONAL_PROGRAMS
|
||||
; PERSONAL_STARTMENU
|
||||
; PERSONAL_DESKTOP
|
||||
;
|
||||
; PERSONAL_APPDATA
|
||||
; PERSONAL_CACHE
|
||||
; PERSONAL_COOKIES
|
||||
; PERSONAL_FAVORITES
|
||||
; PERSONAL_FONTS
|
||||
; PERSONAL_HISTORY
|
||||
; PERSONAL_NETHOOD
|
||||
; PERSONAL_PERSONAL
|
||||
; PERSONAL_PRINTHOOD (supported only under Windows NT)
|
||||
; PERSONAL_RECENT
|
||||
; PERSONAL_SENDTO
|
||||
; PERSONAL_TEMPLATES
|
||||
;
|
||||
; PROGRAMFILESDIR
|
||||
; COMMONFILESDIR
|
||||
; MEDIAPATH
|
||||
; CONFIGPATH (supported only under Windows95 and Windows98)
|
||||
; DEVICEPATH
|
||||
|
||||
; This provides information on where in the Windows Registry to locate the Uninstall log files
|
||||
;
|
||||
Main Root Key=HKEY_LOCAL_MACHINE
|
||||
Main Key=[Product WinRegKey]
|
||||
Decrypt Main Key=TRUE
|
||||
|
||||
Root Key=HKEY_LOCAL_MACHINE
|
||||
Key=[Product CurrentVersion]\Uninstall
|
||||
Decrypt Key=TRUE
|
||||
|
||||
[Check Instance0]
|
||||
Class Name=ThunderbirdMessageWindow
|
||||
Window Name=
|
||||
Process Name=thunderbird.exe
|
||||
Pretty Name=@BRAND_PRODUCT_NAME@
|
||||
;*** LOCALIZE ME BABY ***
|
||||
Message=@UNINST_RUNNING@
|
||||
;*** LOCALIZE ME BABY ***
|
||||
Message wait=@UNINST_SHUTDOWN@
|
||||
|
||||
; This key indicates whether or not to close all the windows associated with
|
||||
; the process id of this app instance window found.
|
||||
Close All Process Windows=TRUE
|
||||
|
||||
; These keys are not normally necessary for checking instances. They are
|
||||
; set here because Mozilla requires a way to shut down it's turbo mode.
|
||||
Extra Cmd0 Reg Key Root=HKEY_LOCAL_MACHINE
|
||||
Extra Cmd0 Reg Key=Software\Microsoft\Windows\CurrentVersion\App Paths\thunderbird.exe
|
||||
Extra Cmd0 Reg Name=
|
||||
Extra Cmd0 Parameter=-kill
|
||||
|
||||
[Check Instance1]
|
||||
Class Name=Netscape6MessageWindow
|
||||
Window Name=
|
||||
Process Name=Netscp.exe
|
||||
Pretty Name=Netscape
|
||||
;*** LOCALIZE ME BABY ***
|
||||
Message=Netscape is detected to be currently running. Please quit Netscape before continuing. Click OK to exit Netscape automatically and proceed with uninstallation.
|
||||
;*** LOCALIZE ME BABY ***
|
||||
Message wait=Shutting down Netscape. Please wait...
|
||||
|
||||
; This key indicates whether or not to close all the windows associated with
|
||||
; the process id of this app instance window found.
|
||||
Close All Process Windows=TRUE
|
||||
|
||||
; These keys are not normally necessary for checking instances. They are
|
||||
; set here because Netscape 6 requires a way to shut down it's turbo mode.
|
||||
; This will stop at the first one that succeeds (key and file found).
|
||||
Extra Cmd0 Reg Key Root=HKEY_LOCAL_MACHINE
|
||||
Extra Cmd0 Reg Key=Software\Microsoft\Windows\CurrentVersion\App Paths\Netscp6.exe
|
||||
Extra Cmd0 Reg Name=
|
||||
Extra Cmd0 Parameter=-kill
|
||||
|
||||
Extra Cmd1 Reg Key Root=HKEY_LOCAL_MACHINE
|
||||
Extra Cmd1 Reg Key=Software\Microsoft\Windows\CurrentVersion\App Paths\Netscp.exe
|
||||
Extra Cmd1 Reg Name=
|
||||
Extra Cmd1 Parameter=-kill
|
||||
|
||||
|
||||
[Dialog Uninstall]
|
||||
FONTNAME=MS Sans Serif
|
||||
FONTSIZE=8
|
||||
CHARSET=0
|
||||
;Here is a partial list CHAR_SETS
|
||||
; ANSI_CHARSET = 0
|
||||
; DEFAULT_CHARSET = 1
|
||||
; SYMBOL_CHARSET = 2
|
||||
; SHIFTJIS_CHARSET = 128
|
||||
; GB2312_CHARSET = 134
|
||||
; HANGEUL_CHARSET = 129
|
||||
; CHINESEBIG5_CHARSET = 136
|
||||
; OEM_CHARSET 255
|
||||
Show Dialog=TRUE
|
||||
Title=@UNINST_TITLE@
|
||||
Message0=Are you sure you want to completely remove %s and all of its components?
|
||||
|
||||
Uninstall=&Uninstall
|
||||
Cancel=&Cancel
|
||||
Message1=Uninstall has detected that the following shared file is no longer used by any programs. If any programs still require the shared file and it is removed, those programs may no longer function. Are you sure you want to remove this shared file?
|
||||
Message2=Leaving this file will not harm your system. If you are not sure, it is recommended that the shared file be not removed from the system.
|
||||
FileName=File name:
|
||||
No=&No
|
||||
NoToAll=N&o to all
|
||||
Yes=&Yes
|
||||
YesToAll=Y&es to all
|
||||
OK=@BTN_OK@
|
||||
|
||||
; This section attempts to restore/undo the desktop integration performed by the browser/mail
|
||||
[Restore Desktop Integration]
|
||||
Enabled=TRUE
|
||||
|
||||
; This section attempts to cleanup the UnreadMail registry keys set up by mail.
|
||||
[Cleanup Mail Integration]
|
||||
Enabled=TRUE
|
||||
|
||||
[Messages]
|
||||
ERROR_DLL_LOAD=Could not load %s
|
||||
ERROR_STRING_LOAD=Could not load string resource ID %d
|
||||
ERROR_STRING_NULL=Null pointer encountered.
|
||||
ERROR_GLOBALALLOC=Memory allocation error.
|
||||
ERROR_FAILED=%s failed.
|
||||
ERROR_DIALOG_CREATE=Could not create %s dialog.
|
||||
DLGQUITTITLE=Question
|
||||
DLGQUITMSG=Are you sure you want to cancel?
|
||||
ERROR_GET_SYSTEM_DIRECTORY_FAILED=GetSystemDirectory() failed.
|
||||
ERROR_GET_WINDOWS_DIRECTORY_FAILED=GetWindowsDirectory() failed.
|
||||
ERROR_CREATE_TEMP_DIR=Uninstall was not able to create the TEMP directory: %s
|
||||
ERROR_SETUP_REQUIREMENT=Windows95 or greater Operating System is required! Exiting Uninstall...
|
||||
MB_WARNING_STR=Warning
|
||||
ERROR_UNINSTALL_LOG_FOLDER=Uninstall log folder not found:%s
|
||||
MB_MESSAGE_STR=Message
|
||||
DLG_REMOVE_FILE_TITLE=Remove File?
|
||||
ERROR_GETVERSION=GetVersionEx() failed!
|
||||
MB_ATTENTION_STR=Attention
|
||||
MSG_FORCE_QUIT_PROCESS=@MSG_FORCE_QUIT_PROCESS@
|
||||
MSG_FORCE_QUIT_PROCESS_FAILED=@MSG_FORCE_QUIT_PROCESS_FAILED@
|
||||
MSG_DELETE_INSTALLATION_PATH=@MSG_DELETE_INSTALLATION_PATH@
|
||||
MSG_INSTALLATION_PATH_WITHIN_WINDIR=@MSG_INSTALLATION_PATH_WITHIN_WINDIR@
|
||||
; Localize me!!
|
||||
MSG_UNINSTALL_COMPLETE=@BRAND_PRODUCT_NAME@ has been removed from your computer.
|
||||
MSG_UNINSTALL_SURVEY=Tell us what you thought of @BRAND_PRODUCT_NAME@.
|
|
@ -1,59 +0,0 @@
|
|||
#filter emptyLines
|
||||
|
||||
# This file is in the UTF-8 encoding
|
||||
|
||||
#define BRAND_COMPANY_NAME Mozilla
|
||||
#define BRAND_PRODUCT_NAME Mozilla Thunderbird
|
||||
|
||||
#define UNINST_RUNNING Mozilla Thunderbird is detected to be currently running. Please quit Mozilla Thunderbird before continuing. Click OK to exit Mozilla Thunderbird automatically and proceed with uninstallation.
|
||||
#define UNINST_SHUTDOWN Shutting down Mozilla Thunderbird. Please wait...
|
||||
#define UNINST_FONT MS Sans Serif
|
||||
#define UNINST_FONTSIZE 8
|
||||
#define UNINST_CHARSET 0
|
||||
# Here is a partial list CHAR_SETS
|
||||
# ANSI_CHARSET = 0
|
||||
# DEFAULT_CHARSET = 1
|
||||
# SYMBOL_CHARSET = 2
|
||||
# SHIFTJIS_CHARSET = 128
|
||||
# GB2312_CHARSET = 134
|
||||
# HANGEUL_CHARSET = 129
|
||||
# CHINESEBIG5_CHARSET = 136
|
||||
# OEM_CHARSET 255
|
||||
|
||||
#define UNINST_TITLE Mozilla Thunderbird Uninstaller
|
||||
#define UNINST_MESSAGE0 Are you sure you want to completely remove %s and all of its components?
|
||||
#define BTN_UNINST &Uninstall
|
||||
#define BTN_CANCEL &Cancel
|
||||
#define BTN_MESSAGE1 Uninstall has detected that the following shared file is no longer used by any programs. If any programs still require the shared file and it is removed, those programs may no longer function. Are you sure you want to remove this shared file?
|
||||
#define BTN_MESSAGE2 Leaving this file will not harm your system. If you are not sure, it is recommended that the shared file be not removed from the system.
|
||||
#define BTN_FILENAME File name:
|
||||
#define BTN_NO &No
|
||||
#define BTN_NOTOALL N&o to all
|
||||
#define BTN_YES &Yes
|
||||
#define BTN_YESTOALL Y&es to all
|
||||
#define BTN_OK OK
|
||||
|
||||
#define ERROR_DLL_LOAD Could not load %s
|
||||
#define ERROR_STRING_LOAD Could not load string resource ID %d
|
||||
#define ERROR_STRING_NULL Null pointer encountered.
|
||||
#define ERROR_GLOBALALLOC Memory allocation error.
|
||||
#define ERROR_FAILED %s failed.
|
||||
#define ERROR_DIALOG_CREATE Could not create %s dialog.
|
||||
#define DLGQUITTITLE Question
|
||||
#define DLGQUITMSG Are you sure you want to cancel?
|
||||
#define ERROR_GET_SYSTEM_DIRECTORY_FAILED GetSystemDirectory() failed.
|
||||
#define ERROR_GET_WINDOWS_DIRECTORY_FAILED GetWindowsDirectory() failed.
|
||||
#define ERROR_CREATE_TEMP_DIR Uninstall was not able to create the TEMP directory: %s
|
||||
#define ERROR_SETUP_REQUIREMENT Windows95 or greater Operating System is required! Exiting Uninstall...
|
||||
#define MB_WARNING_STR Warning
|
||||
#define ERROR_UNINSTALL_LOG_FOLDER Uninstall log folder not found:%s
|
||||
#define MB_MESSAGE_STR Message
|
||||
#define DLG_REMOVE_FILE_TITLE Remove File?
|
||||
#define ERROR_GETVERSION GetVersionEx() failed!
|
||||
#define MB_ATTENTION_STR Attention
|
||||
#define MSG_FORCE_QUIT_PROCESS Uninstall has detected that %s (%s) is still running. Click OK to quit %s and proceed with uninstallation. Alternatively, use the Windows Task Manager to quit %s, and then click OK to continue with uninstallation.
|
||||
#define MSG_FORCE_QUIT_PROCESS_FAILED Uninstall will now exit. Uninstall could not continue because %s (%s) is still running. Try manually quitting %s using Windows Task Manager, and then run Uninstall again.
|
||||
#define MSG_DELETE_INSTALLATION_PATH Not all files were uninstalled from the installation directory:\n\n %s\n\nDo you want to completely delete this directory?
|
||||
#define MSG_INSTALLATION_PATH_WITHIN_WINDIR Uninstall has detected that the installation path of Mozilla Thunderbird is installed to a folder within your Windows folder. Uninstall will not attempt to delete this installation due to the potential removal of critical system files.
|
||||
|
||||
#unfilter emptyLines
|
|
@ -1,101 +0,0 @@
|
|||
// main
|
||||
var srDest;
|
||||
var err;
|
||||
var szUninstall;
|
||||
var fProgram;
|
||||
var fWindowsSystem;
|
||||
var fileComponentReg;
|
||||
var fileComponentRegStr;
|
||||
var fileMsvcrt;
|
||||
var fileMsvcirt;
|
||||
|
||||
srDest = $SpaceRequired$:bin;
|
||||
err = initInstall("Mozilla XPCOM", "XPCOM", "$Version$");
|
||||
logComment("initInstall: " + err);
|
||||
|
||||
fProgram = getFolder("Program");
|
||||
fWindowsSystem = getFolder("Win System");
|
||||
logComment("fProgram: " + fProgram);
|
||||
|
||||
// build the uninstall folder path
|
||||
szUninstall = fProgram + "Uninstall";
|
||||
|
||||
// Log component.reg file so it can be deleted by the uninstaller.
|
||||
// These two files are created after installation is done, thus
|
||||
// are normally not logged for uninstall.
|
||||
logComment("Installing: " + fProgram + "component.reg");
|
||||
|
||||
if(verifyDiskSpace(fProgram, srDest))
|
||||
{
|
||||
setPackageFolder(fProgram);
|
||||
|
||||
err = addDirectory("",
|
||||
"$Version$",
|
||||
"bin", // dir name in jar to extract
|
||||
fProgram, // Where to put this file (Returned from GetFolder)
|
||||
"", // subdir name to create relative to fProgram
|
||||
true); // Force Flag
|
||||
logComment("addDirectory() of Program returned: " + err);
|
||||
|
||||
if( err == SUCCESS )
|
||||
{
|
||||
// install msvcrt.dll *only* if it does not exist
|
||||
// we don't care if addFile() fails (if the file does not exist in the archive)
|
||||
// bacause it will still install
|
||||
fileMsvcrt = getFolder(fWindowsSystem, "msvcrt.dll");
|
||||
rv = File.exists(fileMsvcrt);
|
||||
logComment("fileExists() returned: " + rv);
|
||||
if(rv == false)
|
||||
{
|
||||
logComment("File not found: " + fileMsvcrt);
|
||||
addFile("/Microsoft/Shared/msvcrt.dll",
|
||||
"$Version$",
|
||||
"msvcrt.dll", // dir name in jar to extract
|
||||
fWindowsSystem, // Where to put this file (Returned from getFolder)
|
||||
"", // subdir name to create relative to fProgram
|
||||
WIN_SHARED_FILE);
|
||||
logComment("addFile() of msvcrt.dll returned: " + err);
|
||||
}
|
||||
else
|
||||
{
|
||||
logComment("File found: " + fileMsvcrt);
|
||||
}
|
||||
|
||||
// install msvcirt.dll *only* if it does not exist
|
||||
// we don't care if addFile() fails (if the file does not exist in the archive)
|
||||
// bacause it will still install
|
||||
fileMsvcirt = getFolder(fWindowsSystem, "msvcirt.dll");
|
||||
rv = File.exists(fileMsvcirt);
|
||||
logComment("fileExists() returned: " + rv);
|
||||
if(rv == false)
|
||||
{
|
||||
logComment("File not found: " + fileMsvcirt);
|
||||
addFile("/Microsoft/Shared/msvcirt.dll",
|
||||
"$Version$",
|
||||
"msvcirt.dll", // dir name in jar to extract
|
||||
fWindowsSystem, // Where to put this file (Returned from getFolder)
|
||||
"", // subdir name to create relative to fProgram
|
||||
WIN_SHARED_FILE);
|
||||
logComment("addFile() of msvcirt.dll returned: " + err);
|
||||
}
|
||||
else
|
||||
{
|
||||
logComment("File found: " + fileMsvcirt);
|
||||
}
|
||||
}
|
||||
|
||||
// check return value
|
||||
if( err == SUCCESS )
|
||||
{
|
||||
err = performInstall();
|
||||
logComment("performInstall() returned: " + err);
|
||||
}
|
||||
else
|
||||
cancelInstall(err);
|
||||
}
|
||||
else
|
||||
cancelInstall(INSUFFICIENT_DISK_SPACE);
|
||||
|
||||
|
||||
// end main
|
||||
|
Двоичные данные
other-licenses/branding/thunderbird/Header.bmp
Двоичные данные
other-licenses/branding/thunderbird/Header.bmp
Двоичный файл не отображается.
До Ширина: | Высота: | Размер: 7.5 KiB |
|
@ -53,8 +53,6 @@ ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
|
|||
cp $(srcdir)/license.r $(DIST)/branding/license.r
|
||||
endif
|
||||
cp $(srcdir)/thunderbird.ico $(DIST)/branding/app.ico
|
||||
cp $(srcdir)/Header.bmp $(DIST)/branding/Header.bmp
|
||||
cp $(srcdir)/Watermrk.bmp $(DIST)/branding/Watermrk.bmp
|
||||
cp $(srcdir)/branding.nsi $(DIST)/branding/branding.nsi
|
||||
cp $(srcdir)/wizHeader.bmp $(DIST)/branding/wizHeader.bmp
|
||||
cp $(srcdir)/wizHeaderRTL.bmp $(DIST)/branding/wizHeaderRTL.bmp
|
||||
|
|
Двоичные данные
other-licenses/branding/thunderbird/Watermrk.bmp
Двоичные данные
other-licenses/branding/thunderbird/Watermrk.bmp
Двоичный файл не отображается.
До Ширина: | Высота: | Размер: 1.4 MiB |
Загрузка…
Ссылка в новой задаче