mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-27 01:27:30 +09:00
Make nsis match better
This commit is contained in:
parent
633ef1c426
commit
b43a601654
5 changed files with 42 additions and 100 deletions
|
|
@ -1073,51 +1073,22 @@ Function .onInit
|
||||||
Quit
|
Quit
|
||||||
${EndUnless}
|
${EndUnless}
|
||||||
|
|
||||||
SetRegView 64
|
; SSE2 support
|
||||||
!else
|
|
||||||
StrCpy $R8 "0"
|
|
||||||
${If} ${AtMostWin2000}
|
|
||||||
StrCpy $R8 "1"
|
|
||||||
${EndIf}
|
|
||||||
|
|
||||||
${If} ${IsWinXP}
|
|
||||||
${AndIf} ${AtMostServicePack} 1
|
|
||||||
StrCpy $R8 "1"
|
|
||||||
${EndIf}
|
|
||||||
|
|
||||||
${If} $R8 == "1"
|
|
||||||
; XXX-rstrong - some systems failed the AtLeastWin2000 test that we
|
|
||||||
; used to use for an unknown reason and likely fail the AtMostWin2000
|
|
||||||
; and possibly the IsWinXP test as well. To work around this also
|
|
||||||
; check if the Windows NT registry Key exists and if it does if the
|
|
||||||
; first char in CurrentVersion is equal to 3 (Windows NT 3.5 and
|
|
||||||
; 3.5.1), 4 (Windows NT 4), or 5 (Windows 2000 and Windows XP).
|
|
||||||
StrCpy $R8 ""
|
|
||||||
ClearErrors
|
|
||||||
ReadRegStr $R8 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" "CurrentVersion"
|
|
||||||
StrCpy $R8 "$R8" 1
|
|
||||||
${If} ${Errors}
|
|
||||||
${OrIf} "$R8" == "3"
|
|
||||||
${OrIf} "$R8" == "4"
|
|
||||||
${OrIf} "$R8" == "5"
|
|
||||||
${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
|
|
||||||
${EndIf}
|
|
||||||
${EndUnless}
|
|
||||||
!endif
|
|
||||||
|
|
||||||
${If} "$R7" == "0"
|
${If} "$R7" == "0"
|
||||||
MessageBox MB_OKCANCEL|MB_ICONSTOP "$(WARN_MIN_SUPPORTED_CPU_MSG)" IDCANCEL +2
|
MessageBox MB_OKCANCEL|MB_ICONSTOP "$(WARN_MIN_SUPPORTED_CPU_MSG)" IDCANCEL +2
|
||||||
ExecShell "open" "${URLSystemRequirements}"
|
ExecShell "open" "${URLSystemRequirements}"
|
||||||
Quit
|
Quit
|
||||||
${EndIf}
|
${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)"
|
${InstallOnInitCommon} "$(WARN_MIN_SUPPORTED_OSVER_CPU_MSG)"
|
||||||
|
|
||||||
; The commands inside this ifndef are needed prior to NSIS 3.0a2 and can be
|
; The commands inside this ifndef are needed prior to NSIS 3.0a2 and can be
|
||||||
|
|
|
||||||
|
|
@ -166,56 +166,6 @@ UninstPage custom un.preConfirm
|
||||||
; Use the default dialog for IDD_VERIFY for a simple Banner
|
; Use the default dialog for IDD_VERIFY for a simple Banner
|
||||||
ChangeUI IDD_VERIFY "${NSISDIR}\Contrib\UIs\default.exe"
|
ChangeUI IDD_VERIFY "${NSISDIR}\Contrib\UIs\default.exe"
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Helper Functions
|
|
||||||
|
|
||||||
; This function is used to uninstall the maintenance service if the
|
|
||||||
; application currently being uninstalled is the last application to use the
|
|
||||||
; maintenance service.
|
|
||||||
Function un.UninstallServiceIfNotUsed
|
|
||||||
; $0 will store if a subkey exists
|
|
||||||
; $1 will store the first subkey if it exists or an empty string if it doesn't
|
|
||||||
; Backup the old values
|
|
||||||
Push $0
|
|
||||||
Push $1
|
|
||||||
|
|
||||||
; The maintenance service always uses the 64-bit registry on x64 systems
|
|
||||||
${If} ${RunningX64}
|
|
||||||
SetRegView 64
|
|
||||||
${EndIf}
|
|
||||||
|
|
||||||
; Figure out the number of subkeys
|
|
||||||
StrCpy $0 0
|
|
||||||
${Do}
|
|
||||||
EnumRegKey $1 HKLM "Software\Mozilla\MaintenanceService" $0
|
|
||||||
${If} "$1" == ""
|
|
||||||
${ExitDo}
|
|
||||||
${EndIf}
|
|
||||||
IntOp $0 $0 + 1
|
|
||||||
${Loop}
|
|
||||||
|
|
||||||
; Restore back the registry view
|
|
||||||
${If} ${RunningX64}
|
|
||||||
SetRegView lastUsed
|
|
||||||
${EndIf}
|
|
||||||
${If} $0 == 0
|
|
||||||
; Get the path of the maintenance service uninstaller
|
|
||||||
ReadRegStr $1 HKLM ${MaintUninstallKey} "UninstallString"
|
|
||||||
|
|
||||||
; If the uninstall string does not exist, skip executing it
|
|
||||||
StrCmp $1 "" doneUninstall
|
|
||||||
|
|
||||||
; $1 is already a quoted string pointing to the install path
|
|
||||||
; so we're already protected against paths with spaces
|
|
||||||
nsExec::Exec "$1 /S"
|
|
||||||
doneUninstall:
|
|
||||||
${EndIf}
|
|
||||||
|
|
||||||
; Restore the old value of $1 and $0
|
|
||||||
Pop $1
|
|
||||||
Pop $0
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Install Sections
|
# Install Sections
|
||||||
; Empty section required for the installer to compile as an uninstaller
|
; Empty section required for the installer to compile as an uninstaller
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ RequestExecutionLevel user
|
||||||
Var TmpVal
|
Var TmpVal
|
||||||
Var InstallType
|
Var InstallType
|
||||||
Var AddStartMenuSC
|
Var AddStartMenuSC
|
||||||
|
Var AddTaskbarSC
|
||||||
Var AddQuickLaunchSC
|
Var AddQuickLaunchSC
|
||||||
Var AddDesktopSC
|
Var AddDesktopSC
|
||||||
Var InstallMaintenanceService
|
Var InstallMaintenanceService
|
||||||
|
|
@ -92,6 +93,7 @@ VIAddVersionKey "OriginalFilename" "setup.exe"
|
||||||
!insertmacro InitHashAppModelId
|
!insertmacro InitHashAppModelId
|
||||||
!insertmacro IsHandlerForInstallDir
|
!insertmacro IsHandlerForInstallDir
|
||||||
!insertmacro IsPinnedToTaskBar
|
!insertmacro IsPinnedToTaskBar
|
||||||
|
!insertmacro IsUserAdmin
|
||||||
!insertmacro LogDesktopShortcut
|
!insertmacro LogDesktopShortcut
|
||||||
!insertmacro LogQuickLaunchShortcut
|
!insertmacro LogQuickLaunchShortcut
|
||||||
!insertmacro LogStartMenuShortcut
|
!insertmacro LogStartMenuShortcut
|
||||||
|
|
@ -399,10 +401,12 @@ Section "-Application" APP_IDX
|
||||||
|
|
||||||
; If we are writing to HKLM and create either the desktop or start menu
|
; If we are writing to HKLM and create either the desktop or start menu
|
||||||
; shortcuts set IconsVisible to 1 otherwise to 0.
|
; shortcuts set IconsVisible to 1 otherwise to 0.
|
||||||
|
; Taskbar shortcuts imply having a start menu shortcut.
|
||||||
${StrFilter} "${FileMainEXE}" "+" "" "" $R9
|
${StrFilter} "${FileMainEXE}" "+" "" "" $R9
|
||||||
StrCpy $0 "Software\Clients\StartMenuInternet\$R9\InstallInfo"
|
StrCpy $0 "Software\Clients\StartMenuInternet\$R9\InstallInfo"
|
||||||
${If} $AddDesktopSC == 1
|
${If} $AddDesktopSC == 1
|
||||||
${OrIf} $AddStartMenuSC == 1
|
${OrIf} $AddStartMenuSC == 1
|
||||||
|
${OrIf} $AddTaskbarSC == 1
|
||||||
WriteRegDWORD HKLM "$0" "IconsVisible" 1
|
WriteRegDWORD HKLM "$0" "IconsVisible" 1
|
||||||
${Else}
|
${Else}
|
||||||
WriteRegDWORD HKLM "$0" "IconsVisible" 0
|
WriteRegDWORD HKLM "$0" "IconsVisible" 0
|
||||||
|
|
@ -416,10 +420,12 @@ Section "-Application" APP_IDX
|
||||||
|
|
||||||
; If we create either the desktop or start menu shortcuts, then
|
; If we create either the desktop or start menu shortcuts, then
|
||||||
; set IconsVisible to 1 otherwise to 0.
|
; set IconsVisible to 1 otherwise to 0.
|
||||||
|
; Taskbar shortcuts imply having a start menu shortcut.
|
||||||
${StrFilter} "${FileMainEXE}" "+" "" "" $R9
|
${StrFilter} "${FileMainEXE}" "+" "" "" $R9
|
||||||
StrCpy $0 "Software\Clients\StartMenuInternet\$R9\InstallInfo"
|
StrCpy $0 "Software\Clients\StartMenuInternet\$R9\InstallInfo"
|
||||||
${If} $AddDesktopSC == 1
|
${If} $AddDesktopSC == 1
|
||||||
${OrIf} $AddStartMenuSC == 1
|
${OrIf} $AddStartMenuSC == 1
|
||||||
|
${OrIf} $AddTaskbarSC == 1
|
||||||
WriteRegDWORD HKCU "$0" "IconsVisible" 1
|
WriteRegDWORD HKCU "$0" "IconsVisible" 1
|
||||||
${Else}
|
${Else}
|
||||||
WriteRegDWORD HKCU "$0" "IconsVisible" 0
|
WriteRegDWORD HKCU "$0" "IconsVisible" 0
|
||||||
|
|
@ -1088,7 +1094,9 @@ Function .onInit
|
||||||
; The commands inside this ifndef are needed prior to NSIS 3.0a2 and can be
|
; The commands inside this ifndef are needed prior to NSIS 3.0a2 and can be
|
||||||
; removed after we require NSIS 3.0a2 or greater.
|
; removed after we require NSIS 3.0a2 or greater.
|
||||||
!ifndef NSIS_PACKEDVERSION
|
!ifndef NSIS_PACKEDVERSION
|
||||||
System::Call 'user32::SetProcessDPIAware()'
|
${If} ${AtLeastWinVista}
|
||||||
|
System::Call 'user32::SetProcessDPIAware()'
|
||||||
|
${EndIf}
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!insertmacro InitInstallOptionsFile "options.ini"
|
!insertmacro InitInstallOptionsFile "options.ini"
|
||||||
|
|
|
||||||
|
|
@ -322,9 +322,11 @@
|
||||||
WriteRegStr SHCTX "$0\.xhtml" "" "PaleMoonHTML"
|
WriteRegStr SHCTX "$0\.xhtml" "" "PaleMoonHTML"
|
||||||
${EndIf}
|
${EndIf}
|
||||||
|
|
||||||
|
${AddAssociationIfNoneExist} ".pdf"
|
||||||
${AddAssociationIfNoneExist} ".oga"
|
${AddAssociationIfNoneExist} ".oga"
|
||||||
${AddAssociationIfNoneExist} ".ogg"
|
${AddAssociationIfNoneExist} ".ogg"
|
||||||
${AddAssociationIfNoneExist} ".ogv"
|
${AddAssociationIfNoneExist} ".ogv"
|
||||||
|
${AddAssociationIfNoneExist} ".pdf"
|
||||||
${AddAssociationIfNoneExist} ".webm"
|
${AddAssociationIfNoneExist} ".webm"
|
||||||
|
|
||||||
; An empty string is used for the 5th param because PaleMoonHTML is not a
|
; An empty string is used for the 5th param because PaleMoonHTML is not a
|
||||||
|
|
@ -620,9 +622,11 @@
|
||||||
${EndIf}
|
${EndIf}
|
||||||
|
|
||||||
; Remove possibly badly associated file types
|
; Remove possibly badly associated file types
|
||||||
|
${FixBadFileAssociation} ".pdf"
|
||||||
${FixBadFileAssociation} ".oga"
|
${FixBadFileAssociation} ".oga"
|
||||||
${FixBadFileAssociation} ".ogg"
|
${FixBadFileAssociation} ".ogg"
|
||||||
${FixBadFileAssociation} ".ogv"
|
${FixBadFileAssociation} ".ogv"
|
||||||
|
${FixBadFileAssociation} ".pdf"
|
||||||
${FixBadFileAssociation} ".webm"
|
${FixBadFileAssociation} ".webm"
|
||||||
!macroend
|
!macroend
|
||||||
!define FixClassKeys "!insertmacro FixClassKeys"
|
!define FixClassKeys "!insertmacro FixClassKeys"
|
||||||
|
|
@ -840,17 +844,24 @@
|
||||||
ClearErrors
|
ClearErrors
|
||||||
WriteIniStr "$0" "TASKBAR" "Migrated" "true"
|
WriteIniStr "$0" "TASKBAR" "Migrated" "true"
|
||||||
${If} ${AtLeastWin7}
|
${If} ${AtLeastWin7}
|
||||||
; No need to check the default on Win8 and later
|
; If we didn't run the stub installer, AddTaskbarSC will be empty.
|
||||||
${If} ${AtMostWin2008R2}
|
; We determine whether to pin based on whether we're the default
|
||||||
; Check if the Pale Moon is the http handler for this user
|
; browser, or if we're on win8 or later, we always pin.
|
||||||
SetShellVarContext current ; Set SHCTX to the current user
|
${If} $AddTaskbarSC == ""
|
||||||
${IsHandlerForInstallDir} "http" $R9
|
; No need to check the default on Win8 and later
|
||||||
${If} $TmpVal == "HKLM"
|
${If} ${AtMostWin2008R2}
|
||||||
SetShellVarContext all ; Set SHCTX to all users
|
; Check if the 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}
|
||||||
${EndIf}
|
${EndIf}
|
||||||
${EndIf}
|
${If} "$R9" == "true"
|
||||||
${If} "$R9" == "true"
|
${OrIf} ${AtLeastWin8}
|
||||||
${OrIf} ${AtLeastWin8}
|
${PinToTaskBar}
|
||||||
|
${EndIf}
|
||||||
|
${ElseIf} $AddTaskbarSC == "1"
|
||||||
${PinToTaskBar}
|
${PinToTaskBar}
|
||||||
${EndIf}
|
${EndIf}
|
||||||
${EndIf}
|
${EndIf}
|
||||||
|
|
|
||||||
|
|
@ -75,6 +75,7 @@ VIAddVersionKey "OriginalFilename" "helper.exe"
|
||||||
!insertmacro InitHashAppModelId
|
!insertmacro InitHashAppModelId
|
||||||
!insertmacro IsHandlerForInstallDir
|
!insertmacro IsHandlerForInstallDir
|
||||||
!insertmacro IsPinnedToTaskBar
|
!insertmacro IsPinnedToTaskBar
|
||||||
|
!insertmacro IsUserAdmin
|
||||||
!insertmacro LogDesktopShortcut
|
!insertmacro LogDesktopShortcut
|
||||||
!insertmacro LogQuickLaunchShortcut
|
!insertmacro LogQuickLaunchShortcut
|
||||||
!insertmacro LogStartMenuShortcut
|
!insertmacro LogStartMenuShortcut
|
||||||
|
|
@ -245,6 +246,7 @@ Section "Uninstall"
|
||||||
${un.RegCleanFileHandler} ".oga" "PaleMoonHTML"
|
${un.RegCleanFileHandler} ".oga" "PaleMoonHTML"
|
||||||
${un.RegCleanFileHandler} ".ogg" "PaleMoonHTML"
|
${un.RegCleanFileHandler} ".ogg" "PaleMoonHTML"
|
||||||
${un.RegCleanFileHandler} ".ogv" "PaleMoonHTML"
|
${un.RegCleanFileHandler} ".ogv" "PaleMoonHTML"
|
||||||
|
${un.RegCleanFileHandler} ".pdf" "PaleMoonHTML"
|
||||||
${un.RegCleanFileHandler} ".webm" "PaleMoonHTML"
|
${un.RegCleanFileHandler} ".webm" "PaleMoonHTML"
|
||||||
${EndIf}
|
${EndIf}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue