Files
kestrove-desktop/src-tauri/windows/hooks.nsh
T
samiandClaude Opus 5.5 95ce03ba06
ci / build (ubuntu-22.04) (push) Canceled after 0s
ci / build (windows-2025) (push) Canceled after 0s
ci / deny (push) Canceled after 0s
Trust the Chrome Web Store extension (pmhfoafjoogobhfadaicklhkldgnafmk)
The store build has its own id, so the native-messaging manifest refused it
and the extension reported the app as not running. Chrome now allows the
store id and the unpacked development id, in the NSIS hook and in both
install scripts; --chrome-id / -ChromeId take a list.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 07:21:09 +04:00

37 lines
2.5 KiB
NSIS

; Kestrove NSIS installer hooks (tauri.conf.json → bundle.windows.nsis.installerHooks).
; Registers the browser extension's native messaging host for the current user (HKCU, no admin), like
; native-messaging/install.ps1: a manifest next to kestrove-nmh.exe ("path" relative to the manifest, which
; Chrome and Firefox allow on Windows) and one registry key per browser.
; Extension ids: keep in sync with kestrove-apple/App/BrowserIntegration.swift (NativeHostRegistration).
; Chrome: the Chrome Web Store build, then the unpacked development build (pinned by the manifest key).
!define KV_HOST "app.kestrove.nmh"
!define KV_CHROME_ORIGINS '"chrome-extension://pmhfoafjoogobhfadaicklhkldgnafmk/", "chrome-extension://kogapfibnnpeapfcjkkpgjddbhnjfein/"'
!define KV_FIREFOX_IDS '"[email protected]"'
!macro NSIS_HOOK_POSTINSTALL
FileOpen $0 "$INSTDIR\${KV_HOST}.chrome.json" w
FileWrite $0 '{"name": "${KV_HOST}", "description": "Kestrove", "path": "kestrove-nmh.exe", "type": "stdio", "allowed_origins": [${KV_CHROME_ORIGINS}]}'
FileClose $0
FileOpen $0 "$INSTDIR\${KV_HOST}.firefox.json" w
FileWrite $0 '{"name": "${KV_HOST}", "description": "Kestrove", "path": "kestrove-nmh.exe", "type": "stdio", "allowed_extensions": [${KV_FIREFOX_IDS}]}'
FileClose $0
WriteRegStr HKCU "Software\Google\Chrome\NativeMessagingHosts\${KV_HOST}" "" "$INSTDIR\${KV_HOST}.chrome.json"
WriteRegStr HKCU "Software\Chromium\NativeMessagingHosts\${KV_HOST}" "" "$INSTDIR\${KV_HOST}.chrome.json"
WriteRegStr HKCU "Software\Microsoft\Edge\NativeMessagingHosts\${KV_HOST}" "" "$INSTDIR\${KV_HOST}.chrome.json"
WriteRegStr HKCU "Software\BraveSoftware\Brave-Browser\NativeMessagingHosts\${KV_HOST}" "" "$INSTDIR\${KV_HOST}.chrome.json"
WriteRegStr HKCU "Software\Vivaldi\NativeMessagingHosts\${KV_HOST}" "" "$INSTDIR\${KV_HOST}.chrome.json"
WriteRegStr HKCU "Software\Mozilla\NativeMessagingHosts\${KV_HOST}" "" "$INSTDIR\${KV_HOST}.firefox.json"
!macroend
!macro NSIS_HOOK_PREUNINSTALL
DeleteRegKey HKCU "Software\Google\Chrome\NativeMessagingHosts\${KV_HOST}"
DeleteRegKey HKCU "Software\Chromium\NativeMessagingHosts\${KV_HOST}"
DeleteRegKey HKCU "Software\Microsoft\Edge\NativeMessagingHosts\${KV_HOST}"
DeleteRegKey HKCU "Software\BraveSoftware\Brave-Browser\NativeMessagingHosts\${KV_HOST}"
DeleteRegKey HKCU "Software\Vivaldi\NativeMessagingHosts\${KV_HOST}"
DeleteRegKey HKCU "Software\Mozilla\NativeMessagingHosts\${KV_HOST}"
Delete "$INSTDIR\${KV_HOST}.chrome.json"
Delete "$INSTDIR\${KV_HOST}.firefox.json"
!macroend