103 lines
2.7 KiB
NSIS
103 lines
2.7 KiB
NSIS
Unicode true
|
|
|
|
OutFile "setup-stub.exe"
|
|
|
|
; On real installer executables, test breakpoint checks are no-ops.
|
|
; See test_stub.nsi for the test version of this macro.
|
|
!macro IsTestBreakpointSet breakpointNumber
|
|
!macroend
|
|
|
|
Icon "firefox64.ico"
|
|
!include "LogicLib.nsh"
|
|
!include "FileFunc.nsh"
|
|
!include "TextFunc.nsh"
|
|
!include "WinVer.nsh"
|
|
!include "WordFunc.nsh"
|
|
|
|
!include "stub_shared_defs.nsh"
|
|
|
|
Function CheckCpuSupportsSSE
|
|
; 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.
|
|
System::Call "kernel32::IsProcessorFeaturePresent(i 10)i .R7"
|
|
StrCpy $CpuSupportsSSE "$R7"
|
|
FunctionEnd
|
|
|
|
!include "stub.nsh"
|
|
|
|
Page custom createProfileCleanup
|
|
Page custom createInstall ; Download / Installation page
|
|
|
|
Function CanWrite
|
|
StrCpy $CanWriteToInstallDir "false"
|
|
|
|
StrCpy $0 "$INSTDIR"
|
|
; Use the existing directory when it exists
|
|
${Unless} ${FileExists} "$INSTDIR"
|
|
; Get the topmost directory that exists for new installs
|
|
${DoUntil} ${FileExists} "$0"
|
|
${GetParent} "$0" $0
|
|
${If} "$0" == ""
|
|
Return
|
|
${EndIf}
|
|
${Loop}
|
|
${EndUnless}
|
|
|
|
GetTempFileName $2 "$0"
|
|
Delete $2
|
|
CreateDirectory "$2"
|
|
|
|
${If} ${FileExists} "$2"
|
|
${If} ${FileExists} "$INSTDIR"
|
|
GetTempFileName $3 "$INSTDIR"
|
|
${Else}
|
|
GetTempFileName $3 "$2"
|
|
${EndIf}
|
|
${If} ${FileExists} "$3"
|
|
Delete "$3"
|
|
StrCpy $CanWriteToInstallDir "true"
|
|
${EndIf}
|
|
RmDir "$2"
|
|
${EndIf}
|
|
FunctionEnd
|
|
|
|
Function .onInit
|
|
Call CommonOnInit
|
|
FunctionEnd
|
|
|
|
Function .onUserAbort
|
|
WebBrowser::CancelTimer $TimerHandle
|
|
|
|
${If} "$IsDownloadFinished" != ""
|
|
; Go ahead and cancel the download so it doesn't keep running while this
|
|
; prompt is up. We'll resume it if the user decides to continue.
|
|
InetBgDL::Get /RESET /END
|
|
|
|
${ShowTaskDialog} $(STUB_CANCEL_PROMPT_HEADING) \
|
|
$(STUB_CANCEL_PROMPT_MESSAGE) \
|
|
$(STUB_CANCEL_PROMPT_BUTTON_CONTINUE) \
|
|
$(STUB_CANCEL_PROMPT_BUTTON_EXIT)
|
|
Pop $0
|
|
${If} $0 == 1002
|
|
; The cancel button was clicked
|
|
StrCpy $ExitCode "${ERR_DOWNLOAD_CANCEL}"
|
|
Call LaunchHelpPage
|
|
Call SendPing
|
|
${Else}
|
|
; Either the continue button was clicked or the dialog was dismissed
|
|
Call StartDownload
|
|
${EndIf}
|
|
${Else}
|
|
Call SendPing
|
|
${EndIf}
|
|
|
|
; Aborting the abort will allow SendPing to hide the installer window and
|
|
; close the installer after it sends the metrics ping, or allow us to just go
|
|
; back to installing if that's what the user selected.
|
|
Abort
|
|
FunctionEnd
|
|
|
|
|
|
Section
|
|
SectionEnd
|