Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(bundler/nsis): add minimum webview2 version checks #10339

Merged
merged 19 commits into from
Aug 23, 2024
Merged
Changes from 1 commit
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
36e2425
Add ensure minimum webview2 version
Legend-Master Jul 21, 2024
ea13a68
needsadmin
Legend-Master Jul 21, 2024
9e1376e
Add setting and change file
Legend-Master Jul 21, 2024
eca62cf
Forget to change hard coded version
Legend-Master Jul 21, 2024
ff50c73
Be clear it's for nsis installer
Legend-Master Jul 21, 2024
fb2278e
Wrong quote
Legend-Master Jul 21, 2024
507de44
Add comment abuot chromium updater docs
Legend-Master Jul 21, 2024
35d154f
Merge remote-tracking branch 'upstream/dev' into nsis-ensure-webview2…
Legend-Master Jul 31, 2024
4dedf80
Merge branch 'dev' into nsis-ensure-webview2-version
Legend-Master Jul 31, 2024
21b4c7e
Merge remote-tracking branch 'upstream/dev' into nsis-ensure-webview2…
Legend-Master Aug 4, 2024
56b46ab
Merge branch 'nsis-ensure-webview2-version' of https://github.com/Leg…
Legend-Master Aug 4, 2024
039b5c2
Merge remote-tracking branch 'upstream/dev' into nsis-ensure-webview2…
Legend-Master Aug 22, 2024
0b7e61f
Use path from registry key and string version
Legend-Master Aug 22, 2024
2193ee7
Update .changes/nsis-ensure-webview2-version.md
Legend-Master Aug 22, 2024
d7c9074
Add warning message box instead of force abort
Legend-Master Aug 22, 2024
da34e94
Tweak name and description
Legend-Master Aug 23, 2024
c366f77
Move retry down
Legend-Master Aug 23, 2024
71257a4
Merge remote-tracking branch 'upstream/dev' into nsis-ensure-webview2…
Legend-Master Aug 23, 2024
bc8e468
Update .changes/nsis-ensure-webview2-version.md [skip ci]
amrbashir Aug 23, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
115 changes: 67 additions & 48 deletions tooling/bundler/src/bundle/windows/templates/installer.nsi
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ ${StrLoc}
!define WEBVIEW2INSTALLERARGS "{{webview2_installer_args}}"
!define WEBVIEW2BOOTSTRAPPERPATH "{{webview2_bootstrapper_path}}"
!define WEBVIEW2INSTALLERPATH "{{webview2_installer_path}}"
!define MINIMUMWEBVIEW2VERSION "130"
!define UNINSTKEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCTNAME}"
!define MANUPRODUCTKEY "Software\${MANUFACTURER}\${PRODUCTNAME}"
!define UNINSTALLERSIGNCOMMAND "{{uninstaller_sign_cmd}}"
Expand Down Expand Up @@ -499,57 +500,75 @@ Section WebView2
${EndIf}
ReadRegStr $5 HKCU "SOFTWARE\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" "pv"

StrCmp $4 "" 0 webview2_done
StrCmp $5 "" 0 webview2_done

; Webview2 installation
;
; Skip if updating
${If} $UpdateMode <> 1
!if "${INSTALLWEBVIEW2MODE}" == "downloadBootstrapper"
Delete "$TEMP\MicrosoftEdgeWebview2Setup.exe"
DetailPrint "$(webview2Downloading)"
NSISdl::download "https://go.microsoft.com/fwlink/p/?LinkId=2124703" "$TEMP\MicrosoftEdgeWebview2Setup.exe"
Pop $0
${If} $0 = 0
DetailPrint "$(webview2DownloadSuccess)"
${If} $4 == ""
${AndIf} $5 == ""
; Webview2 installation
;
; Skip if updating
${If} $UpdateMode <> 1
!if "${INSTALLWEBVIEW2MODE}" == "downloadBootstrapper"
Delete "$TEMP\MicrosoftEdgeWebview2Setup.exe"
DetailPrint "$(webview2Downloading)"
NSISdl::download "https://go.microsoft.com/fwlink/p/?LinkId=2124703" "$TEMP\MicrosoftEdgeWebview2Setup.exe"
Pop $0
${If} $0 = 0
DetailPrint "$(webview2DownloadSuccess)"
${Else}
DetailPrint "$(webview2DownloadError)"
Abort "$(webview2AbortError)"
${EndIf}
StrCpy $6 "$TEMP\MicrosoftEdgeWebview2Setup.exe"
Goto install_webview2
!endif

