Compare commits

...

12 Commits

9 changed files with 81 additions and 47 deletions

View File

@ -24,7 +24,7 @@ jobs:
echo "build.built-by=GitHub Actions" >> override.properties
echo "noExe=true" >> override.properties
- name: install crx3
run: go install github.com/mediabuyerbot/go-crx3/crx3@latest
run: go install github.com/mediabuyerbot/go-crx3/crx3@v1.4.1
- name: install dzip
run: go install github.com/delicb/dzip@latest
- name: install amo-version
@ -115,7 +115,7 @@ jobs:
echo "build.built-by=GitHub Actions" >> override.properties
echo "noExe=true" >> override.properties
- name: install crx3
run: go install github.com/mediabuyerbot/go-crx3/crx3@latest
run: go install github.com/mediabuyerbot/go-crx3/crx3@v1.4.1
- name: install dzip
run: go install github.com/delicb/dzip@latest
- name: install amo-version
@ -155,7 +155,7 @@ jobs:
bash -c 'echo "build.built-by=GitHub Actions" >> override.properties'
bash -c 'echo "noExe=true" >> override.properties'
- name: install crx3
run: go install github.com/mediabuyerbot/go-crx3/crx3@latest
run: go install github.com/mediabuyerbot/go-crx3/crx3@v1.4.1
- name: install dzip
run: go install github.com/delicb/dzip@latest
- name: install amo-version
@ -211,7 +211,7 @@ jobs:
bash -c 'echo "build.built-by=GitHub Actions" >> override.properties'
bash -c 'echo "noExe=true" >> override.properties'
- name: install crx3
run: go install github.com/mediabuyerbot/go-crx3/crx3@latest
run: go install github.com/mediabuyerbot/go-crx3/crx3@v1.4.1
- name: install dzip
run: go install github.com/delicb/dzip@latest
- name: install amo-version

View File

@ -1,3 +1,10 @@
Mon, July 8
-----------
- Fix a bug which caused the profile manager to fail to detect Firefox on some systems
- Fix a bug which caused the profile manager to use an unwritable directory on some systems
- Fix a bug where if user tried to run it from the home directory, the application would make sure that no firefoxes existed in any subdirectory before running
Thu, March 7
------------

View File

