From e4ea17f92b6691e838be1caa8da2ae38265f9ad8 Mon Sep 17 00:00:00 2001 From: crschnick Date: Mon, 21 Sep 2026 17:46:55 +0000 Subject: [PATCH] Rework --- .../io/xpipe/app/prefs/HttpProxyCategory.java | 20 +------------------ .../java/io/xpipe/app/util/HttpProxy.java | 15 ++++++++++++++ build.gradle | 7 ++++--- 3 files changed, 20 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/prefs/HttpProxyCategory.java b/app/src/main/java/io/xpipe/app/prefs/HttpProxyCategory.java index 3f7cb81e9..5a9687b05 100644 --- a/app/src/main/java/io/xpipe/app/prefs/HttpProxyCategory.java +++ b/app/src/main/java/io/xpipe/app/prefs/HttpProxyCategory.java @@ -140,25 +140,7 @@ public class HttpProxyCategory extends AppPrefsCategory { DataStore.class, r -> HttpProxy.canUseAsProxy(r.asNeeded()), StoreViewState.get().getAllConnectionsCategory(), - null) { - @Override - protected String toName(DataStoreEntry entry) { - if (entry == null) { - return AppI18n.get("systemDefault"); - } - - return super.toName(entry); - } - - @Override - protected String toGraphic(DataStoreEntry entry) { - if (entry == null) { - return "proc:networkProxy_icon.svg"; - } - - return super.toGraphic(entry); - } - }; + null); return comp.build(); }), () -> StoreViewState.get() != null && StoreViewState.get().isInitialized()); diff --git a/app/src/main/java/io/xpipe/app/util/HttpProxy.java b/app/src/main/java/io/xpipe/app/util/HttpProxy.java index e0cf7ba5e..93c460528 100644 --- a/app/src/main/java/io/xpipe/app/util/HttpProxy.java +++ b/app/src/main/java/io/xpipe/app/util/HttpProxy.java @@ -46,6 +46,21 @@ public class HttpProxy { } } + if (OsType.ofLocal() == OsType.WINDOWS) { + var enabled = WindowsRegistry.local().readIntegerValueIfPresent(WindowsRegistry.HKEY_CURRENT_USER, + "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", "ProxyEnable"); + if (enabled.orElse(0) != 0) { + var server = WindowsRegistry.local().readStringValueIfPresent(WindowsRegistry.HKEY_CURRENT_USER, + "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", "ProxyServer"); + if (server.isPresent()) { + var split = server.get().split(":"); + var addr = split[0]; + var port = split.length > 1 ? Integer.parseInt(split[1]) : 8080; + return Optional.of(new HttpProxy(addr, port, null, null, false)); + } + } + } + return Optional.empty(); } diff --git a/build.gradle b/build.gradle index 5ff5805b9..ff58991e9 100644 --- a/build.gradle +++ b/build.gradle @@ -134,7 +134,8 @@ def getBaseJvmArgs() { // JavaFX performance adjustments jvmRunArgs += [ "-Dprism.scrollcacheopt=true", - "-Dprism.cacheshapes=true" + "-Dprism.cacheshapes=true", + "-Dprism.dirtyregioncount=15", ] @@ -144,6 +145,7 @@ def getBaseJvmArgs() { "--add-opens", "java.base/java.lang=$appPackage", "--add-opens", "java.base/java.net=$appPackage", "--add-opens", "java.base/java.nio.file=$appPackage", + "--add-opens", "java.base/java.util.regex=$appPackage", "--add-opens", "java.base/java.io=$appPackage", "--add-opens", "jdk.zipfs/jdk.nio.zipfs=io.xpipe.modulefs", ] @@ -164,12 +166,11 @@ def getDaemonJvmArgs() { // Use custom JavaFX preloader jvmRunArgs += ["-Djavafx.preloader=" + packageName("core.AppPreloader")] - // Why is this not on by default? ... + // Http configuration // https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/doc-files/net-properties.html // https://stackoverflow.com/questions/53333556/proxy-authentication-with-jdk-11-httpclient // https://stackoverflow.com/questions/75150081/ioexception-too-many-authentication-attempts-limit-3-when-using-jdk-httpcli jvmRunArgs += [ - '-Djava.net.useSystemProxies=true', '-Djdk.http.auth.proxying.disabledSchemes=""', '-Djdk.http.auth.tunneling.disabledSchemes=""', '-Djdk.httpclient.auth.retrylimit=1'