!if "${INSTALLWEBVIEW2MODE}" == "embedBootstrapper"
Delete "$TEMP\MicrosoftEdgeWebview2Setup.exe"
File "/oname=$TEMP\MicrosoftEdgeWebview2Setup.exe" "${WEBVIEW2BOOTSTRAPPERPATH}"
DetailPrint "$(installingWebview2)"
StrCpy $6 "$TEMP\MicrosoftEdgeWebview2Setup.exe"
Goto install_webview2
!endif

!if "${INSTALLWEBVIEW2MODE}" == "offlineInstaller"
Delete "$TEMP\MicrosoftEdgeWebView2RuntimeInstaller.exe"
File "/oname=$TEMP\MicrosoftEdgeWebView2RuntimeInstaller.exe" "${WEBVIEW2INSTALLERPATH}"
DetailPrint "$(installingWebview2)"
StrCpy $6 "$TEMP\MicrosoftEdgeWebView2RuntimeInstaller.exe"
Goto install_webview2
!endif

Goto webview2_done

install_webview2:
DetailPrint "$(installingWebview2)"
; $6 holds the path to the webview2 installer
ExecWait "$6 ${WEBVIEW2INSTALLERARGS} /install" $1
${If} $1 = 0
DetailPrint "$(webview2InstallSuccess)"
${Else}
DetailPrint "$(webview2InstallError)"
Abort "$(webview2AbortError)"
${EndIf}
webview2_done:
${EndIf}
${Else}
!if "${MINIMUMWEBVIEW2VERSION}" != ""
${If} $4 != ""
${VersionCompare} "${MINIMUMWEBVIEW2VERSION}" "$4" $R0
${Else}
DetailPrint "$(webview2DownloadError)"
Abort "$(webview2AbortError)"
${VersionCompare} "${MINIMUMWEBVIEW2VERSION}" "$5" $R0
${EndIf}
StrCpy $6 "$TEMP\MicrosoftEdgeWebview2Setup.exe"
Goto install_webview2
!endif

!if "${INSTALLWEBVIEW2MODE}" == "embedBootstrapper"
Delete "$TEMP\MicrosoftEdgeWebview2Setup.exe"
File "/oname=$TEMP\MicrosoftEdgeWebview2Setup.exe" "${WEBVIEW2BOOTSTRAPPERPATH}"
DetailPrint "$(installingWebview2)"
StrCpy $6 "$TEMP\MicrosoftEdgeWebview2Setup.exe"
Goto install_webview2
!endif

!if "${INSTALLWEBVIEW2MODE}" == "offlineInstaller"
Delete "$TEMP\MicrosoftEdgeWebView2RuntimeInstaller.exe"
File "/oname=$TEMP\MicrosoftEdgeWebView2RuntimeInstaller.exe" "${WEBVIEW2INSTALLERPATH}"
DetailPrint "$(installingWebview2)"
StrCpy $6 "$TEMP\MicrosoftEdgeWebView2RuntimeInstaller.exe"
Goto install_webview2
!endif

Goto webview2_done

install_webview2:
DetailPrint "$(installingWebview2)"
; $6 holds the path to the webview2 installer
ExecWait "$6 ${WEBVIEW2INSTALLERARGS} /install" $1
${If} $1 = 0
DetailPrint "$(webview2InstallSuccess)"
${Else}
DetailPrint "$(webview2InstallError)"
Abort "$(webview2AbortError)"
${If} $R0 = 1
DetailPrint "$(installingWebview2)"
ExecWait `"C:\Program Files (x86)\Microsoft\EdgeUpdate\MicrosoftEdgeUpdate.exe" /install appguid={F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}` $1
Legend-Master marked this conversation as resolved.
Show resolved Hide resolved
${If} $1 = 0
DetailPrint "$(webview2InstallSuccess)"
${Else}
DetailPrint "$(webview2InstallError)"
Abort "$(webview2AbortError)"
${EndIf}
${EndIf}
webview2_done:
!endif
${EndIf}
SectionEnd

Expand Down
Loading