This enables the jpackage to launch almost any browser as an I2P-enabled browser. It will choose Firefox variants first, Chromium variants second, and falls back to setting environment variables before spawning the browser process. It also removes the Firefox dependency from the NSIS build

This commit is contained in:
idk
2022-08-29 19:42:25 -04:00
parent 910aeed82c
commit 646778680d
2 changed files with 29 additions and 72 deletions

View File

@@ -77,9 +77,9 @@ public class WinLauncher {
if (i2pIsRunning()) { if (i2pIsRunning()) {
logger.warning("I2P is already running"); logger.warning("I2P is already running");
I2PFirefox i2pFirefox = new I2PFirefox(); I2PBrowser i2pBrowser = new I2PBrowser();
System.out.println("I2PFirefox"); System.out.println("i2pBrowser");
i2pFirefox.launch(privateBrowsing); i2pBrowser.launch(privateBrowsing);
return; return;
} }

View File

@@ -14,21 +14,14 @@ UniCode true
!include i2pbrowser-jpackage.nsi !include i2pbrowser-jpackage.nsi
!include FindProcess.nsh !include FindProcess.nsh
var FFINSTEXE
var FFNONTORINSTEXE
var I2PINSTEXE var I2PINSTEXE
Var PARENTOPTIONS Var PARENTOPTIONS
SetOverwrite on SetOverwrite on
!define FFINSTEXE
!define FFNONTORINSTEXE
!define FFINSTEXE32 "$PROGRAMFILES32\Mozilla Firefox\"
!define FFINSTEXE64 "$PROGRAMFILES64\Mozilla Firefox\"
!define I2PINSTEXE !define I2PINSTEXE
!define I2PINSTEXE_USERMODE "$LOCALAPPDATA\i2p" !define I2PINSTEXE_USERMODE "$LOCALAPPDATA\i2p"
!define RAM_NEEDED_FOR_64BIT 0x80000000 !define RAM_NEEDED_FOR_64BIT 0x80000000
InstallDir "$PROGRAMFILES64\${COMPANYNAME}\${APPNAME}" InstallDir "$PROGRAMFILES64\${COMPANYNAME}\${APPNAME}"
@@ -129,12 +122,6 @@ PageEx license
licensetext "${LICENSE_TITLE}" licensetext "${LICENSE_TITLE}"
licensedata "licenses\LICENSE.txt" licensedata "licenses\LICENSE.txt"
PageExEnd PageExEnd
PageEx directory
dirtext "${FIREFOX_MESSAGE}"
dirvar $FFINSTEXE
dirvar $FFNONTORINSTEXE
PageCallbacks firefoxDetect
PageExEnd
PageEx directory PageEx directory
dirtext "${I2P_MESSAGE}" dirtext "${I2P_MESSAGE}"
dirvar $I2PINSTEXE dirvar $I2PINSTEXE
@@ -142,7 +129,7 @@ PageEx directory
PageExEnd PageExEnd
Page instfiles Page instfiles
!include i2pbrowser-mozcompat.nsi #!include i2pbrowser-mozcompat.nsi
Function .onInit Function .onInit
StrCpy $I2PINSTEXE "${I2PINSTEXE_USERMODE}" StrCpy $I2PINSTEXE "${I2PINSTEXE_USERMODE}"
@@ -153,64 +140,32 @@ Function .onInit
StrCpy $I2PINSTEXE "${I2PINSTEXE_USERMODE}" StrCpy $I2PINSTEXE "${I2PINSTEXE_USERMODE}"
${EndIf} ${EndIf}
!insertmacro MUI_LANGDLL_DISPLAY !insertmacro MUI_LANGDLL_DISPLAY
Call ShouldInstall64Bit #Call ShouldInstall64Bit
${If} $0 == 1
${If} ${FileExists} "${FFINSTEXE64}\firefox.exe"
StrCpy $FFINSTEXE "${FFINSTEXE64}"
StrCpy $FFNONTORINSTEXE "${FFINSTEXE64}"
${ElseIf} ${FileExists} "${FFINSTEXE32}\firefox.exe"
StrCpy $FFINSTEXE "${FFINSTEXE32}"
StrCpy $FFNONTORINSTEXE "${FFINSTEXE32}"
${EndIf}
${If} ${FileExists} "$PROFILE\OneDrive\Desktop\Tor Browser\Browser\firefox.exe"
StrCpy $FFINSTEXE "$PROFILE\OneDrive\Desktop\Tor Browser\Browser\"
${EndIf}
${If} ${FileExists} "$PROFILE\Desktop\Tor Browser\Browser\firefox.exe"
StrCpy $FFINSTEXE "$PROFILE\Desktop\Tor Browser\Browser\"
${EndIf}
${Else}
${If} ${FileExists} "${FFINSTEXE32}\firefox.exe"
StrCpy $FFINSTEXE "${FFINSTEXE32}"
StrCpy $FFNONTORINSTEXE "${FFINSTEXE32}"
${EndIf}
${If} ${FileExists} "$PROFILE\OneDrive\Desktop\Tor Browser\Browser\firefox.exe"
StrCpy $FFINSTEXE "$PROFILE\OneDrive\Desktop\Tor Browser\Browser\"
${EndIf}
${If} ${FileExists} "$PROFILE\Desktop\Tor Browser\Browser\firefox.exe"
StrCpy $FFINSTEXE "$PROFILE\Desktop\Tor Browser\Browser\"
${EndIf}
${EndIf}
# look for user installs # look for user installs
FunctionEnd FunctionEnd
Function firefoxDetect
${If} ${FileExists} "$FFINSTEXE\firefox.exe"
Abort directory
${EndIf}
FunctionEnd
Function routerDetect Function routerDetect
createDirectory $I2PINSTEXE createDirectory $I2PINSTEXE
SetOutPath $I2PINSTEXE SetOutPath $I2PINSTEXE
File /nonfatal /a /r "I2P\" File /a /r "I2P\"
File /nonfatal /a /r "I2P\I2P.exe" File /nonfatal /a /r "I2P\I2P.exe"
File /nonfatal "I2P\config\jpackaged" File "I2P\config\jpackaged"
createDirectory "$I2PINSTEXE\" createDirectory "$I2PINSTEXE\"
SetOutPath "$I2PINSTEXE\" SetOutPath "$I2PINSTEXE\"
IfFileExists $I2PINSTEXE\router.config +2 0 IfFileExists $I2PINSTEXE\router.config +2 0
File /nonfatal /a /r "I2P/config/router.config" File /a /r "I2P/config/router.config"
IfFileExists $I2PINSTEXE\clients.config +2 0 IfFileExists $I2PINSTEXE\clients.config +2 0
File /nonfatal /a /r "I2P/config/clients.config" File /a /r "I2P/config/clients.config"
IfFileExists $I2PINSTEXE\wrapper.config +2 0 IfFileExists $I2PINSTEXE\wrapper.config +2 0
File /nonfatal /a /r "I2P/config/wrapper.config" File /a /r "I2P/config/wrapper.config"
IfFileExists $I2PINSTEXE\eepsite +2 0 IfFileExists $I2PINSTEXE\eepsite +2 0
File /nonfatal /a /r "I2P/config/eepsite" File /a /r "I2P/config/eepsite"
IfFileExists $I2PINSTEXE\webapps +2 0 IfFileExists $I2PINSTEXE\webapps +2 0
File /nonfatal /a /r "I2P/config/webapps" File /a /r "I2P/config/webapps"
File /nonfatal /a /r "I2P/config/certificates" File /a /r "I2P/config/certificates"
File /nonfatal /a /r "I2P/config/geoip" File /a /r "I2P/config/geoip"
File /nonfatal /a /r "I2P/config/i2ptunnel.config" File /a /r "I2P/config/i2ptunnel.config"
Abort directory Abort directory
FunctionEnd FunctionEnd
@@ -236,27 +191,29 @@ ${If} ${Silent}
${If} ${Silent} ${If} ${Silent}
ReadEnvStr $0 OLD_I2P_VERSION ReadEnvStr $0 OLD_I2P_VERSION
${If} $0 < ${I2P_VERSION} ${If} $0 < ${I2P_VERSION}
rmDir /r $I2PINSTEXE/app call routerDetect
/*rmDir /r $I2PINSTEXE/app
rmDir /r $I2PINSTEXE/runtime rmDir /r $I2PINSTEXE/runtime
File /nonfatal /a /r "I2P\" File /a /r "I2P\"
File /nonfatal "I2P\config\jpackaged" File "I2P\config\jpackaged"
createDirectory "$I2PINSTEXE\" createDirectory "$I2PINSTEXE\"
SetOutPath "$I2PINSTEXE\" SetOutPath "$I2PINSTEXE\"
File /nonfatal /a /r "I2P/config/certificates" File /a /r "I2P/config/certificates"
File /nonfatal /a /r "I2P/config/geoip" File /a /r "I2P/config/geoip"*/
${EndIf} ${EndIf}
${Else} ${Else}
rmDir /r $I2PINSTEXE/app call routerDetect
/*rmDir /r $I2PINSTEXE/app
rmDir /r $I2PINSTEXE/runtime rmDir /r $I2PINSTEXE/runtime
File /nonfatal /a /r "I2P\" File /a /r "I2P\"
File /nonfatal "I2P\config\jpackaged" File "I2P\config\jpackaged"
createDirectory "$I2PINSTEXE\" createDirectory "$I2PINSTEXE\"
SetOutPath "$I2PINSTEXE\" SetOutPath "$I2PINSTEXE\"
File /nonfatal /a /r "I2P/config/certificates" File /a /r "I2P/config/certificates"
File /nonfatal /a /r "I2P/config/geoip" File /a /r "I2P/config/geoip"*/
${EndIf} ${EndIf}
${EndIf} ${EndIf}
@@ -308,7 +265,7 @@ ${If} ${Silent}
SetOutPath "$I2PAPPDATA" SetOutPath "$I2PAPPDATA"
IfFileExists "$LOCALAPPDATA\I2P\eepsite\docroot" +2 0 IfFileExists "$LOCALAPPDATA\I2P\eepsite\docroot" +2 0
File /nonfatal /a /r "I2P\eepsite" File /a /r "I2P\eepsite"
createDirectory "$I2PINSTEXE" createDirectory "$I2PINSTEXE"
SetOutPath "$I2PINSTEXE" SetOutPath "$I2PINSTEXE"