mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-26 14:22:01 +00:00
fixing bug 191441 - Add config.ini option making GRE private vs shared. r=sgehani, sr=dveditz, a=dveditz
This commit is contained in:
parent
645a0cfe2b
commit
bd1f67d720
@ -65,7 +65,6 @@ bin\defaults\messenger\mailViews.dat
|
||||
bin\README.txt,bin\readme.txt
|
||||
bin\LICENSE,bin\license.txt
|
||||
bin\jpeg3250.dll
|
||||
bin\jsj3250.dll
|
||||
bin\mozilla.exe
|
||||
bin\regxpcom.exe
|
||||
bin\xpicleanup.exe
|
||||
|
@ -12,7 +12,7 @@ Default AppID=$ProductName$User
|
||||
|
||||
Company Name=$CompanyName$
|
||||
Product Name=$ProductName$
|
||||
Product NameInternal=$ProductName$
|
||||
Product NameInternal=$ProductNameInternal$
|
||||
User Agent=$UserAgent$
|
||||
|
||||
; Destination Path values:
|
||||
@ -120,20 +120,6 @@ Confirmation Message=There was an error encountered during installation of $Prod
|
||||
|
||||
|
||||
|
||||
; HKey: valid decryptable setup key is [Product CurrentVersion] or [Product PreviousVersion]
|
||||
; Decrypt HKey: there are times when '[' and ']' are valid part of windows registry key names.
|
||||
; Contains Filename: tells setup that the path contains filename needed to be removed before
|
||||
; using it as a path.
|
||||
; Verify Existence: FILE or PATH
|
||||
;
|
||||
[Locate Previous Product Path0]
|
||||
HRoot=HKEY_LOCAL_MACHINE
|
||||
HKey=SOFTWARE\$CompanyName$\$ProductName$\$UserAgent$\Main
|
||||
Name=Install Directory
|
||||
Decrypt HKey=TRUE
|
||||
Contains Filename=FALSE
|
||||
Verify Existence=
|
||||
|
||||
[Dialog Welcome]
|
||||
Show Dialog=TRUE
|
||||
;*** LOCALIZE ME BABY ***
|
||||
@ -288,9 +274,9 @@ exe_param=
|
||||
Class Name=MozillaMessageWindow
|
||||
Window Name=
|
||||
;*** LOCALIZE ME BABY ***
|
||||
Message=Download of $ProductName$ was successful. $ProductNameNoVersion$ must be closed to proceed with installation. Click OK to exit $ProductNameNoVersion$ automatically and to begin installation.
|
||||
Message=Download of $ProductName$ was successful. $ProductNameInternal$ must be closed to proceed with installation. Click OK to exit $ProductNameInternal$ automatically and to begin installation.
|
||||
;*** LOCALIZE ME BABY ***
|
||||
Message Full Installer=$ProductNameNoVersion$ must be closed to proceed with installation. Click OK to exit $ProductNameNoVersion$ automatically and to begin installation.
|
||||
Message Full Installer=$ProductNameInternal$ must be closed to proceed with installation. Click OK to exit $ProductNameInternal$ automatically and to begin installation.
|
||||
|
||||
; This key indicates whether or not to close all the windows associated with
|
||||
; the process id of this app instance window found.
|
||||
@ -574,7 +560,7 @@ Root Key=HKEY_LOCAL_MACHINE
|
||||
Key=[REGPATH]\$UserAgentShort$\Installer
|
||||
Name=PathToExe
|
||||
;*** LOCALIZE ME BABY ***
|
||||
Name Value=[SETUP PATH]\Setup\setup.exe
|
||||
Name Value=[SETUP PATH]\Setup $ProductNameInternal$\setup.exe
|
||||
Type=REG_SZ
|
||||
Decrypt Key=TRUE
|
||||
Decrypt Name=FALSE
|
||||
|
@ -104,7 +104,7 @@ print "The display version is: $versionMain\n";
|
||||
|
||||
$ENV{WIZ_nameCompany} = "mozilla.org";
|
||||
$ENV{WIZ_nameProduct} = "GRE";
|
||||
$ENV{WIZ_nameProductNoVersion} = "GRE";
|
||||
$ENV{WIZ_nameProductInternal} = "GRE"; # product name without the version string
|
||||
$ENV{WIZ_fileMainExe} = "none.exe";
|
||||
$ENV{WIZ_fileUninstall} = $seuFileNameSpecific;
|
||||
$ENV{WIZ_fileUninstallZip} = $seuzFileNameSpecific;
|
||||
|
@ -89,7 +89,7 @@ $userAgentShort = $ENV{WIZ_userAgentShort};
|
||||
$xpinstallVersion = $ENV{WIZ_xpinstallVersion};
|
||||
$nameCompany = $ENV{WIZ_nameCompany};
|
||||
$nameProduct = $ENV{WIZ_nameProduct};
|
||||
$nameProductNoVersion = $ENV{WIZ_nameProductNoVersion};
|
||||
$nameProductInternal = $ENV{WIZ_nameProductInternal};
|
||||
$fileMainExe = $ENV{WIZ_fileMainExe};
|
||||
$fileUninstall = $ENV{WIZ_fileUninstall};
|
||||
$fileUninstallZip = $ENV{WIZ_fileUninstallZip};
|
||||
@ -194,7 +194,7 @@ while($line = <fpInIt>)
|
||||
$line =~ s/\$XPInstallVersion\$/$xpinstallVersion/gi;
|
||||
$line =~ s/\$CompanyName\$/$nameCompany/gi;
|
||||
$line =~ s/\$ProductName\$/$nameProduct/gi;
|
||||
$line =~ s/\$ProductNameNoVersion\$/$nameProductNoVersion/gi;
|
||||
$line =~ s/\$ProductNameInternal\$/$nameProductInternal/gi;
|
||||
$line =~ s/\$MainExeFile\$/$fileMainExe/gi;
|
||||
$line =~ s/\$UninstallFile\$/$fileUninstall/gi;
|
||||
$line =~ s/\$UninstallFileZip\$/$fileUninstallZip/gi;
|
||||
|
@ -66,7 +66,7 @@ $userAgentShort = $ENV{WIZ_userAgentShort};
|
||||
$xpinstallVersion = $ENV{WIZ_xpinstallVersion};
|
||||
$nameCompany = $ENV{WIZ_nameCompany};
|
||||
$nameProduct = $ENV{WIZ_nameProduct};
|
||||
$nameProductNoVersion = $ENV{WIZ_nameProductNoVersion};
|
||||
$nameProductInternal = $ENV{WIZ_nameProductInternal};
|
||||
$fileMainExe = $ENV{WIZ_fileMainExe};
|
||||
$fileUninstall = $ENV{WIZ_fileUninstall};
|
||||
|
||||
@ -118,7 +118,7 @@ while($line = <fpInTemplate>)
|
||||
$line =~ s/\$XPInstallVersion\$/$xpinstallVersion/i;
|
||||
$line =~ s/\$CompanyName\$/$nameCompany/i;
|
||||
$line =~ s/\$ProductName\$/$nameProduct/i;
|
||||
$line =~ s/\$ProductNameNoVersion\$/$nameProductNoVersion/i;
|
||||
$line =~ s/\$ProductNameInternal\$/$nameProductInternal/i;
|
||||
$line =~ s/\$MainExeFile\$/$fileMainExe/i;
|
||||
$line =~ s/\$UninstallFile\$/$fileUninstall/i;
|
||||
}
|
||||
|
@ -61,6 +61,7 @@ $userAgentShort = $ENV{WIZ_userAgentShort};
|
||||
$xpinstallVersion = $ENV{WIZ_xpinstallVersion};
|
||||
$nameCompany = $ENV{WIZ_nameCompany};
|
||||
$nameProduct = $ENV{WIZ_nameProduct};
|
||||
$nameProductInternal = $ENV{WIZ_nameProductInternal};
|
||||
$fileMainExe = $ENV{WIZ_fileMainExe};
|
||||
$fileUninstall = $ENV{WIZ_fileUninstall};
|
||||
|
||||
@ -87,6 +88,7 @@ while($line = <fpInIt>)
|
||||
$line =~ s/\$XPInstallVersion\$/$xpinstallVersion/gi;
|
||||
$line =~ s/\$CompanyName\$/$nameCompany/gi;
|
||||
$line =~ s/\$ProductName\$/$nameProduct/gi;
|
||||
$line =~ s/\$ProductNameInternal\$/$nameProductInternal/gi;
|
||||
$line =~ s/\$MainExeFile\$/$fileMainExe/gi;
|
||||
$line =~ s/\$UninstallFile\$/$fileUninstall/gi;
|
||||
print fpOutIni $line;
|
||||
|
@ -12,7 +12,7 @@ Default AppID=$ProductName$User
|
||||
|
||||
Company Name=$CompanyName$
|
||||
Product Name=$ProductName$
|
||||
Product NameInternal=$ProductName$
|
||||
Product NameInternal=$ProductNameInternal$
|
||||
User Agent=$UserAgent$
|
||||
|
||||
; Destination Path values:
|
||||
@ -286,9 +286,9 @@ exe_param=
|
||||
Class Name=MozillaMessageWindow
|
||||
Window Name=
|
||||
;*** LOCALIZE ME BABY ***
|
||||
Message=Download of $ProductName$ was successful. $ProductNameNoVersion$ must be closed to proceed with installation. Click OK to exit $ProductNameNoVersion$ automatically and to begin installation.
|
||||
Message=Download of $ProductName$ was successful. $ProductNameInternal$ must be closed to proceed with installation. Click OK to exit $ProductNameInternal$ automatically and to begin installation.
|
||||
;*** LOCALIZE ME BABY ***
|
||||
Message Full Installer=$ProductNameNoVersion$ must be closed to proceed with installation. Click OK to exit $ProductNameNoVersion$ automatically and to begin installation.
|
||||
Message Full Installer=$ProductNameInternal$ must be closed to proceed with installation. Click OK to exit $ProductNameInternal$ automatically and to begin installation.
|
||||
|
||||
; This key indicates whether or not to close all the windows associated with
|
||||
; the process id of this app instance window found.
|
||||
|
@ -117,7 +117,7 @@ else
|
||||
print "The display version is: $versionMain\n";
|
||||
$ENV{WIZ_nameCompany} = "mozilla.org";
|
||||
$ENV{WIZ_nameProduct} = "MfcEmbed";
|
||||
$ENV{WIZ_nameProductNoVersion} = "MfcEmbed";
|
||||
$ENV{WIZ_nameProductInternal} = "MfcEmbed"; # product name without any version string
|
||||
$ENV{WIZ_fileMainExe} = "mfcembed.exe";
|
||||
$ENV{WIZ_fileUninstall} = $seuFileNameSpecific;
|
||||
$ENV{WIZ_fileUninstallZip} = $seuzFileNameSpecific;
|
||||
|
@ -89,7 +89,7 @@ $userAgentShort = $ENV{WIZ_userAgentShort};
|
||||
$xpinstallVersion = $ENV{WIZ_xpinstallVersion};
|
||||
$nameCompany = $ENV{WIZ_nameCompany};
|
||||
$nameProduct = $ENV{WIZ_nameProduct};
|
||||
$nameProductNoVersion = $ENV{WIZ_nameProductNoVersion};
|
||||
$nameProductInternal = $ENV{WIZ_nameProductInternal};
|
||||
$fileMainExe = $ENV{WIZ_fileMainExe};
|
||||
$fileUninstall = $ENV{WIZ_fileUninstall};
|
||||
$fileUninstallZip = $ENV{WIZ_fileUninstallZip};
|
||||
@ -194,7 +194,7 @@ while($line = <fpInIt>)
|
||||
$line =~ s/\$XPInstallVersion\$/$xpinstallVersion/gi;
|
||||
$line =~ s/\$CompanyName\$/$nameCompany/gi;
|
||||
$line =~ s/\$ProductName\$/$nameProduct/gi;
|
||||
$line =~ s/\$ProductNameNoVersion\$/$nameProductNoVersion/gi;
|
||||
$line =~ s/\$ProductNameInternal\$/$nameProductInternal/gi;
|
||||
$line =~ s/\$MainExeFile\$/$fileMainExe/gi;
|
||||
$line =~ s/\$UninstallFile\$/$fileUninstall/gi;
|
||||
$line =~ s/\$UninstallFileZip\$/$fileUninstallZip/gi;
|
||||
|
@ -66,7 +66,7 @@ $userAgentShort = $ENV{WIZ_userAgentShort};
|
||||
$xpinstallVersion = $ENV{WIZ_xpinstallVersion};
|
||||
$nameCompany = $ENV{WIZ_nameCompany};
|
||||
$nameProduct = $ENV{WIZ_nameProduct};
|
||||
$nameProductNoVersion = $ENV{WIZ_nameProductNoVersion};
|
||||
$nameProductInternal = $ENV{WIZ_nameProductInternal};
|
||||
$fileMainExe = $ENV{WIZ_fileMainExe};
|
||||
$fileUninstall = $ENV{WIZ_fileUninstall};
|
||||
|
||||
@ -118,7 +118,7 @@ while($line = <fpInTemplate>)
|
||||
$line =~ s/\$XPInstallVersion\$/$xpinstallVersion/i;
|
||||
$line =~ s/\$CompanyName\$/$nameCompany/i;
|
||||
$line =~ s/\$ProductName\$/$nameProduct/i;
|
||||
$line =~ s/\$ProductNameNoVersion\$/$nameProductNoVersion/i;
|
||||
$line =~ s/\$ProductNameInternal\$/$nameProductInternal/i;
|
||||
$line =~ s/\$MainExeFile\$/$fileMainExe/i;
|
||||
$line =~ s/\$UninstallFile\$/$fileUninstall/i;
|
||||
}
|
||||
|
@ -61,6 +61,7 @@ $userAgentShort = $ENV{WIZ_userAgentShort};
|
||||
$xpinstallVersion = $ENV{WIZ_xpinstallVersion};
|
||||
$nameCompany = $ENV{WIZ_nameCompany};
|
||||
$nameProduct = $ENV{WIZ_nameProduct};
|
||||
$nameProductInternal = $ENV{WIZ_nameProductInternal};
|
||||
$fileMainExe = $ENV{WIZ_fileMainExe};
|
||||
$fileUninstall = $ENV{WIZ_fileUninstall};
|
||||
|
||||
@ -87,6 +88,7 @@ while($line = <fpInIt>)
|
||||
$line =~ s/\$XPInstallVersion\$/$xpinstallVersion/gi;
|
||||
$line =~ s/\$CompanyName\$/$nameCompany/gi;
|
||||
$line =~ s/\$ProductName\$/$nameProduct/gi;
|
||||
$line =~ s/\$ProductNameInternal\$/$nameProductInternal/gi;
|
||||
$line =~ s/\$MainExeFile\$/$fileMainExe/gi;
|
||||
$line =~ s/\$UninstallFile\$/$fileUninstall/gi;
|
||||
print fpOutIni $line;
|
||||
|
@ -426,62 +426,67 @@ function upgradeCleanup()
|
||||
deleteThisFile("Chrome", "chrome.rdf");
|
||||
deleteThisFolder("Chrome", "overlayinfo");
|
||||
|
||||
// obsolete files that are now part of the GRE
|
||||
// installer package.
|
||||
deleteThisFile("Plugins", "npnul32.dll");
|
||||
deleteThisFile("Program", "gkgfx.dll");
|
||||
deleteThisFile("Program", "js3250.dll");
|
||||
deleteThisFile("Program", "mozctl.dll");
|
||||
deleteThisFile("Program", "mozctlx.dll");
|
||||
deleteThisFile("Program", "nss3.dll");
|
||||
deleteThisFile("Program", "nssckbi.dll");
|
||||
deleteThisFile("Program", "smime3.dll");
|
||||
deleteThisFile("Program", "softokn3.dll");
|
||||
deleteThisFile("Program", "ssl3.dll");
|
||||
deleteThisFile("Program", "xpcom.dll");
|
||||
deleteThisFile("Program", "xpistub.dll");
|
||||
deleteThisFile("Program", "zlib.dll");
|
||||
deleteThisFile("Components", "accessibility.dll");
|
||||
deleteThisFile("Components", "appshell.dll");
|
||||
deleteThisFile("Components", "caps.dll");
|
||||
deleteThisFile("Components", "chrome.dll");
|
||||
deleteThisFile("Components", "cookie.dll");
|
||||
deleteThisFile("Components", "docshell.dll");
|
||||
deleteThisFile("Components", "editor.dll");
|
||||
deleteThisFile("Components", "embedcomponents.dll");
|
||||
deleteThisFile("Components", "gkgfxwin.dll");
|
||||
deleteThisFile("Components", "gklayout.dll");
|
||||
deleteThisFile("Components", "gkparser.dll");
|
||||
deleteThisFile("Components", "gkplugin.dll");
|
||||
deleteThisFile("Components", "gkview.dll");
|
||||
deleteThisFile("Components", "gkwidget.dll");
|
||||
deleteThisFile("Components", "i18n.dll");
|
||||
deleteThisFile("Components", "imgicon.dll");
|
||||
deleteThisFile("Components", "imglib2.dll");
|
||||
deleteThisFile("Components", "imgmng.dll");
|
||||
deleteThisFile("Components", "jar50.dll");
|
||||
deleteThisFile("Components", "jsdom.dll");
|
||||
deleteThisFile("Components", "jsurl.dll");
|
||||
deleteThisFile("Components", "necko.dll");
|
||||
deleteThisFile("Components", "necko2.dll");
|
||||
deleteThisFile("Components", "nsDownloadProgressListener.js");
|
||||
deleteThisFile("Components", "nsHelperAppDlg.js");
|
||||
deleteThisFile("Components", "nsProgressDialog.js");
|
||||
deleteThisFile("Components", "oji.dll");
|
||||
deleteThisFile("Components", "pipboot.dll");
|
||||
deleteThisFile("Components", "pipnss.dll");
|
||||
deleteThisFile("Components", "profile.dll");
|
||||
deleteThisFile("Components", "rdf.dll");
|
||||
deleteThisFile("Components", "shistory.dll");
|
||||
deleteThisFile("Components", "uconv.dll");
|
||||
deleteThisFile("Components", "ucvmath.dll");
|
||||
deleteThisFile("Components", "urildr.dll");
|
||||
deleteThisFile("Components", "wallet.dll");
|
||||
deleteThisFile("Components", "webbrwsr.dll");
|
||||
deleteThisFile("Components", "xmlextras.dll");
|
||||
deleteThisFile("Components", "xpc3250.dll");
|
||||
deleteThisFile("Components", "xpinstal.dll");
|
||||
deleteThisFile("Components", "xppref32.dll");
|
||||
if(!gGreLocal)
|
||||
{
|
||||
// If GRE is not local, meaning it's installed in a
|
||||
// global area, then cleanup obsolete files that are
|
||||
// now part of the GRE installer package.
|
||||
deleteThisFile("Plugins", "npnul32.dll");
|
||||
deleteThisFile("Program", "gkgfx.dll");
|
||||
deleteThisFile("Program", "js3250.dll");
|
||||
deleteThisFile("Program", "jsj3250.dll");
|
||||
deleteThisFile("Program", "mozctl.dll");
|
||||
deleteThisFile("Program", "mozctlx.dll");
|
||||
deleteThisFile("Program", "nss3.dll");
|
||||
deleteThisFile("Program", "nssckbi.dll");
|
||||
deleteThisFile("Program", "smime3.dll");
|
||||
deleteThisFile("Program", "softokn3.dll");
|
||||
deleteThisFile("Program", "ssl3.dll");
|
||||
deleteThisFile("Program", "xpcom.dll");
|
||||
deleteThisFile("Program", "xpistub.dll");
|
||||
deleteThisFile("Program", "zlib.dll");
|
||||
deleteThisFile("Components", "accessibility.dll");
|
||||
deleteThisFile("Components", "appshell.dll");
|
||||
deleteThisFile("Components", "caps.dll");
|
||||
deleteThisFile("Components", "chrome.dll");
|
||||
deleteThisFile("Components", "cookie.dll");
|
||||
deleteThisFile("Components", "docshell.dll");
|
||||
deleteThisFile("Components", "editor.dll");
|
||||
deleteThisFile("Components", "embedcomponents.dll");
|
||||
deleteThisFile("Components", "gkgfxwin.dll");
|
||||
deleteThisFile("Components", "gklayout.dll");
|
||||
deleteThisFile("Components", "gkparser.dll");
|
||||
deleteThisFile("Components", "gkplugin.dll");
|
||||
deleteThisFile("Components", "gkview.dll");
|
||||
deleteThisFile("Components", "gkwidget.dll");
|
||||
deleteThisFile("Components", "i18n.dll");
|
||||
deleteThisFile("Components", "imgicon.dll");
|
||||
deleteThisFile("Components", "imglib2.dll");
|
||||
deleteThisFile("Components", "imgmng.dll");
|
||||
deleteThisFile("Components", "jar50.dll");
|
||||
deleteThisFile("Components", "jsdom.dll");
|
||||
deleteThisFile("Components", "jsurl.dll");
|
||||
deleteThisFile("Components", "necko.dll");
|
||||
deleteThisFile("Components", "necko2.dll");
|
||||
deleteThisFile("Components", "nsDownloadProgressListener.js");
|
||||
deleteThisFile("Components", "nsHelperAppDlg.js");
|
||||
deleteThisFile("Components", "nsProgressDialog.js");
|
||||
deleteThisFile("Components", "oji.dll");
|
||||
deleteThisFile("Components", "pipboot.dll");
|
||||
deleteThisFile("Components", "pipnss.dll");
|
||||
deleteThisFile("Components", "profile.dll");
|
||||
deleteThisFile("Components", "rdf.dll");
|
||||
deleteThisFile("Components", "shistory.dll");
|
||||
deleteThisFile("Components", "uconv.dll");
|
||||
deleteThisFile("Components", "ucvmath.dll");
|
||||
deleteThisFile("Components", "urildr.dll");
|
||||
deleteThisFile("Components", "wallet.dll");
|
||||
deleteThisFile("Components", "webbrwsr.dll");
|
||||
deleteThisFile("Components", "xmlextras.dll");
|
||||
deleteThisFile("Components", "xpc3250.dll");
|
||||
deleteThisFile("Components", "xpinstal.dll");
|
||||
deleteThisFile("Components", "xppref32.dll");
|
||||
}
|
||||
}
|
||||
|
||||
// main
|
||||
@ -494,6 +499,17 @@ var fileComponentRegStr;
|
||||
var fileComponentReg;
|
||||
var restrictedAccess;
|
||||
var fileToRegister;
|
||||
var args;
|
||||
var gGreLocal = false;
|
||||
|
||||
args = new String(Install.arguments);
|
||||
logComment("args: " + args);
|
||||
|
||||
// If -gGreLocal is passed in, then we need to *not* cleanup GRE files if they
|
||||
// exist in the browser dir.
|
||||
// The default is to delete any GRE files because we default GRE will be global.
|
||||
if(args == "-greLocal")
|
||||
gGreLocal = true;
|
||||
|
||||
srDest = $SpaceRequired$:bin;
|
||||
err = initInstall("$ProductName$", "Browser", "$Version$");
|
||||
|
@ -91,6 +91,33 @@ Default Setup Type=Setup Type 1
|
||||
; TRUE
|
||||
Refresh Icons=FALSE
|
||||
|
||||
; Setting to control whether or not GRE should be installed to app's dir
|
||||
; to be used as a private/local GRE.
|
||||
;
|
||||
; Possible values (default is 'Shared'):
|
||||
; Local
|
||||
; Shared
|
||||
;
|
||||
; If this key is set to 'Local', make
|
||||
; sure to provide a GRE Private Key= below!
|
||||
GRE Type=Local
|
||||
|
||||
; Private key that overrides the default shared key
|
||||
; (HKEY_LOCAL_MACHINE\Software\mozilla.org\GRE) set by GRE's installer.
|
||||
; This key will be created under HKEY_LOCAL_MACHINE and should be
|
||||
; declared in the following format:
|
||||
;
|
||||
; Software\[company name]\[product name]
|
||||
; (ie: Software\mozilla.org\GRE_PRIVATE)
|
||||
;
|
||||
; If it is not in the above format, the GRE installer/uninstaller can
|
||||
; fail to work properly.
|
||||
; The value to Prodduct Name Internal= (at the beginning of this
|
||||
; config.ini file) will be appended as follows:
|
||||
;
|
||||
; Software\mozilla.org\GRE_PRIVATE_[Product Name Internal]
|
||||
GRE Private Key=Software\mozilla.org\GRE_PRIVATE
|
||||
|
||||
; This section contains info on how to send error information in case of
|
||||
; either a download or xpinstall error.
|
||||
; By default, this feature is enabled, unless disabled.
|
||||
@ -371,9 +398,9 @@ Show Dialog=AUTO
|
||||
Class Name=MozillaMessageWindow
|
||||
Window Name=
|
||||
;*** LOCALIZE ME BABY ***
|
||||
Message=Download of $ProductName$ was successful. $ProductNameNoVersion$ must be closed to proceed with installation. Click OK to exit $ProductNameNoVersion$ automatically and to begin installation.
|
||||
Message=Download of $ProductName$ was successful. $ProductNameInternal$ must be closed to proceed with installation. Click OK to exit $ProductNameInternal$ automatically and to begin installation.
|
||||
;*** LOCALIZE ME BABY ***
|
||||
Message Full Installer=$ProductNameNoVersion$ must be closed to proceed with installation. Click OK to exit $ProductNameNoVersion$ automatically and to begin installation.
|
||||
Message Full Installer=$ProductNameInternal$ must be closed to proceed with installation. Click OK to exit $ProductNameInternal$ automatically and to begin installation.
|
||||
|
||||
; This key indicates whether or not to close all the windows associated with
|
||||
; the process id of this app instance window found.
|
||||
|
@ -213,7 +213,7 @@ function createShortcuts()
|
||||
// Register as a windows XP mail application
|
||||
if( IsWinnt() )
|
||||
{
|
||||
subkey = "Software\\Clients\\Mail\\$ProductNameNoVersion$";
|
||||
subkey = "Software\\Clients\\Mail\\$ProductNameInternal$";
|
||||
winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
|
||||
|
||||
winreg.createKey(subkey,"");
|
||||
|
@ -127,8 +127,7 @@ copy("$gDirDistInstGre/$seiGreFileNameSpecific", "$gDirStageProduct/gre") ||
|
||||
$versionLanguage = "en";
|
||||
$ENV{WIZ_nameCompany} = "mozilla.org";
|
||||
$ENV{WIZ_nameProduct} = "Mozilla";
|
||||
$ENV{WIZ_nameProductNoVersion} = "Mozilla";
|
||||
$ENV{WIZ_nameProductInternal} = $ENV{WIZ_nameProductNoVersion};
|
||||
$ENV{WIZ_nameProductInternal} = "Mozilla"; # product name without the version string
|
||||
$ENV{WIZ_fileMainExe} = "Mozilla.exe";
|
||||
$ENV{WIZ_fileUninstall} = $seuFileNameSpecific;
|
||||
$ENV{WIZ_fileUninstallZip} = $seuzFileNameSpecific;
|
||||
|
@ -89,7 +89,6 @@ $userAgentShort = $ENV{WIZ_userAgentShort};
|
||||
$xpinstallVersion = $ENV{WIZ_xpinstallVersion};
|
||||
$nameCompany = $ENV{WIZ_nameCompany};
|
||||
$nameProduct = $ENV{WIZ_nameProduct};
|
||||
$nameProductNoVersion = $ENV{WIZ_nameProductNoVersion};
|
||||
$nameProductInternal = $ENV{WIZ_nameProductInternal};
|
||||
$fileMainExe = $ENV{WIZ_fileMainExe};
|
||||
$fileUninstall = $ENV{WIZ_fileUninstall};
|
||||
@ -200,7 +199,6 @@ while($line = <fpInIt>)
|
||||
$line =~ s/\$XPInstallVersion\$/$xpinstallVersion/gi;
|
||||
$line =~ s/\$CompanyName\$/$nameCompany/gi;
|
||||
$line =~ s/\$ProductName\$/$nameProduct/gi;
|
||||
$line =~ s/\$ProductNameNoVersion\$/$nameProductNoVersion/gi;
|
||||
$line =~ s/\$ProductNameInternal\$/$nameProductInternal/gi;
|
||||
$line =~ s/\$MainExeFile\$/$fileMainExe/gi;
|
||||
$line =~ s/\$UninstallFile\$/$fileUninstall/gi;
|
||||
|
@ -66,7 +66,6 @@ $userAgentShort = $ENV{WIZ_userAgentShort};
|
||||
$xpinstallVersion = $ENV{WIZ_xpinstallVersion};
|
||||
$nameCompany = $ENV{WIZ_nameCompany};
|
||||
$nameProduct = $ENV{WIZ_nameProduct};
|
||||
$nameProductNoVersion = $ENV{WIZ_nameProductNoVersion};
|
||||
$nameProductInternal = $ENV{WIZ_nameProductInternal};
|
||||
$fileMainExe = $ENV{WIZ_fileMainExe};
|
||||
$fileUninstall = $ENV{WIZ_fileUninstall};
|
||||
@ -119,7 +118,6 @@ while($line = <fpInTemplate>)
|
||||
$line =~ s/\$XPInstallVersion\$/$xpinstallVersion/i;
|
||||
$line =~ s/\$CompanyName\$/$nameCompany/i;
|
||||
$line =~ s/\$ProductName\$/$nameProduct/i;
|
||||
$line =~ s/\$ProductNameNoVersion\$/$nameProductNoVersion/i;
|
||||
$line =~ s/\$ProductNameInternal\$/$nameProductInternal/gi;
|
||||
$line =~ s/\$MainExeFile\$/$fileMainExe/i;
|
||||
$line =~ s/\$UninstallFile\$/$fileUninstall/i;
|
||||
|
@ -69,6 +69,7 @@ DWORD PX_PROCESS;
|
||||
DWORD PX_THREAD;
|
||||
HRESULT InitGre(greInfo *gre);
|
||||
void DeInitGre(greInfo *gre);
|
||||
void UpdateGreInstallerCmdLine(char *aParameter, DWORD aParameterBufSize);
|
||||
void LaunchExistingGreInstaller(greInfo *gre);
|
||||
void UpdateGREAppInstallerProgress(int percent);
|
||||
HRESULT GetInstalledGreConfigIni(greInfo *aGre, char *aGreConfigIni, DWORD aGreConfigIniBufSize);
|
||||
@ -2032,6 +2033,40 @@ void ParsePath(LPSTR szInput, LPSTR szOutput, DWORD dwOutputSize, BOOL bURLPath,
|
||||
}
|
||||
}
|
||||
|
||||
/* Function: UpdateGreInstallerCmdLine()
|
||||
* in/out: char *aParameter.
|
||||
* purpose: To update the default GRE installer's command line parameters
|
||||
* with new defaults depending on config.ini or cmdline arguments
|
||||
* to this app's installer.
|
||||
*/
|
||||
void UpdateGreInstallerCmdLine(char *aParameter, DWORD aParameterBufSize)
|
||||
{
|
||||
/* Force the install of GRE if '-greForce' is passed or if GRE
|
||||
* is to be local.
|
||||
*
|
||||
* Passing '-f' to GRE's installer will force it to install
|
||||
* regardless of version found on system. If '-f' is already
|
||||
* present in the parameter, it will do no harm to pass it again. */
|
||||
if(gbForceInstallGre || (sgProduct.greType == GRE_LOCAL))
|
||||
lstrcat(aParameter, " -f");
|
||||
|
||||
/* If GRE is to be local, then instruct the GRE's installer to
|
||||
* install to this application's destination path stored in
|
||||
* sgProduct.szPath.
|
||||
*
|
||||
* We need to also instruct the GRE's installer to create a
|
||||
* private windows registry GRE key instead of the default one, so
|
||||
* that other apps attempting to use the global GRE will not find
|
||||
* this private, local copy. They should not find this copy! */
|
||||
if(sgProduct.greType == GRE_LOCAL)
|
||||
{
|
||||
char buf[MAX_BUF];
|
||||
|
||||
wsprintf(buf, " -dd \"%s\" -reg_path %s", sgProduct.szPath, sgProduct.grePrivateKey);
|
||||
lstrcat(aParameter, buf);
|
||||
}
|
||||
}
|
||||
|
||||
/* Function: GetInstalledGreConfigIni()
|
||||
* in: greInfo *aGre: gre class containing the location of GRE
|
||||
* already installed.
|
||||
@ -2051,7 +2086,7 @@ HRESULT GetInstalledGreConfigIni(greInfo *aGre, char *aGreConfigIni, DWORD aGreC
|
||||
*aGreConfigIni = '\0';
|
||||
MozCopyStr(aGre->homePath, buf, sizeof(buf));
|
||||
AppendBackSlash(buf, sizeof(buf));
|
||||
wsprintf(aGreConfigIni, "%sSetup\\%s", buf, FILE_INI_CONFIG);
|
||||
wsprintf(aGreConfigIni, "%s%s\\%s", buf, GRE_SETUP_DIR_NAME, FILE_INI_CONFIG);
|
||||
return(WIZ_OK);
|
||||
}
|
||||
|
||||
@ -2101,6 +2136,14 @@ void GetGrePathFromGreInstaller(char *aGreInstallerFile, greInfo *aGre)
|
||||
if(!aGre)
|
||||
return;
|
||||
|
||||
/* If GRE is to be installed locally, then set it to the
|
||||
* application's destination path. */
|
||||
if(sgProduct.greType == GRE_LOCAL)
|
||||
{
|
||||
MozCopyStr(sgProduct.szPath, aGre->homePath, sizeof(aGre->homePath));
|
||||
return;
|
||||
}
|
||||
|
||||
*aGre->homePath = '\0';
|
||||
|
||||
/* uncompress gre installer's config.ini file in order to parse for:
|
||||
@ -2190,13 +2233,7 @@ void LaunchOneComponent(siC *siCObject, greInfo *aGre)
|
||||
if(aGre)
|
||||
{
|
||||
GetGrePathFromGreInstaller(szSpawnFile, aGre);
|
||||
|
||||
/* Force the install of GRE if '-fgre' is passed.
|
||||
* Passing '-f' to GRE's installer will force it to install
|
||||
* regardless of version found on system. If '-f' is already
|
||||
* present in the parameter, it will do no harm to pass it again. */
|
||||
if(gbForceInstallGre)
|
||||
lstrcat(szParameterBuf, " -f");
|
||||
UpdateGreInstallerCmdLine(szParameterBuf, sizeof(szParameterBuf));
|
||||
}
|
||||
|
||||
LogISLaunchAppsComponent(siCObject->szDescriptionShort);
|
||||
@ -2297,11 +2334,22 @@ HRESULT ProcessGre(greInfo *aGre)
|
||||
*/
|
||||
if(GetInfoFromInstalledGreConfigIni(aGre) == WIZ_OK)
|
||||
{
|
||||
wsprintf(greUninstallCommand,
|
||||
"\"%s\" -mmi -ms -app %s -ua \"%s\"",
|
||||
aGre->uninstallerAppPath,
|
||||
sgProduct.szProductNameInternal,
|
||||
aGre->userAgent);
|
||||
/* If were installing GRE locally, then update the app's uninstall command
|
||||
* to pass the local/private windows GRE key path to GRE's uninstaller
|
||||
* during uninstall. */
|
||||
if(sgProduct.greType == GRE_LOCAL)
|
||||
wsprintf(greUninstallCommand,
|
||||
"\"%s\" -mmi -ms -app %s -ua \"%s\" -reg_path %s",
|
||||
aGre->uninstallerAppPath,
|
||||
sgProduct.szProductNameInternal,
|
||||
aGre->userAgent,
|
||||
sgProduct.grePrivateKey);
|
||||
else
|
||||
wsprintf(greUninstallCommand,
|
||||
"\"%s\" -mmi -ms -app %s -ua \"%s\"",
|
||||
aGre->uninstallerAppPath,
|
||||
sgProduct.szProductNameInternal,
|
||||
aGre->userAgent);
|
||||
UpdateInstallLog(KEY_UNINSTALL_COMMAND, greUninstallCommand, DNU_UNINSTALL);
|
||||
}
|
||||
return(WIZ_OK);
|
||||
@ -2876,6 +2924,7 @@ HRESULT InitSetupGeneral()
|
||||
sgProduct.mode = NOT_SET;
|
||||
sgProduct.bSharedInst = FALSE;
|
||||
sgProduct.bInstallFiles = TRUE;
|
||||
sgProduct.greType = GRE_TYPE_NOT_SET;
|
||||
sgProduct.dwCustomType = ST_RADIO0;
|
||||
sgProduct.dwNumberOfComponents = 0;
|
||||
sgProduct.bLockPath = FALSE;
|
||||
@ -2918,6 +2967,8 @@ HRESULT InitSetupGeneral()
|
||||
if((sgProduct.szRegPath = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
return(1);
|
||||
|
||||
*sgProduct.grePrivateKey = '\0';
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
@ -5291,9 +5342,12 @@ void PrintUsage(void)
|
||||
* -app: ID of application which is launching the installer (Shared installs)
|
||||
* -app_path: Points to representative file of app (Shared installs)
|
||||
* -dd [path]: Suggested install destination directory. (Shared installs)
|
||||
* -greLocal: Forces GRE to be installed into the application dir.
|
||||
* -greShared: Forces GRE to be installed into a global, shared dir (normally
|
||||
* c:\program files\common files\mozilla.org\GRE
|
||||
* -f: Force install of GRE installer (Shared installs), though it'll work
|
||||
* for non GRE installers too.
|
||||
* -fgre: Force 'Component GRE' to be downloaded, run, and installed. This
|
||||
* -greForce: Force 'Component GRE' to be downloaded, run, and installed. This
|
||||
* bypasses GRE's logic of determining when to install by running its
|
||||
* installer with a '-f' flag.
|
||||
* -n [filename]: setup's parent's process filename
|
||||
@ -5355,10 +5409,18 @@ DWORD ParseCommandLine(LPSTR lpszCmdLine)
|
||||
GetArgV(lpszCmdLine, i, szArgVBuf, sizeof(szArgVBuf));
|
||||
lstrcpy(sgProduct.szAlternateArchiveSearchPath, szArgVBuf);
|
||||
}
|
||||
else if(!lstrcmpi(szArgVBuf, "-fgre") || !lstrcmpi(szArgVBuf, "/fgre"))
|
||||
else if(!lstrcmpi(szArgVBuf, "-greForce") || !lstrcmpi(szArgVBuf, "/greForce"))
|
||||
{
|
||||
gbForceInstallGre = TRUE;
|
||||
}
|
||||
else if(!lstrcmpi(szArgVBuf, "-greLocal") || !lstrcmpi(szArgVBuf, "/greLocal"))
|
||||
{
|
||||
sgProduct.greType = GRE_LOCAL;
|
||||
}
|
||||
else if(!lstrcmpi(szArgVBuf, "-greShared") || !lstrcmpi(szArgVBuf, "/greShared"))
|
||||
{
|
||||
sgProduct.greType = GRE_SHARED;
|
||||
}
|
||||
else if(!lstrcmpi(szArgVBuf, "-f") || !lstrcmpi(szArgVBuf, "/f"))
|
||||
{
|
||||
gbForceInstall = TRUE;
|
||||
@ -6255,6 +6317,26 @@ HRESULT ParseConfigIni(LPSTR lpszCmdLine)
|
||||
if(lstrcmpi(szBuf, "TRUE") == 0)
|
||||
gSystemInfo.bRefreshIcons = TRUE;
|
||||
|
||||
/* Set default value for greType if not already set. If already set,
|
||||
* it was set via cmdline argumen. Do not override the setting. */
|
||||
if(sgProduct.greType == GRE_TYPE_NOT_SET)
|
||||
{
|
||||
sgProduct.greType = GRE_SHARED; /* Always default to installing GRE to global area. */
|
||||
GetPrivateProfileString("General", "GRE Type", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
if(lstrcmpi(szBuf, "Local") == 0)
|
||||
sgProduct.greType = GRE_LOCAL;
|
||||
else
|
||||
sgProduct.greType = GRE_SHARED;
|
||||
}
|
||||
|
||||
GetPrivateProfileString("General", "GRE Private Key", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
if(*szBuf != '\0')
|
||||
{
|
||||
DecryptString(sgProduct.grePrivateKey, szBuf);
|
||||
lstrcat(sgProduct.grePrivateKey, "_");
|
||||
lstrcat(sgProduct.grePrivateKey, sgProduct.szProductNameInternal);
|
||||
}
|
||||
|
||||
/* Welcome dialog */
|
||||
GetPrivateProfileString("Dialog Welcome", "Show Dialog", "", szShowDialog, sizeof(szShowDialog), szFileIniConfig);
|
||||
GetPrivateProfileString("Dialog Welcome", "Title", "", diWelcome.szTitle, MAX_BUF, szFileIniConfig);
|
||||
@ -7948,6 +8030,15 @@ char *GetSaveInstallerPath(char *szBuf, DWORD dwBufSize)
|
||||
#endif
|
||||
lstrcat(szBuf, "Setup");
|
||||
|
||||
/* We need to have the product name be part of the Setup directory name.
|
||||
* This is because if GRE is installed ontop of this app, GRE's saved files
|
||||
* will overwrite files of the same name for this app. */
|
||||
if(*sgProduct.szProductNameInternal != '\0')
|
||||
{
|
||||
lstrcat(szBuf, " ");
|
||||
lstrcat(szBuf, sgProduct.szProductNameInternal);
|
||||
}
|
||||
|
||||
return(szBuf);
|
||||
}
|
||||
|
||||
|
@ -106,6 +106,13 @@ typedef int PRInt32;
|
||||
#define STATUS_DISABLED 0
|
||||
#define STATUS_ENABLED 1
|
||||
|
||||
#define GRE_SETUP_DIR_NAME "Setup GRE"
|
||||
|
||||
/* LOCAL GRE defines */
|
||||
#define GRE_TYPE_NOT_SET -1
|
||||
#define GRE_SHARED 0
|
||||
#define GRE_LOCAL 1
|
||||
|
||||
/* WS: WinSpawn wait values */
|
||||
#define WS_DO_NOT_WAIT FALSE
|
||||
#define WS_WAIT TRUE
|
||||
@ -429,6 +436,7 @@ typedef struct dlgReboot
|
||||
typedef struct setupStruct
|
||||
{
|
||||
int mode;
|
||||
int greType;
|
||||
DWORD dwCustomType;
|
||||
DWORD dwNumberOfComponents;
|
||||
LPSTR szPath;
|
||||
@ -450,6 +458,7 @@ typedef struct setupStruct
|
||||
LPSTR szAppID;
|
||||
LPSTR szAppPath;
|
||||
LPSTR szRegPath;
|
||||
char grePrivateKey[MAX_BUF];
|
||||
} setupGen;
|
||||
|
||||
typedef struct sinfoSmartDownload
|
||||
|
@ -222,6 +222,7 @@ HRESULT SmartUpdateJars()
|
||||
char szMsgSmartUpdateStart[MAX_BUF];
|
||||
char szDlgExtractingTitle[MAX_BUF];
|
||||
char xpinstallPath[MAX_BUF];
|
||||
char xpiArgs[MAX_BUF];
|
||||
|
||||
if(!GetPrivateProfileString("Messages", "MSG_SMARTUPDATE_START", "", szMsgSmartUpdateStart, sizeof(szMsgSmartUpdateStart), szFileIniInstall))
|
||||
return(1);
|
||||
@ -312,7 +313,22 @@ HRESULT SmartUpdateJars()
|
||||
SetDlgItemText(dlgInfo.hWndDlg, IDC_STATUS0, szBuf);
|
||||
LogISXPInstallComponent(siCObject->szDescriptionShort);
|
||||
|
||||
hrResult = pfnXpiInstall(szArchive, sgProduct.szRegPath, 0xFFFF);
|
||||
/* XXX fix: we need to better support passing arguments to .xpi files.
|
||||
* This is a temporary hack to get greType passed to browser.xpi so that
|
||||
* it won't delete GRE files if GRE is installed in the mozilla dir.
|
||||
*
|
||||
* What should be done is have the arguments be described in each
|
||||
* component's section in config.ini and have it passed thru here. */
|
||||
*xpiArgs = '\0';
|
||||
if(lstrcmpi(siCObject->szArchiveName, "gre.xpi") == 0)
|
||||
MozCopyStr(sgProduct.szRegPath, xpiArgs, sizeof(xpiArgs));
|
||||
else if((lstrcmpi(siCObject->szArchiveName, "browser.xpi") == 0) &&
|
||||
(sgProduct.greType == GRE_LOCAL))
|
||||
/* passing -greShared to browser.xpi will tell it to cleanup GRE files
|
||||
* from it's directory if they exist. */
|
||||
MozCopyStr("-greLocal", xpiArgs, sizeof(xpiArgs));
|
||||
|
||||
hrResult = pfnXpiInstall(szArchive, xpiArgs, 0xFFFF);
|
||||
if(hrResult == E_REBOOT)
|
||||
bReboot = TRUE;
|
||||
else if((hrResult != WIZ_OK) &&
|
||||
|
Loading…
Reference in New Issue
Block a user