Source code

Revision control

Copy as Markdown

Other Tools

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↩