summaryrefslogtreecommitdiffstats
path: root/application/basilisk/installer/windows/nsis/installer.nsi
diff options
context:
space:
mode:
Diffstat (limited to 'application/basilisk/installer/windows/nsis/installer.nsi')
-rw-r--r--application/basilisk/installer/windows/nsis/installer.nsi1301
1 files changed, 0 insertions, 1301 deletions
diff --git a/application/basilisk/installer/windows/nsis/installer.nsi b/application/basilisk/installer/windows/nsis/installer.nsi
deleted file mode 100644
index 570403553..000000000
--- a/application/basilisk/installer/windows/nsis/installer.nsi
+++ /dev/null
@@ -1,1301 +0,0 @@
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-# Required Plugins:
-# AppAssocReg http://nsis.sourceforge.net/Application_Association_Registration_plug-in
-# ApplicationID http://nsis.sourceforge.net/ApplicationID_plug-in
-# CityHash http://dxr.mozilla.org/mozilla-central/source/other-licenses/nsis/Contrib/CityHash
-# ShellLink http://nsis.sourceforge.net/ShellLink_plug-in
-# UAC http://nsis.sourceforge.net/UAC_plug-in
-# ServicesHelper Mozilla specific plugin that is located in /other-licenses/nsis
-
-; Set verbosity to 3 (e.g. no script) to lessen the noise in the build logs
-!verbose 3
-
-; 7-Zip provides better compression than the lzma from NSIS so we add the files
-; uncompressed and use 7-Zip to create a SFX archive of it
-SetDatablockOptimize on
-SetCompress off
-CRCCheck on
-
-RequestExecutionLevel user
-
-; The commands inside this ifdef require NSIS 3.0a2 or greater so the ifdef can
-; be removed after we require NSIS 3.0a2 or greater.
-!ifdef NSIS_PACKEDVERSION
- Unicode true
- ManifestSupportedOS all
- ManifestDPIAware true
-!endif
-
-!addplugindir ./
-
-Var TmpVal
-Var InstallType
-Var AddStartMenuSC
-Var AddTaskbarSC
-Var AddQuickLaunchSC
-Var AddDesktopSC
-Var InstallMaintenanceService
-Var PageName
-Var PreventRebootRequired
-
-; By defining NO_STARTMENU_DIR an installer that doesn't provide an option for
-; an application's Start Menu PROGRAMS directory and doesn't define the
-; StartMenuDir variable can use the common InstallOnInitCommon macro.
-!define NO_STARTMENU_DIR
-
-; On Vista and above attempt to elevate Standard Users in addition to users that
-; are a member of the Administrators group.
-!define NONADMIN_ELEVATE
-
-!define AbortSurveyURL "http://www.kampyle.com/feedback_form/ff-feedback-form.php?site_code=8166124&form_id=12116&url="
-
-; Other included files may depend upon these includes!
-; The following includes are provided by NSIS.
-!include FileFunc.nsh
-!include LogicLib.nsh
-!include MUI.nsh
-!include WinMessages.nsh
-!include WinVer.nsh
-!include WordFunc.nsh
-
-!insertmacro GetOptions
-!insertmacro GetParameters
-!insertmacro GetSize
-!insertmacro StrFilter
-!insertmacro WordFind
-!insertmacro WordReplace
-
-; The following includes are custom.
-!include branding.nsi
-!include defines.nsi
-!include common.nsh
-!include locales.nsi
-
-VIAddVersionKey "FileDescription" "${BrandShortName} Installer"
-VIAddVersionKey "OriginalFilename" "setup.exe"
-
-; Must be inserted before other macros that use logging
-!insertmacro _LoggingCommon
-
-!insertmacro AddDisabledDDEHandlerValues
-!insertmacro ChangeMUIHeaderImage
-!insertmacro CheckForFilesInUse
-!insertmacro CleanUpdateDirectories
-!insertmacro CopyFilesFromDir
-!insertmacro CreateRegKey
-!insertmacro GetLongPath
-!insertmacro GetPathFromString
-!insertmacro GetParent
-!insertmacro InitHashAppModelId
-!insertmacro IsHandlerForInstallDir
-!insertmacro IsPinnedToTaskBar
-!insertmacro IsUserAdmin
-!insertmacro LogDesktopShortcut
-!insertmacro LogQuickLaunchShortcut
-!insertmacro LogStartMenuShortcut
-!insertmacro ManualCloseAppPrompt
-!insertmacro PinnedToStartMenuLnkCount
-!insertmacro RegCleanAppHandler
-!insertmacro RegCleanMain
-!insertmacro RegCleanUninstall
-!insertmacro RemovePrecompleteEntries
-!insertmacro SetAppLSPCategories
-!insertmacro SetBrandNameVars
-!insertmacro UpdateShortcutAppModelIDs
-!insertmacro UnloadUAC
-!insertmacro WriteRegStr2
-!insertmacro WriteRegDWORD2
-
-!include shared.nsh
-
-; Helper macros for ui callbacks. Insert these after shared.nsh
-!insertmacro CheckCustomCommon
-!insertmacro InstallEndCleanupCommon
-!insertmacro InstallOnInitCommon
-!insertmacro InstallStartCleanupCommon
-!insertmacro LeaveDirectoryCommon
-!insertmacro LeaveOptionsCommon
-!insertmacro OnEndCommon
-!insertmacro PreDirectoryCommon
-
-Name "${BrandFullName}"
-OutFile "setup.exe"
-!ifdef HAVE_64BIT_BUILD
- InstallDir "$PROGRAMFILES64\${BrandFullName}\"
-!else
- InstallDir "$PROGRAMFILES32\${BrandFullName}\"
-!endif
-ShowInstDetails nevershow
-
-################################################################################
-# Modern User Interface - MUI
-
-!define MOZ_MUI_CUSTOM_ABORT
-!define MUI_CUSTOMFUNCTION_ABORT "CustomAbort"
-!define MUI_ICON setup.ico
-!define MUI_UNICON setup.ico
-!define MUI_WELCOMEPAGE_TITLE_3LINES
-!define MUI_HEADERIMAGE
-!define MUI_HEADERIMAGE_RIGHT
-!define MUI_WELCOMEFINISHPAGE_BITMAP wizWatermark.bmp
-
-; Use a right to left header image when the language is right to left
-!ifdef ${AB_CD}_rtl
-!define MUI_HEADERIMAGE_BITMAP_RTL wizHeaderRTL.bmp
-!else
-!define MUI_HEADERIMAGE_BITMAP wizHeader.bmp
-!endif
-
-/**
- * Installation Pages
- */
-; Welcome Page
-!define MUI_PAGE_CUSTOMFUNCTION_PRE preWelcome
-!insertmacro MUI_PAGE_WELCOME
-
-; Custom Options Page
-Page custom preOptions leaveOptions
-
-; Select Install Directory Page
-!define MUI_PAGE_CUSTOMFUNCTION_PRE preDirectory
-!define MUI_PAGE_CUSTOMFUNCTION_LEAVE leaveDirectory
-!define MUI_DIRECTORYPAGE_VERIFYONLEAVE
-!insertmacro MUI_PAGE_DIRECTORY
-
-; Custom Components Page
-!ifdef MOZ_MAINTENANCE_SERVICE
-Page custom preComponents leaveComponents
-!endif
-
-; Custom Shortcuts Page
-Page custom preShortcuts leaveShortcuts
-
-; Custom Summary Page
-Page custom preSummary leaveSummary
-
-; Install Files Page
-!insertmacro MUI_PAGE_INSTFILES
-
-; Finish Page
-!define MUI_FINISHPAGE_TITLE_3LINES
-!define MUI_FINISHPAGE_RUN
-!define MUI_FINISHPAGE_RUN_FUNCTION LaunchApp
-!define MUI_FINISHPAGE_RUN_TEXT $(LAUNCH_TEXT)
-!define MUI_PAGE_CUSTOMFUNCTION_PRE preFinish
-!insertmacro MUI_PAGE_FINISH
-
-; Use the default dialog for IDD_VERIFY for a simple Banner
-ChangeUI IDD_VERIFY "${NSISDIR}\Contrib\UIs\default.exe"
-
-################################################################################
-# Install Sections
-
-; Cleanup operations to perform at the start of the installation.
-Section "-InstallStartCleanup"
- SetDetailsPrint both
- DetailPrint $(STATUS_CLEANUP)
- SetDetailsPrint none
-
- SetOutPath "$INSTDIR"
- ${StartInstallLog} "${BrandFullName}" "${AB_CD}" "${AppVersion}" "${GREVersion}"
-
- StrCpy $R9 "true"
- StrCpy $PreventRebootRequired "false"
- ${GetParameters} $R8
- ${GetOptions} "$R8" "/INI=" $R7
- ${Unless} ${Errors}
- ; The configuration file must also exist
- ${If} ${FileExists} "$R7"
- ReadINIStr $R9 $R7 "Install" "RemoveDistributionDir"
- ReadINIStr $R8 $R7 "Install" "PreventRebootRequired"
- ${If} $R8 == "true"
- StrCpy $PreventRebootRequired "true"
- ${EndIf}
- ${EndIf}
- ${EndUnless}
-
- ; Remove directories and files we always control before parsing the uninstall
- ; log so empty directories can be removed.
- ${If} ${FileExists} "$INSTDIR\updates"
- RmDir /r "$INSTDIR\updates"
- ${EndIf}
- ${If} ${FileExists} "$INSTDIR\updated"
- RmDir /r "$INSTDIR\updated"
- ${EndIf}
- ${If} ${FileExists} "$INSTDIR\defaults\shortcuts"
- RmDir /r "$INSTDIR\defaults\shortcuts"
- ${EndIf}
- ; Only remove the distribution directory if it exists and if the installer
- ; isn't launched with an ini file that has RemoveDistributionDir=false in the
- ; install section.
- ${If} ${FileExists} "$INSTDIR\distribution"
- ${AndIf} $R9 != "false"
- RmDir /r "$INSTDIR\distribution"
- ${EndIf}
-
- ; Delete the app exe if present to prevent launching the app while we are
- ; installing.
- ClearErrors
- ${DeleteFile} "$INSTDIR\${FileMainEXE}"
- ${If} ${Errors}
- ; If the user closed the application it can take several seconds for it to
- ; shut down completely. If the application is being used by another user we
- ; can rename the file and then delete is when the system is restarted.
- Sleep 5000
- ${DeleteFile} "$INSTDIR\${FileMainEXE}"
- ClearErrors
- ${EndIf}
-
- ; setup the application model id registration value
- ${InitHashAppModelId} "$INSTDIR" "Software\Mozilla\${AppName}\TaskBarIDs"
-
- ; Remove the updates directory for Vista and above
- ${CleanUpdateDirectories} "Mozilla\Basilisk" "Mozilla\updates"
-
- ${RemoveDeprecatedFiles}
- ${RemovePrecompleteEntries} "false"
-
- ${If} ${FileExists} "$INSTDIR\defaults\pref\channel-prefs.js"
- Delete "$INSTDIR\defaults\pref\channel-prefs.js"
- ${EndIf}
- ${If} ${FileExists} "$INSTDIR\defaults\pref"
- RmDir "$INSTDIR\defaults\pref"
- ${EndIf}
- ${If} ${FileExists} "$INSTDIR\defaults"
- RmDir "$INSTDIR\defaults"
- ${EndIf}
- ${If} ${FileExists} "$INSTDIR\uninstall"
- ; Remove the uninstall directory that we control
- RmDir /r "$INSTDIR\uninstall"
- ${EndIf}
- ${If} ${FileExists} "$INSTDIR\update-settings.ini"
- Delete "$INSTDIR\update-settings.ini"
- ${EndIf}
-
- ; Explictly remove empty webapprt dir in case it exists (bug 757978).
- RmDir "$INSTDIR\webapprt\components"
- RmDir "$INSTDIR\webapprt"
-
- ${InstallStartCleanupCommon}
-SectionEnd
-
-Section "-Application" APP_IDX
- ${StartUninstallLog}
-
- SetDetailsPrint both
- DetailPrint $(STATUS_INSTALL_APP)
- SetDetailsPrint none
-
- ${LogHeader} "Installing Main Files"
- ${CopyFilesFromDir} "$EXEDIR\core" "$INSTDIR" \
- "$(ERROR_CREATE_DIRECTORY_PREFIX)" \
- "$(ERROR_CREATE_DIRECTORY_SUFFIX)"
-
- ; Register DLLs
- ; XXXrstrong - AccessibleMarshal.dll can be used by multiple applications but
- ; is only registered for the last application installed. When the last
- ; application installed is uninstalled AccessibleMarshal.dll will no longer be
- ; registered. bug 338878
- ${LogHeader} "DLL Registration"
- ClearErrors
- ${RegisterDLL} "$INSTDIR\AccessibleMarshal.dll"
- ${If} ${Errors}
- ${LogMsg} "** ERROR Registering: $INSTDIR\AccessibleMarshal.dll **"
- ${Else}
- ${LogUninstall} "DLLReg: \AccessibleMarshal.dll"
- ${LogMsg} "Registered: $INSTDIR\AccessibleMarshal.dll"
- ${EndIf}
-
- ClearErrors
-
- ; Default for creating Start Menu shortcut
- ; (1 = create, 0 = don't create)
- ${If} $AddStartMenuSC == ""
- StrCpy $AddStartMenuSC "1"
- ${EndIf}
-
- ; Default for creating Quick Launch shortcut (1 = create, 0 = don't create)
- ${If} $AddQuickLaunchSC == ""
- ; Don't install the quick launch shortcut on Windows 7
- ${If} ${AtLeastWin7}
- StrCpy $AddQuickLaunchSC "0"
- ${Else}
- StrCpy $AddQuickLaunchSC "1"
- ${EndIf}
- ${EndIf}
-
- ; Default for creating Desktop shortcut (1 = create, 0 = don't create)
- ${If} $AddDesktopSC == ""
- StrCpy $AddDesktopSC "1"
- ${EndIf}
-
- ${LogHeader} "Adding Registry Entries"
- SetShellVarContext current ; Set SHCTX to HKCU
- ${RegCleanMain} "Software\Mozilla"
- ${RegCleanUninstall}
- ${UpdateProtocolHandlers}
-
- ClearErrors
- WriteRegStr HKLM "Software\Mozilla" "${BrandShortName}InstallerTest" "Write Test"
- ${If} ${Errors}
- StrCpy $TmpVal "HKCU" ; used primarily for logging
- ${Else}
- SetShellVarContext all ; Set SHCTX to HKLM
- DeleteRegValue HKLM "Software\Mozilla" "${BrandShortName}InstallerTest"
- StrCpy $TmpVal "HKLM" ; used primarily for logging
- ${RegCleanMain} "Software\Mozilla"
- ${RegCleanUninstall}
- ${UpdateProtocolHandlers}
-
- ReadRegStr $0 HKLM "Software\mozilla.org\Mozilla" "CurrentVersion"
- ${If} "$0" != "${GREVersion}"
- WriteRegStr HKLM "Software\mozilla.org\Mozilla" "CurrentVersion" "${GREVersion}"
- ${EndIf}
- ${EndIf}
-
- ${RemoveDeprecatedKeys}
-
- ; The previous installer adds several regsitry values to both HKLM and HKCU.
- ; We now try to add to HKLM and if that fails to HKCU
-
- ; The order that reg keys and values are added is important if you use the
- ; uninstall log to remove them on uninstall. When using the uninstall log you
- ; MUST add children first so they will be removed first on uninstall so they
- ; will be empty when the key is deleted. This allows the uninstaller to
- ; specify that only empty keys will be deleted.
- ${SetAppKeys}
-
- ${FixClassKeys}
-
- ; Uninstall keys can only exist under HKLM on some versions of windows. Since
- ; it doesn't cause problems always add them.
- ${SetUninstallKeys}
-
- ; On install always add the BasiliskHTML and BasiliskURL keys.
- ; An empty string is used for the 5th param because BasiliskHTML is not a
- ; protocol handler.
- ${GetLongPath} "$INSTDIR\${FileMainEXE}" $8
- StrCpy $2 "$\"$8$\" -osint -url $\"%1$\""
-
- ; In Win8, the delegate execute handler picks up the value in BasiliskURL and
- ; BasiliskHTML to launch the desktop browser when it needs to.
- ${AddDisabledDDEHandlerValues} "BasiliskHTML" "$2" "$8,1" \
- "${AppRegName} Document" ""
- ${AddDisabledDDEHandlerValues} "BasiliskURL" "$2" "$8,1" "${AppRegName} URL" \
- "true"
-
- ; For pre win8, the following keys should only be set if we can write to HKLM.
- ; For post win8, the keys below get set in both HKLM and HKCU.
- ${If} $TmpVal == "HKLM"
- ; Set the Start Menu Internet and Vista Registered App HKLM registry keys.
- ${SetStartMenuInternet} "HKLM"
- ${FixShellIconHandler} "HKLM"
-
- ; If we are writing to HKLM and create either the desktop or start menu
- ; shortcuts set IconsVisible to 1 otherwise to 0.
- ; Taskbar shortcuts imply having a start menu shortcut.
- ${StrFilter} "${FileMainEXE}" "+" "" "" $R9
- StrCpy $0 "Software\Clients\StartMenuInternet\$R9\InstallInfo"
- ${If} $AddDesktopSC == 1
- ${OrIf} $AddStartMenuSC == 1
- ${OrIf} $AddTaskbarSC == 1
- WriteRegDWORD HKLM "$0" "IconsVisible" 1
- ${Else}
- WriteRegDWORD HKLM "$0" "IconsVisible" 0
- ${EndIf}
- ${EndIf}
-
- ${If} ${AtLeastWin8}
- ; Set the Start Menu Internet and Vista Registered App HKCU registry keys.
- ${SetStartMenuInternet} "HKCU"
- ${FixShellIconHandler} "HKCU"
-
- ; If we create either the desktop or start menu shortcuts, then
- ; set IconsVisible to 1 otherwise to 0.
- ; Taskbar shortcuts imply having a start menu shortcut.
- ${StrFilter} "${FileMainEXE}" "+" "" "" $R9
- StrCpy $0 "Software\Clients\StartMenuInternet\$R9\InstallInfo"
- ${If} $AddDesktopSC == 1
- ${OrIf} $AddStartMenuSC == 1
- ${OrIf} $AddTaskbarSC == 1
- WriteRegDWORD HKCU "$0" "IconsVisible" 1
- ${Else}
- WriteRegDWORD HKCU "$0" "IconsVisible" 0
- ${EndIf}
- ${EndIf}
-
-!ifdef MOZ_MAINTENANCE_SERVICE
- ; If the maintenance service page was displayed then a value was already
- ; explicitly selected for installing the maintenance service and
- ; and so InstallMaintenanceService will already be 0 or 1.
- ; If the maintenance service page was not displayed then
- ; InstallMaintenanceService will be equal to "".
- ${If} $InstallMaintenanceService == ""
- Call IsUserAdmin
- Pop $R0
- ${If} $R0 == "true"
- ; Only proceed if we have HKLM write access
- ${AndIf} $TmpVal == "HKLM"
- ; On Windows < XP SP3 we do not install the maintenance service.
- ${If} ${IsWinXP}
- ${AndIf} ${AtMostServicePack} 2
- StrCpy $InstallMaintenanceService "0"
- ${Else}
- ; The user is an admin, so we should default to installing the service.
- StrCpy $InstallMaintenanceService "1"
- ${EndIf}
- ${Else}
- ; The user is not admin, so we can't install the service.
- StrCpy $InstallMaintenanceService "0"
- ${EndIf}
- ${EndIf}
-
- ${If} $InstallMaintenanceService == "1"
- ; The user wants to install the maintenance service, so execute
- ; the pre-packaged maintenance service installer.
- ; This option can only be turned on if the user is an admin so there
- ; is no need to use ExecShell w/ verb runas to enforce elevated.
- nsExec::Exec "$\"$INSTDIR\maintenanceservice_installer.exe$\""
- ${EndIf}
-!endif
-
- ; These need special handling on uninstall since they may be overwritten by
- ; an install into a different location.
- StrCpy $0 "Software\Microsoft\Windows\CurrentVersion\App Paths\${FileMainEXE}"
- ${WriteRegStr2} $TmpVal "$0" "" "$INSTDIR\${FileMainEXE}" 0
- ${WriteRegStr2} $TmpVal "$0" "Path" "$INSTDIR" 0
-
- StrCpy $0 "Software\Microsoft\MediaPlayer\ShimInclusionList\$R9"
- ${CreateRegKey} "$TmpVal" "$0" 0
- StrCpy $0 "Software\Microsoft\MediaPlayer\ShimInclusionList\plugin-container.exe"
- ${CreateRegKey} "$TmpVal" "$0" 0
-
- ${If} $TmpVal == "HKLM"
- ; Set the permitted LSP Categories for WinVista and above
- ${SetAppLSPCategories} ${LSP_CATEGORIES}
- ${EndIf}
-
- ; Create shortcuts
- ${LogHeader} "Adding Shortcuts"
-
- ; Remove the start menu shortcuts and directory if the SMPROGRAMS section
- ; exists in the shortcuts_log.ini and the SMPROGRAMS. The installer's shortcut
- ; creation code will create the shortcut in the root of the Start Menu
- ; Programs directory.
- ${RemoveStartMenuDir}
-
- ; Always add the application's shortcuts to the shortcuts log ini file. The
- ; DeleteShortcuts macro will do the right thing on uninstall if the
- ; shortcuts don't exist.
- ${LogStartMenuShortcut} "${BrandFullName}.lnk"
- ${LogQuickLaunchShortcut} "${BrandFullName}.lnk"
- ${LogDesktopShortcut} "${BrandFullName}.lnk"
-
- ; Best effort to update the Win7 taskbar and start menu shortcut app model
- ; id's. The possible contexts are current user / system and the user that
- ; elevated the installer.
- Call FixShortcutAppModelIDs
- ; If the current context is all also perform Win7 taskbar and start menu link
- ; maintenance for the current user context.
- ${If} $TmpVal == "HKLM"
- SetShellVarContext current ; Set SHCTX to HKCU
- Call FixShortcutAppModelIDs
- SetShellVarContext all ; Set SHCTX to HKLM
- ${EndIf}
-
- ; If running elevated also perform Win7 taskbar and start menu link
- ; maintenance for the unelevated user context in case that is different than
- ; the current user.
- ClearErrors
- ${GetParameters} $0
- ${GetOptions} "$0" "/UAC:" $0
- ${Unless} ${Errors}
- GetFunctionAddress $0 FixShortcutAppModelIDs
- UAC::ExecCodeSegment $0
- ${EndUnless}
-
- ; UAC only allows elevating to an Admin account so there is no need to add
- ; the Start Menu or Desktop shortcuts from the original unelevated process
- ; since this will either add it for the user if unelevated or All Users if
- ; elevated.
- ${If} $AddStartMenuSC == 1
- CreateShortCut "$SMPROGRAMS\${BrandFullName}.lnk" "$INSTDIR\${FileMainEXE}"
- ${If} ${FileExists} "$SMPROGRAMS\${BrandFullName}.lnk"
- ShellLink::SetShortCutWorkingDirectory "$SMPROGRAMS\${BrandFullName}.lnk" \
- "$INSTDIR"
- ${If} ${AtLeastWin7}
- ${AndIf} "$AppUserModelID" != ""
- ApplicationID::Set "$SMPROGRAMS\${BrandFullName}.lnk" "$AppUserModelID" "true"
- ${EndIf}
- ${LogMsg} "Added Shortcut: $SMPROGRAMS\${BrandFullName}.lnk"
- ${Else}
- ${LogMsg} "** ERROR Adding Shortcut: $SMPROGRAMS\${BrandFullName}.lnk"
- ${EndIf}
- ${EndIf}
-
- ; Update lastwritetime of the Start Menu shortcut to clear the tile cache.
- ${If} ${AtLeastWin8}
- ${AndIf} ${FileExists} "$SMPROGRAMS\${BrandFullName}.lnk"
- FileOpen $0 "$SMPROGRAMS\${BrandFullName}.lnk" a
- FileClose $0
- ${EndIf}
-
- ${If} $AddDesktopSC == 1
- CreateShortCut "$DESKTOP\${BrandFullName}.lnk" "$INSTDIR\${FileMainEXE}"
- ${If} ${FileExists} "$DESKTOP\${BrandFullName}.lnk"
- ShellLink::SetShortCutWorkingDirectory "$DESKTOP\${BrandFullName}.lnk" \
- "$INSTDIR"
- ${If} ${AtLeastWin7}
- ${AndIf} "$AppUserModelID" != ""
- ApplicationID::Set "$DESKTOP\${BrandFullName}.lnk" "$AppUserModelID" "true"
- ${EndIf}
- ${LogMsg} "Added Shortcut: $DESKTOP\${BrandFullName}.lnk"
- ${Else}
- ${LogMsg} "** ERROR Adding Shortcut: $DESKTOP\${BrandFullName}.lnk"
- ${EndIf}
- ${EndIf}
-
- ; If elevated the Quick Launch shortcut must be added from the unelevated
- ; original process.
- ${If} $AddQuickLaunchSC == 1
- ${Unless} ${AtLeastWin7}
- ClearErrors
- ${GetParameters} $0
- ${GetOptions} "$0" "/UAC:" $0
- ${If} ${Errors}
- Call AddQuickLaunchShortcut
- ${LogMsg} "Added Shortcut: $QUICKLAUNCH\${BrandFullName}.lnk"
- ${Else}
- ; It is not possible to add a log entry from the unelevated process so
- ; add the log entry without the path since there is no simple way to
- ; know the correct full path.
- ${LogMsg} "Added Quick Launch Shortcut: ${BrandFullName}.lnk"
- GetFunctionAddress $0 AddQuickLaunchShortcut
- UAC::ExecCodeSegment $0
- ${EndIf}
- ${EndUnless}
- ${EndIf}
-
-!ifdef MOZ_MAINTENANCE_SERVICE
- ${If} $TmpVal == "HKLM"
- ; Add the registry keys for allowed certificates.
- ${AddMaintCertKeys}
- ${EndIf}
-!endif
-SectionEnd
-
-; Cleanup operations to perform at the end of the installation.
-Section "-InstallEndCleanup"
- SetDetailsPrint both
- DetailPrint "$(STATUS_CLEANUP)"
- SetDetailsPrint none
-
- ${Unless} ${Silent}
- ClearErrors
- ${MUI_INSTALLOPTIONS_READ} $0 "summary.ini" "Field 4" "State"
- ${If} "$0" == "1"
- ; NB: this code is duplicated in stub.nsi. Please keep in sync.
- ; For data migration in the app, we want to know what the default browser
- ; value was before we changed it. To do so, we read it here and store it
- ; in our own registry key.
- StrCpy $0 ""
- ${If} ${AtLeastWinVista}
- AppAssocReg::QueryCurrentDefault "http" "protocol" "effective"
- Pop $1
- ; If the method hasn't failed, $1 will contain the progid. Check:
- ${If} "$1" != "method failed"
- ${AndIf} "$1" != "method not available"
- ; Read the actual command from the progid
- ReadRegStr $0 HKCR "$1\shell\open\command" ""
- ${EndIf}
- ${EndIf}
- ; If using the App Association Registry didn't happen or failed, fall back
- ; to the effective http default:
- ${If} "$0" == ""
- ReadRegStr $0 HKCR "http\shell\open\command" ""
- ${EndIf}
- ; If we have something other than empty string now, write the value.
- ${If} "$0" != ""
- ClearErrors
- WriteRegStr HKCU "Software\Mozilla\Basilisk" "OldDefaultBrowserCommand" "$0"
- ${EndIf}
-
- ${LogHeader} "Setting as the default browser"
- ClearErrors
- ${GetParameters} $0
- ${GetOptions} "$0" "/UAC:" $0
- ${If} ${Errors}
- Call SetAsDefaultAppUserHKCU
- ${Else}
- GetFunctionAddress $0 SetAsDefaultAppUserHKCU
- UAC::ExecCodeSegment $0
- ${EndIf}
- ${ElseIfNot} ${Errors}
- ${LogHeader} "Writing default-browser opt-out"
- ClearErrors
- WriteRegStr HKCU "Software\Mozilla\Basilisk" "DefaultBrowserOptOut" "True"
- ${If} ${Errors}
- ${LogMsg} "Error writing default-browser opt-out"
- ${EndIf}
- ${EndIf}
- ${EndUnless}
-
- ; Adds a pinned Task Bar shortcut (see MigrateTaskBarShortcut for details).
- ${MigrateTaskBarShortcut}
-
- ; Add the Firewall entries during install
- Call AddFirewallEntries
-
- ; Refresh desktop icons
- System::Call "shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_DWORDFLUSH}, i 0, i 0)"
-
- ${InstallEndCleanupCommon}
-
- ${If} $PreventRebootRequired == "true"
- SetRebootFlag false
- ${EndIf}
-
- ${If} ${RebootFlag}
- ; Admin is required to delete files on reboot so only add the moz-delete if
- ; the user is an admin. After calling UAC::IsAdmin $0 will equal 1 if the
- ; user is an admin.
- UAC::IsAdmin
- ${If} "$0" == "1"
- ; When a reboot is required give SHChangeNotify time to finish the
- ; refreshing the icons so the OS doesn't display the icons from helper.exe
- Sleep 10000
- ${LogHeader} "Reboot Required To Finish Installation"
- ; ${FileMainEXE}.moz-upgrade should never exist but just in case...
- ${Unless} ${FileExists} "$INSTDIR\${FileMainEXE}.moz-upgrade"
- Rename "$INSTDIR\${FileMainEXE}" "$INSTDIR\${FileMainEXE}.moz-upgrade"
- ${EndUnless}
-
- ${If} ${FileExists} "$INSTDIR\${FileMainEXE}"
- ClearErrors
- Rename "$INSTDIR\${FileMainEXE}" "$INSTDIR\${FileMainEXE}.moz-delete"
- ${Unless} ${Errors}
- Delete /REBOOTOK "$INSTDIR\${FileMainEXE}.moz-delete"
- ${EndUnless}
- ${EndIf}
-
- ${Unless} ${FileExists} "$INSTDIR\${FileMainEXE}"
- CopyFiles /SILENT "$INSTDIR\uninstall\helper.exe" "$INSTDIR"
- FileOpen $0 "$INSTDIR\${FileMainEXE}" w
- FileWrite $0 "Will be deleted on restart"
- Rename /REBOOTOK "$INSTDIR\${FileMainEXE}.moz-upgrade" "$INSTDIR\${FileMainEXE}"
- FileClose $0
- Delete "$INSTDIR\${FileMainEXE}"
- Rename "$INSTDIR\helper.exe" "$INSTDIR\${FileMainEXE}"
- ${EndUnless}
- ${EndIf}
- ${EndIf}
-SectionEnd
-
-################################################################################
-# Install Abort Survey Functions
-
-Function CustomAbort
- ${If} "${AB_CD}" == "en-US"
- ${AndIf} "$PageName" != ""
- ${AndIf} ${FileExists} "$EXEDIR\core\distribution\distribution.ini"
- ReadINIStr $0 "$EXEDIR\core\distribution\distribution.ini" "Global" "about"
- ClearErrors
- ${WordFind} "$0" "Funnelcake" "E#" $1
- ${Unless} ${Errors}
- ; Yes = fill out the survey and exit, No = don't fill out survey and exit,
- ; Cancel = don't exit.
- MessageBox MB_YESNO|MB_ICONEXCLAMATION \
- "Would you like to tell us why you are canceling this installation?" \
- IDYes +1 IDNO CustomAbort_finish
- ${If} "$PageName" == "Welcome"
- GetFunctionAddress $0 AbortSurveyWelcome
- ${ElseIf} "$PageName" == "Options"
- GetFunctionAddress $0 AbortSurveyOptions
- ${ElseIf} "$PageName" == "Directory"
- GetFunctionAddress $0 AbortSurveyDirectory
- ${ElseIf} "$PageName" == "Shortcuts"
- GetFunctionAddress $0 AbortSurveyShortcuts
- ${ElseIf} "$PageName" == "Summary"
- GetFunctionAddress $0 AbortSurveySummary
- ${EndIf}
- ClearErrors
- ${GetParameters} $1
- ${GetOptions} "$1" "/UAC:" $2
- ${If} ${Errors}
- Call $0
- ${Else}
- UAC::ExecCodeSegment $0
- ${EndIf}
-
- CustomAbort_finish:
- Return
- ${EndUnless}
- ${EndIf}
-
- MessageBox MB_YESNO|MB_ICONEXCLAMATION "$(MOZ_MUI_TEXT_ABORTWARNING)" \
- IDYES +1 IDNO +2
- Return
- Abort
-FunctionEnd
-
-Function AbortSurveyWelcome
- ExecShell "open" "${AbortSurveyURL}step1"
-FunctionEnd
-
-Function AbortSurveyOptions
- ExecShell "open" "${AbortSurveyURL}step2"
-FunctionEnd
-
-Function AbortSurveyDirectory
- ExecShell "open" "${AbortSurveyURL}step3"
-FunctionEnd
-
-Function AbortSurveyShortcuts
- ExecShell "open" "${AbortSurveyURL}step4"
-FunctionEnd
-
-Function AbortSurveySummary
- ExecShell "open" "${AbortSurveyURL}step5"
-FunctionEnd
-
-################################################################################
-# Helper Functions
-
-Function AddQuickLaunchShortcut
- CreateShortCut "$QUICKLAUNCH\${BrandFullName}.lnk" "$INSTDIR\${FileMainEXE}"
- ${If} ${FileExists} "$QUICKLAUNCH\${BrandFullName}.lnk"
- ShellLink::SetShortCutWorkingDirectory "$QUICKLAUNCH\${BrandFullName}.lnk" \
- "$INSTDIR"
- ${EndIf}
-FunctionEnd
-
-Function CheckExistingInstall
- ; If there is a pending file copy from a previous upgrade don't allow
- ; installing until after the system has rebooted.
- IfFileExists "$INSTDIR\${FileMainEXE}.moz-upgrade" +1 +4
- MessageBox MB_YESNO|MB_ICONEXCLAMATION "$(WARN_RESTART_REQUIRED_UPGRADE)" IDNO +2
- Reboot
- Quit
-
- ; If there is a pending file deletion from a previous uninstall don't allow
- ; installing until after the system has rebooted.
- IfFileExists "$INSTDIR\${FileMainEXE}.moz-delete" +1 +4
- MessageBox MB_YESNO|MB_ICONEXCLAMATION "$(WARN_RESTART_REQUIRED_UNINSTALL)" IDNO +2
- Reboot
- Quit
-
- ${If} ${FileExists} "$INSTDIR\${FileMainEXE}"
- ; Disable the next, cancel, and back buttons
- GetDlgItem $0 $HWNDPARENT 1 ; Next button
- EnableWindow $0 0
- GetDlgItem $0 $HWNDPARENT 2 ; Cancel button
- EnableWindow $0 0
- GetDlgItem $0 $HWNDPARENT 3 ; Back button
- EnableWindow $0 0
-
- Banner::show /NOUNLOAD "$(BANNER_CHECK_EXISTING)"
-
- ${If} "$TmpVal" == "FoundMessageWindow"
- Sleep 5000
- ${EndIf}
-
- ${PushFilesToCheck}
-
- ; Store the return value in $TmpVal so it is less likely to be accidentally
- ; overwritten elsewhere.
- ${CheckForFilesInUse} $TmpVal
-
- Banner::destroy
-
- ; Enable the next, cancel, and back buttons
- GetDlgItem $0 $HWNDPARENT 1 ; Next button
- EnableWindow $0 1
- GetDlgItem $0 $HWNDPARENT 2 ; Cancel button
- EnableWindow $0 1
- GetDlgItem $0 $HWNDPARENT 3 ; Back button
- EnableWindow $0 1
-
- ${If} "$TmpVal" == "true"
- StrCpy $TmpVal "FoundMessageWindow"
- ${ManualCloseAppPrompt} "${WindowClass}" "$(WARN_MANUALLY_CLOSE_APP_INSTALL)"
- StrCpy $TmpVal "true"
- ${EndIf}
- ${EndIf}
-FunctionEnd
-
-Function LaunchApp
-!ifndef DEV_EDITION
- ${ManualCloseAppPrompt} "${WindowClass}" "$(WARN_MANUALLY_CLOSE_APP_LAUNCH)"
-!endif
-
- ClearErrors
- ${GetParameters} $0
- ${GetOptions} "$0" "/UAC:" $1
- ${If} ${Errors}
- Exec "$\"$INSTDIR\${FileMainEXE}$\""
- ${Else}
- GetFunctionAddress $0 LaunchAppFromElevatedProcess
- UAC::ExecCodeSegment $0
- ${EndIf}
-FunctionEnd
-
-Function LaunchAppFromElevatedProcess
- ; Find the installation directory when launching using GetFunctionAddress
- ; from an elevated installer since $INSTDIR will not be set in this installer
- ${StrFilter} "${FileMainEXE}" "+" "" "" $R9
- ReadRegStr $0 HKLM "Software\Clients\StartMenuInternet\$R9\DefaultIcon" ""
- ${GetPathFromString} "$0" $0
- ${GetParent} "$0" $1
- ; Set our current working directory to the application's install directory
- ; otherwise the 7-Zip temp directory will be in use and won't be deleted.
- SetOutPath "$1"
- Exec "$\"$0$\""
-FunctionEnd
-
-################################################################################
-# Language
-
-!insertmacro MOZ_MUI_LANGUAGE 'baseLocale'
-!verbose push
-!verbose 3
-!include "overrideLocale.nsh"
-!include "customLocale.nsh"
-!verbose pop
-
-; Set this after the locale files to override it if it is in the locale
-; using " " for BrandingText will hide the "Nullsoft Install System..." branding
-BrandingText " "
-
-################################################################################
-# Page pre, show, and leave functions
-
-Function preWelcome
- StrCpy $PageName "Welcome"
- ${If} ${FileExists} "$EXEDIR\core\distribution\modern-wizard.bmp"
- Delete "$PLUGINSDIR\modern-wizard.bmp"
- CopyFiles /SILENT "$EXEDIR\core\distribution\modern-wizard.bmp" "$PLUGINSDIR\modern-wizard.bmp"
- ${EndIf}
-FunctionEnd
-
-Function preOptions
- StrCpy $PageName "Options"
- ${If} ${FileExists} "$EXEDIR\core\distribution\modern-header.bmp"
- ${AndIf} $hHeaderBitmap == ""
- Delete "$PLUGINSDIR\modern-header.bmp"
- CopyFiles /SILENT "$EXEDIR\core\distribution\modern-header.bmp" "$PLUGINSDIR\modern-header.bmp"
- ${ChangeMUIHeaderImage} "$PLUGINSDIR\modern-header.bmp"
- ${EndIf}
- !insertmacro MUI_HEADER_TEXT "$(OPTIONS_PAGE_TITLE)" "$(OPTIONS_PAGE_SUBTITLE)"
- !insertmacro MUI_INSTALLOPTIONS_DISPLAY "options.ini"
-FunctionEnd
-
-Function leaveOptions
- ${MUI_INSTALLOPTIONS_READ} $0 "options.ini" "Settings" "State"
- ${If} $0 != 0
- Abort
- ${EndIf}
- ${MUI_INSTALLOPTIONS_READ} $R0 "options.ini" "Field 2" "State"
- StrCmp $R0 "1" +1 +2
- StrCpy $InstallType ${INSTALLTYPE_BASIC}
- ${MUI_INSTALLOPTIONS_READ} $R0 "options.ini" "Field 3" "State"
- StrCmp $R0 "1" +1 +2
- StrCpy $InstallType ${INSTALLTYPE_CUSTOM}
-
- ${LeaveOptionsCommon}
-
- ${If} $InstallType == ${INSTALLTYPE_BASIC}
- Call CheckExistingInstall
- ${EndIf}
-FunctionEnd
-
-Function preDirectory
- StrCpy $PageName "Directory"
- ${PreDirectoryCommon}
-FunctionEnd
-
-Function leaveDirectory
- ${If} $InstallType == ${INSTALLTYPE_BASIC}
- Call CheckExistingInstall
- ${EndIf}
- ${LeaveDirectoryCommon} "$(WARN_DISK_SPACE)" "$(WARN_WRITE_ACCESS)"
-FunctionEnd
-
-Function preShortcuts
- StrCpy $PageName "Shortcuts"
- ${CheckCustomCommon}
- !insertmacro MUI_HEADER_TEXT "$(SHORTCUTS_PAGE_TITLE)" "$(SHORTCUTS_PAGE_SUBTITLE)"
- !insertmacro MUI_INSTALLOPTIONS_DISPLAY "shortcuts.ini"
-FunctionEnd
-
-Function leaveShortcuts
- ${MUI_INSTALLOPTIONS_READ} $0 "shortcuts.ini" "Settings" "State"
- ${If} $0 != 0
- Abort
- ${EndIf}
- ${MUI_INSTALLOPTIONS_READ} $AddDesktopSC "shortcuts.ini" "Field 2" "State"
- ${MUI_INSTALLOPTIONS_READ} $AddStartMenuSC "shortcuts.ini" "Field 3" "State"
-
- ; Don't install the quick launch shortcut on Windows 7
- ${Unless} ${AtLeastWin7}
- ${MUI_INSTALLOPTIONS_READ} $AddQuickLaunchSC "shortcuts.ini" "Field 4" "State"
- ${EndUnless}
-
- ${If} $InstallType == ${INSTALLTYPE_CUSTOM}
- Call CheckExistingInstall
- ${EndIf}
-FunctionEnd
-
-!ifdef MOZ_MAINTENANCE_SERVICE
-Function preComponents
- ; If the service already exists, don't show this page
- ServicesHelper::IsInstalled "MozillaMaintenance"
- Pop $R9
- ${If} $R9 == 1
- ; The service already exists so don't show this page.
- Abort
- ${EndIf}
-
- ; On Windows < XP SP3 we do not install the maintenance service.
- ${If} ${IsWinXP}
- ${AndIf} ${AtMostServicePack} 2
- Abort
- ${EndIf}
-
- ; Don't show the custom components page if the
- ; user is not an admin
- Call IsUserAdmin
- Pop $R9
- ${If} $R9 != "true"
- Abort
- ${EndIf}
-
- ; Only show the maintenance service page if we have write access to HKLM
- ClearErrors
- WriteRegStr HKLM "Software\Mozilla" \
- "${BrandShortName}InstallerTest" "Write Test"
- ${If} ${Errors}
- ClearErrors
- Abort
- ${Else}
- DeleteRegValue HKLM "Software\Mozilla" "${BrandShortName}InstallerTest"
- ${EndIf}
-
- StrCpy $PageName "Components"
- ${CheckCustomCommon}
- !insertmacro MUI_HEADER_TEXT "$(COMPONENTS_PAGE_TITLE)" "$(COMPONENTS_PAGE_SUBTITLE)"
- !insertmacro MUI_INSTALLOPTIONS_DISPLAY "components.ini"
-FunctionEnd
-
-Function leaveComponents
- ${MUI_INSTALLOPTIONS_READ} $0 "components.ini" "Settings" "State"
- ${If} $0 != 0
- Abort
- ${EndIf}
- ${MUI_INSTALLOPTIONS_READ} $InstallMaintenanceService "components.ini" "Field 2" "State"
- ${If} $InstallType == ${INSTALLTYPE_CUSTOM}
- Call CheckExistingInstall
- ${EndIf}
-FunctionEnd
-!endif
-
-Function preSummary
- StrCpy $PageName "Summary"
- ; Setup the summary.ini file for the Custom Summary Page
- WriteINIStr "$PLUGINSDIR\summary.ini" "Settings" NumFields "3"
-
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 1" Type "label"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 1" Text "$(SUMMARY_INSTALLED_TO)"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 1" Left "0"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 1" Right "-1"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 1" Top "5"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 1" Bottom "15"
-
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 2" Type "text"
- ; The contents of this control must be set as follows in the pre function
- ; ${MUI_INSTALLOPTIONS_READ} $1 "summary.ini" "Field 2" "HWND"
- ; SendMessage $1 ${WM_SETTEXT} 0 "STR:$INSTDIR"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 2" state ""
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 2" Left "0"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 2" Right "-1"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 2" Top "17"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 2" Bottom "30"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 2" flags "READONLY"
-
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 3" Type "label"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 3" Left "0"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 3" Right "-1"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 3" Top "130"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 3" Bottom "150"
-
- ${If} ${FileExists} "$INSTDIR\${FileMainEXE}"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 3" Text "$(SUMMARY_UPGRADE_CLICK)"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Settings" NextButtonText "$(UPGRADE_BUTTON)"
- ${Else}
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 3" Text "$(SUMMARY_INSTALL_CLICK)"
- DeleteINIStr "$PLUGINSDIR\summary.ini" "Settings" NextButtonText
- ${EndIf}
-
-
- ; Remove the "Field 4" ini section in case the user hits back and changes the
- ; installation directory which could change whether the make default checkbox
- ; should be displayed.
- DeleteINISec "$PLUGINSDIR\summary.ini" "Field 4"
-
- ; Check if it is possible to write to HKLM
- ClearErrors
- WriteRegStr HKLM "Software\Mozilla" "${BrandShortName}InstallerTest" "Write Test"
- ${Unless} ${Errors}
- DeleteRegValue HKLM "Software\Mozilla" "${BrandShortName}InstallerTest"
- ; Check if Basilisk is the http handler for this user.
- SetShellVarContext current ; Set SHCTX to the current user
- ${IsHandlerForInstallDir} "http" $R9
- ${If} $TmpVal == "HKLM"
- SetShellVarContext all ; Set SHCTX to all users
- ${EndIf}
- ; If Basilisk isn't the http handler for this user show the option to set
- ; Basilisk as the default browser.
- ${If} "$R9" != "true"
- ${AndIf} ${AtMostWin2008R2}
- WriteINIStr "$PLUGINSDIR\summary.ini" "Settings" NumFields "4"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 4" Type "checkbox"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 4" Text "$(SUMMARY_TAKE_DEFAULTS)"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 4" Left "0"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 4" Right "-1"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 4" State "1"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 4" Top "32"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field 4" Bottom "53"
- ${EndIf}
- ${EndUnless}
-
- ${If} "$TmpVal" == "true"
- ; If there is already a Type entry in the "Field 4" section with a value of
- ; checkbox then the set as the default browser checkbox is displayed and
- ; this text must be moved below it.
- ReadINIStr $0 "$PLUGINSDIR\summary.ini" "Field 4" "Type"
- ${If} "$0" == "checkbox"
- StrCpy $0 "5"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field $0" Top "53"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field $0" Bottom "68"
- ${Else}
- StrCpy $0 "4"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field $0" Top "35"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field $0" Bottom "50"
- ${EndIf}
- WriteINIStr "$PLUGINSDIR\summary.ini" "Settings" NumFields "$0"
-
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field $0" Type "label"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field $0" Text "$(SUMMARY_REBOOT_REQUIRED_INSTALL)"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field $0" Left "0"
- WriteINIStr "$PLUGINSDIR\summary.ini" "Field $0" Right "-1"
- ${EndIf}
-
- !insertmacro MUI_HEADER_TEXT "$(SUMMARY_PAGE_TITLE)" "$(SUMMARY_PAGE_SUBTITLE)"
-
- ; The Summary custom page has a textbox that will automatically receive
- ; focus. This sets the focus to the Install button instead.
- !insertmacro MUI_INSTALLOPTIONS_INITDIALOG "summary.ini"
- GetDlgItem $0 $HWNDPARENT 1
- System::Call "user32::SetFocus(i r0, i 0x0007, i,i)i"
- ${MUI_INSTALLOPTIONS_READ} $1 "summary.ini" "Field 2" "HWND"
- SendMessage $1 ${WM_SETTEXT} 0 "STR:$INSTDIR"
- !insertmacro MUI_INSTALLOPTIONS_SHOW
-FunctionEnd
-
-Function leaveSummary
- ; Try to delete the app executable and if we can't delete it try to find the
- ; app's message window and prompt the user to close the app. This allows
- ; running an instance that is located in another directory. If for whatever
- ; reason there is no message window we will just rename the app's files and
- ; then remove them on restart.
- ClearErrors
- ${DeleteFile} "$INSTDIR\${FileMainEXE}"
- ${If} ${Errors}
- ${ManualCloseAppPrompt} "${WindowClass}" "$(WARN_MANUALLY_CLOSE_APP_INSTALL)"
- ${EndIf}
-FunctionEnd
-
-; When we add an optional action to the finish page the cancel button is
-; enabled. This disables it and leaves the finish button as the only choice.
-Function preFinish
- StrCpy $PageName ""
- ${EndInstallLog} "${BrandFullName}"
- !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "settings" "cancelenabled" "0"
-FunctionEnd
-
-################################################################################
-# Initialization Functions
-
-Function .onInit
- ; Remove the current exe directory from the search order.
- ; This only effects LoadLibrary calls and not implicitly loaded DLLs.
- System::Call 'kernel32::SetDllDirectoryW(w "")'
-
- StrCpy $PageName ""
- StrCpy $LANGUAGE 0
- ${SetBrandNameVars} "$EXEDIR\core\distribution\setup.ini"
-
- ; Don't install on systems that don't support SSE2. The parameter value of
- ; 10 is for PF_XMMI64_INSTRUCTIONS_AVAILABLE which will check whether the
- ; SSE2 instruction set is available. Result returned in $R7.
- System::Call "kernel32::IsProcessorFeaturePresent(i 10)i .R7"
-
- ; Windows NT 6.0 (Vista/Server 2008) and lower are not supported.
- ${Unless} ${AtLeastWin7}
- ${If} "$R7" == "0"
- strCpy $R7 "$(WARN_MIN_SUPPORTED_OSVER_CPU_MSG)"
- ${Else}
- strCpy $R7 "$(WARN_MIN_SUPPORTED_OSVER_MSG)"
- ${EndIf}
- MessageBox MB_OKCANCEL|MB_ICONSTOP "$R7" IDCANCEL +2
- ExecShell "open" "${URLSystemRequirements}"
- Quit
- ${EndUnless}
-
- ; SSE2 CPU support
- ${If} "$R7" == "0"
- MessageBox MB_OKCANCEL|MB_ICONSTOP "$(WARN_MIN_SUPPORTED_CPU_MSG)" IDCANCEL +2
- ExecShell "open" "${URLSystemRequirements}"
- Quit
- ${EndIf}
-
-!ifdef HAVE_64BIT_BUILD
- ${Unless} ${RunningX64}
- MessageBox MB_OKCANCEL|MB_ICONSTOP "$(WARN_MIN_SUPPORTED_OSVER_MSG)" IDCANCEL +2
- ExecShell "open" "${URLSystemRequirements}"
- Quit
- ${EndUnless}
- SetRegView 64
-!endif
-
- ${InstallOnInitCommon} "$(WARN_MIN_SUPPORTED_OSVER_CPU_MSG)"
-
-; The commands inside this ifndef are needed prior to NSIS 3.0a2 and can be
-; removed after we require NSIS 3.0a2 or greater.
-!ifndef NSIS_PACKEDVERSION
- ${If} ${AtLeastWinVista}
- System::Call 'user32::SetProcessDPIAware()'
- ${EndIf}
-!endif
-
- !insertmacro InitInstallOptionsFile "options.ini"
- !insertmacro InitInstallOptionsFile "shortcuts.ini"
- !insertmacro InitInstallOptionsFile "components.ini"
- !insertmacro InitInstallOptionsFile "summary.ini"
-
- WriteINIStr "$PLUGINSDIR\options.ini" "Settings" NumFields "5"
-
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Type "label"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Text "$(OPTIONS_SUMMARY)"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Left "0"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Right "-1"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Top "0"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 1" Bottom "10"
-
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Type "RadioButton"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Text "$(OPTION_STANDARD_RADIO)"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Left "0"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Right "-1"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Top "25"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Bottom "35"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" State "1"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 2" Flags "GROUP"
-
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Type "RadioButton"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Text "$(OPTION_CUSTOM_RADIO)"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Left "0"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Right "-1"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Top "55"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" Bottom "65"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 3" State "0"
-
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Type "label"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Text "$(OPTION_STANDARD_DESC)"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Left "15"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Right "-1"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Top "37"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 4" Bottom "57"
-
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Type "label"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Text "$(OPTION_CUSTOM_DESC)"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Left "15"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Right "-1"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Top "67"
- WriteINIStr "$PLUGINSDIR\options.ini" "Field 5" Bottom "87"
-
- ; Setup the shortcuts.ini file for the Custom Shortcuts Page
- ; Don't offer to install the quick launch shortcut on Windows 7
- ${If} ${AtLeastWin7}
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Settings" NumFields "3"
- ${Else}
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Settings" NumFields "4"
- ${EndIf}
-
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 1" Type "label"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 1" Text "$(CREATE_ICONS_DESC)"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 1" Left "0"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 1" Right "-1"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 1" Top "5"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 1" Bottom "15"
-
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Type "checkbox"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Text "$(ICONS_DESKTOP)"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Left "0"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Right "-1"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Top "20"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Bottom "30"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" State "1"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 2" Flags "GROUP"
-
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" Type "checkbox"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" Text "$(ICONS_STARTMENU)"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" Left "0"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" Right "-1"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" Top "40"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" Bottom "50"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 3" State "1"
-
- ; Don't offer to install the quick launch shortcut on Windows 7
- ${Unless} ${AtLeastWin7}
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" Type "checkbox"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" Text "$(ICONS_QUICKLAUNCH)"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" Left "0"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" Right "-1"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" Top "60"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" Bottom "70"
- WriteINIStr "$PLUGINSDIR\shortcuts.ini" "Field 4" State "1"
- ${EndUnless}
-
- ; Setup the components.ini file for the Components Page
- WriteINIStr "$PLUGINSDIR\components.ini" "Settings" NumFields "2"
-
- WriteINIStr "$PLUGINSDIR\components.ini" "Field 1" Type "label"
- WriteINIStr "$PLUGINSDIR\components.ini" "Field 1" Text "$(OPTIONAL_COMPONENTS_DESC)"
- WriteINIStr "$PLUGINSDIR\components.ini" "Field 1" Left "0"
- WriteINIStr "$PLUGINSDIR\components.ini" "Field 1" Right "-1"
- WriteINIStr "$PLUGINSDIR\components.ini" "Field 1" Top "5"
- WriteINIStr "$PLUGINSDIR\components.ini" "Field 1" Bottom "25"
-
- WriteINIStr "$PLUGINSDIR\components.ini" "Field 2" Type "checkbox"
- WriteINIStr "$PLUGINSDIR\components.ini" "Field 2" Text "$(MAINTENANCE_SERVICE_CHECKBOX_DESC)"
- WriteINIStr "$PLUGINSDIR\components.ini" "Field 2" Left "0"
- WriteINIStr "$PLUGINSDIR\components.ini" "Field 2" Right "-1"
- WriteINIStr "$PLUGINSDIR\components.ini" "Field 2" Top "27"
- WriteINIStr "$PLUGINSDIR\components.ini" "Field 2" Bottom "37"
- WriteINIStr "$PLUGINSDIR\components.ini" "Field 2" State "1"
- WriteINIStr "$PLUGINSDIR\components.ini" "Field 2" Flags "GROUP"
-
- ; There must always be a core directory.
- ${GetSize} "$EXEDIR\core\" "/S=0K" $R5 $R7 $R8
- SectionSetSize ${APP_IDX} $R5
-
- ; Initialize $hHeaderBitmap to prevent redundant changing of the bitmap if
- ; the user clicks the back button
- StrCpy $hHeaderBitmap ""
-FunctionEnd
-
-Function .onGUIEnd
- ${OnEndCommon}
-FunctionEnd