@ -6,23 +6,23 @@ Extension Versions
```md
i2p-in-private-browsing
1.48
https://addons.mozilla.org/firefox/downloads/file/4123613/i2p_in_private_browsing-1.48.xpi
2.6.0
https://addons.mozilla.org/firefox/downloads/file/4339795/i2p_in_private_browsing-2.6.0.xpi
noscript
11.4.29
https://addons.mozilla.org/firefox/downloads/file/4206186/noscript-11.4.29.xpi
11.4.34
https://addons.mozilla.org/firefox/downloads/file/4333280/noscript-11.4.34.xpi
localcdn-fork-of-decentraleyes
2.6.69
https://addons.mozilla.org/firefox/downloads/file/4303757/localcdn_fork_of_decentraleyes-2.6.69.xpi
2.6.72
https://addons.mozilla.org/firefox/downloads/file/4336546/localcdn_fork_of_decentraleyes-2.6.72.xpi
onion-in-container-browsing
0.82
https://addons.mozilla.org/firefox/downloads/file/3904685/onion_in_container_browsing-0.82.xpi
javascript-restrictor
0.18.1
https://addons.mozilla.org/firefox/downloads/file/4310951/javascript_restrictor-0.18.1.xpi
0.19
https://addons.mozilla.org/firefox/downloads/file/4339678/javascript_restrictor-0.19.xpi
ublock-origin
1.58.0
https://addons.mozilla.org/firefox/downloads/file/4290466/ublock_origin-1.58.0.xpi
1.59.0
https://addons.mozilla.org/firefox/downloads/file/4328681/ublock_origin-1.59.0.xpi
```
## Chromium
@ -32,15 +32,15 @@ __MSG_extensionName__
1.29
https://clients2.google.com/service/update2/crx
NoScript
11.4.30
11.4.33
https://clients2.google.com/service/update2/crx
LocalCDN
2.6.67
2.6.72
https://clients2.google.com/service/update2/crx
uBlock Origin
1.58.0
1.59.0
https://clients2.google.com/service/update2/crx
__MSG_extensionName__
0.18.1
0.19
https://clients2.google.com/service/update2/crx
```

View File

@ -522,6 +522,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="--input"/> <arg value="src/build"/>
<arg value="--main-jar"/> <arg value="i2pfirefox.jar"/>
<arg value="--main-class"/> <arg value="net.i2p.i2pfirefox.I2PBrowser"/>
<arg value="--add-launcher"/> <arg value="i2pbrowser-usability=src/usability.properties"/>
</exec>
<exec executable="rm" failonerror="true" osfamily="windows">
<arg value="-rf" />
@ -557,6 +558,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="--icon"/> <arg value="src/icon.png"/>
<arg value="--app-version"/> <arg value="1.0.0"/>
<arg value="--input"/> <arg value="src/build"/>
<arg value="--add-launcher"/> <arg value="i2pbrowser-usability=src/usability.properties"/>
<arg value="--main-jar"/> <arg value="i2pfirefox.jar"/>
<arg value="--main-class"/> <arg value="net.i2p.i2pfirefox.I2PBrowser"/>
</exec>
@ -574,6 +576,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="--icon"/> <arg value="src/icon.png"/>
<arg value="--app-version"/> <arg value="${release.number}"/>
<arg value="--input"/> <arg value="src/build"/>
<arg value="--add-launcher"/> <arg value="i2pbrowser-usability=src/usability.properties"/>
<arg value="--main-jar"/> <arg value="i2pfirefox.jar"/>
<arg value="--main-class"/> <arg value="net.i2p.i2pfirefox.I2PBrowser"/>
</exec>
@ -592,6 +595,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="--input"/> <arg value="src/build"/>
<arg value="--main-jar"/> <arg value="i2pfirefox.jar"/>
<arg value="--main-class"/> <arg value="net.i2p.i2pfirefox.I2PBrowser"/>
<arg value="--add-launcher"/> <arg value="i2pbrowser-usability=src/usability.properties"/>
</exec>
</target>
<target name="fedora-release" depends="jar">
@ -608,6 +612,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="--input"/> <arg value="src/build"/>
<arg value="--main-jar"/> <arg value="i2pfirefox.jar"/>
<arg value="--main-class"/> <arg value="net.i2p.i2pfirefox.I2PBrowser"/>
<arg value="--add-launcher"/> <arg value="i2pbrowser-usability=src/usability.properties"/>
</exec>
</target>
<target name="windows" depends="jar">
@ -628,6 +633,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="--input"/> <arg value="src/build"/>
<arg value="--main-jar"/> <arg value="i2pfirefox.jar"/>
<arg value="--main-class"/> <arg value="net.i2p.i2pfirefox.I2PBrowser"/>
<arg value="--add-launcher"/> <arg value="i2pbrowser-usability=src/usability.properties"/>
</exec>
</target>
<target name="windows-release" depends="jar">
@ -648,6 +654,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="--input"/> <arg value="src/build"/>
<arg value="--main-jar"/> <arg value="i2pfirefox.jar"/>
<arg value="--main-class"/> <arg value="net.i2p.i2pfirefox.I2PBrowser"/>
<arg value="--add-launcher"/> <arg value="i2pbrowser-usability=src/usability.properties"/>
</exec>
</target>
<target name="windows-msi" depends="jar">
@ -668,6 +675,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="--input"/> <arg value="src/build"/>
<arg value="--main-jar"/> <arg value="i2pfirefox.jar"/>
<arg value="--main-class"/> <arg value="net.i2p.i2pfirefox.I2PBrowser"/>
<arg value="--add-launcher"/> <arg value="i2pbrowser-usability=src/usability.properties"/>
</exec>
</target>
<target name="windows-msi-release" depends="jar">
@ -688,6 +696,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="--input"/> <arg value="src/build"/>
<arg value="--main-jar"/> <arg value="i2pfirefox.jar"/>
<arg value="--main-class"/> <arg value="net.i2p.i2pfirefox.I2PBrowser"/>
<arg value="--add-launcher"/> <arg value="i2pbrowser-usability=src/usability.properties"/>
</exec>
</target>
<target name="windows-portable" depends="jar">
@ -700,6 +709,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="--input"/> <arg value="src/build"/>
<arg value="--main-jar"/> <arg value="i2pfirefox.jar"/>
<arg value="--main-class"/> <arg value="net.i2p.i2pfirefox.I2PBrowser"/>
<arg value="--add-launcher"/> <arg value="i2pbrowser-usability=src/usability.properties"/>
</exec>
<copy file="LICENSE.md" todir="i2pbrowser-portable" overwrite="true"/>
<delete file="i2pbrowser-portable.zip"/>
@ -719,6 +729,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="--input"/> <arg value="src/build"/>
<arg value="--main-jar"/> <arg value="i2pfirefox.jar"/>
<arg value="--main-class"/> <arg value="net.i2p.i2pfirefox.I2PBrowser"/>
<arg value="--add-launcher"/> <arg value="i2pbrowser-usability=src/usability.properties"/>
</exec>
<copy file="LICENSE.md" todir="i2pbrowser-portable" overwrite="true"/>
<delete file="i2pbrowser-portable.zip"/>
@ -742,6 +753,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="--input"/> <arg value="src/build"/>
<arg value="--main-jar"/> <arg value="i2pfirefox.jar"/>
<arg value="--main-class"/> <arg value="net.i2p.i2pfirefox.I2PBrowser"/>
<arg value="--add-launcher"/> <arg value="i2pbrowser-usability=src/usability.properties"/>
</exec>
</target>
<target name="macos-release" depends="jar">
@ -757,6 +769,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="--input"/> <arg value="src/build"/>
<arg value="--main-jar"/> <arg value="i2pfirefox.jar"/>
<arg value="--main-class"/> <arg value="net.i2p.i2pfirefox.I2PBrowser"/>
<arg value="--add-launcher"/> <arg value="i2pbrowser-usability=src/usability.properties"/>
</exec>
</target>
<target name="macos-pkg" depends="jar">
@ -772,6 +785,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="--input"/> <arg value="src/build"/>
<arg value="--main-jar"/> <arg value="i2pfirefox.jar"/>
<arg value="--main-class"/> <arg value="net.i2p.i2pfirefox.I2PBrowser"/>
<arg value="--add-launcher"/> <arg value="i2pbrowser-usability=src/usability.properties"/>
</exec>
</target>
<target name="macos-pkg-release" depends="jar">
@ -787,6 +801,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="--input"/> <arg value="src/build"/>
<arg value="--main-jar"/> <arg value="i2pfirefox.jar"/>
<arg value="--main-class"/> <arg value="net.i2p.i2pfirefox.I2PBrowser"/>
<arg value="--add-launcher"/> <arg value="i2pbrowser-usability=src/usability.properties"/>
</exec>
</target>

View File

@ -1,3 +1,3 @@
#Build Number for ANT. Do not edit!
#Mon Jul 08 13:00:28 EDT 2024
build.number=720
#Tue Aug 20 20:53:41 EDT 2024
build.number=731

View File

@ -253,6 +253,8 @@ public class I2PBrowser extends I2PGenericUnsafeBrowser {
}
}
}
if (!this.chromium)
this.firefox = true;
}
return visitURL;
}

View File

@ -65,9 +65,7 @@ public class I2PCommonBrowser {
*
* @return the properties of the object
*/
public Properties getProperties() {
return prop;
}
public Properties getProperties() { return prop; }
/**
* Validates the user directory.
@ -89,7 +87,7 @@ public class I2PCommonBrowser {
if (!userDirFile.getAbsolutePath().contains("Program Files")) {
if (!userDirFile.getAbsolutePath().equals(
userHomeFile.getAbsolutePath())) {
userHomeFile.getAbsolutePath())) {
logger.info("user.dir is not inconvenient");
if (userDirFile.exists()) {
logger.info("user.dir exists");
@ -287,7 +285,7 @@ public class I2PCommonBrowser {
* @since 0.0.19
*/
protected String profileDirectory(String envVar, String browser, String base,
boolean app) {
boolean app) {
String profileDir = System.getenv(envVar);
if (profileDir != null && !profileDir.isEmpty()) {
File profileDirFile = new File(profileDir);
@ -309,9 +307,10 @@ public class I2PCommonBrowser {
* @return description of return value
*/
protected String profileDir(String file, String browser, String base,
boolean app) {
boolean app) {
String appString = app ? ".app" : "";
String profileDirName = String.format("i2p.%s.profile.%s%s", browser, base, appString);
String profileDirName =
String.format("i2p.%s.profile.%s%s", browser, base, appString);
File profileDir = new File(file, profileDirName);
return profileDir.getAbsolutePath();
}
@ -325,11 +324,12 @@ public class I2PCommonBrowser {
* @return true if the profile was successfully unpacked, false otherwise
*/
protected boolean unpackProfile(String profileDirectory, String browser,
String base) {
String base) {
logger.info("Unpacking base profile to " + profileDirectory);
try {
final InputStream resources = this.getClass().getClassLoader().getResourceAsStream(
"i2p." + browser + "." + base + ".profile.zip");
final InputStream resources =
this.getClass().getClassLoader().getResourceAsStream(
"i2p." + browser + "." + base + ".profile.zip");
if (resources == null) {
logger.info("Could not find resources");
return false;
@ -379,7 +379,7 @@ public class I2PCommonBrowser {
* @throws IOException if an I/O error occurs during copying
*/
protected void copyDirectory(File sourceDir, File destDir, String browser,
String base) throws IOException {
String base) throws IOException {
destDir = new File(destDir.toString().replace(
"i2p." + browser + "." + base + ".profile", ""));
if (!destDir.exists()) {
@ -387,7 +387,7 @@ public class I2PCommonBrowser {
}
for (String file : sourceDir.list()) {
copyDirectoryCompatibilityMode(new File(sourceDir, file),
new File(destDir, file), browser, base);
new File(destDir, file), browser, base);
}
}
@ -401,8 +401,8 @@ public class I2PCommonBrowser {
* @throws IOException if an I/O error occurs
*/
private void copyDirectoryCompatibilityMode(File sourceDirectory,
File destinationDirectory,
String browser, String base)
File destinationDirectory,
String browser, String base)
throws IOException {
if (sourceDirectory.isDirectory()) {
copyDirectory(sourceDirectory, destinationDirectory, browser, base);
@ -437,7 +437,7 @@ public class I2PCommonBrowser {
private void copyFile(File sourceFile, File destinationFile)
throws IOException {
try (InputStream in = new FileInputStream(sourceFile);
OutputStream out = new FileOutputStream(destinationFile)) {
OutputStream out = new FileOutputStream(destinationFile)) {
byte[] buffer = new byte[1024];
int length;
while ((length = in.read(buffer)) > 0) {
@ -475,9 +475,7 @@ public class I2PCommonBrowser {
* @return true if the proxy is ready, false if it is not.
* @since 0.0.1
*/
public boolean waitForProxy() {
return waitForProxy(CONFIGURED_TIMEOUT);
}
public boolean waitForProxy() { return waitForProxy(CONFIGURED_TIMEOUT); }
/**
* Waits for an HTTP proxy on port 4444 to be ready.
@ -555,9 +553,7 @@ public class I2PCommonBrowser {
*
* @param time
*/
public void setProxyTimeoutTime(int time) {
CONFIGURED_TIMEOUT = time;
}
public void setProxyTimeoutTime(int time) { CONFIGURED_TIMEOUT = time; }
/**
* Joins the elements of the given string array into a single string.
@ -594,6 +590,13 @@ public class I2PCommonBrowser {
* @return the found file or null if not found
*/
public File searchFile(File directory, String search) {
File hd = new File(System.getProperty("user.home"));
if (hd != null) {
if (directory.getAbsolutePath().equals(hd.getAbsolutePath()))
return null;
}
if (directory == null || !directory.exists() || !directory.canRead())
return null;
if (directory.isDirectory()) {
File[] files = directory.listFiles();
for (File file : files) {
@ -610,11 +613,16 @@ public class I2PCommonBrowser {
}
public File userHomeDir() {
File hd = new File(System.getProperty("user.dir"));
if (hd == null || !hd.exists()) {
hd = new File(System.getProperty("user.home"));
File rd = new File(System.getProperty("user.dir"));
File hd = new File(System.getProperty("user.home"));
if (rd == null || !rd.exists()) {
if (hd == null || !hd.exists()) {
if (rd.getAbsolutePath().equals(hd.getAbsolutePath()))
return null;
}
return rd;
}
logger.info("Runtime directory discovered at: "+ hd);
return hd;
logger.info("Runtime directory discovered at: " + rd);
return rd;
}
}

View File

@ -190,7 +190,7 @@ public class I2PBrowserPlugin extends I2PBrowser implements ClientApp {
// Ubuntu GNOME does not work, SystemTray.isSupported() returns false
String xdg = System.getenv("XDG_CURRENT_DESKTOP");
boolean dflt = SystemVersion.isWindows() || SystemVersion.isMac() ||
//"XFCE".equals(xdg) ||
"XFCE".equals(xdg) ||
"KDE".equals(xdg) || "LXDE".equals(xdg);
return _context.getProperty(PROP_DTG_ENABLED, dflt);
}

2
src/usability.properties Normal file
View File

@ -0,0 +1,2 @@
main-class=net.i2p.i2pfirefox.I2PBrowser
arguments=-usability