[tor-commits] [tor-browser/tor-browser-68.1.0esr-9.0-3] squash! Orfox: Centralized proxy applied to AbstractCommunicator and BaseResources.

gk at torproject.org gk at torproject.org
Thu Oct 17 18:48:26 UTC 2019


commit 55b6cd7f3139dd0069ba2c69ec6d08da038594ad
Author: Matthew Finkel <Matthew.Finkel at gmail.com>
Date:   Sat Oct 12 00:48:05 2019 +0000

    squash! Orfox: Centralized proxy applied to AbstractCommunicator and BaseResources.
    
    Bug 31144 - ESR68 Network Code Review
---
 .../base/java/org/mozilla/gecko/GeckoApplication.java       | 12 +++++++++---
 .../src/main/java/org/mozilla/gecko/util/BitmapUtils.java   | 13 +++----------
 2 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java b/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
index 26e06b55ecfc..bb3cdec7c0fe 100644
--- a/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
+++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
@@ -61,6 +61,7 @@ import org.mozilla.gecko.util.GeckoBundle;
 import org.mozilla.gecko.util.HardwareUtils;
 import org.mozilla.gecko.util.IntentUtils;
 import org.mozilla.gecko.util.PRNGFixes;
+import org.mozilla.gecko.util.ProxySelector;
 import org.mozilla.gecko.util.ShortcutUtils;
 import org.mozilla.gecko.util.ThreadUtils;
 import org.mozilla.geckoview.GeckoRuntime;
@@ -71,7 +72,7 @@ import java.io.File;
 import java.io.InputStream;
 import java.io.IOException;
 import java.lang.reflect.Method;
-import java.net.URL;
+import java.net.URI;
 import java.util.UUID;
 
 import org.torproject.android.service.util.Prefs;
@@ -866,11 +867,16 @@ public class GeckoApplication extends Application
                 byte[] buf = Base64.decode(aSrc.substring(dataStart + 1), Base64.DEFAULT);
                 image = BitmapUtils.decodeByteArray(buf);
             } else {
+                URI uri;
                 int byteRead;
                 byte[] buf = new byte[4192];
                 os = new ByteArrayOutputStream();
-                URL url = new URL(aSrc);
-                is = url.openStream();
+                try {
+                    uri = new URI(aSrc);
+                } catch (Exception e) {
+                    return;
+                }
+                is = ProxySelector.openConnectionWithProxy(uri).getInputStream();
 
                 // Cannot read from same stream twice. Also, InputStream from
                 // URL does not support reset. So converting to byte array.
diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/BitmapUtils.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/BitmapUtils.java
index 2a3f08de4ae7..b5e1a9664b35 100644
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/BitmapUtils.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/BitmapUtils.java
@@ -103,16 +103,9 @@ public final class BitmapUtils {
     public static Bitmap decodeUrl(final URL url) {
         InputStream stream = null;
 
-        try {
-            if ("jar".equals(url.getProtocol())) {
-                final Context context = GeckoAppShell.getApplicationContext();
-                stream = GeckoJarReader.getStream(context, url.toString());
-            } else {
-                stream = url.openStream();
-            }
-        } catch (IOException e) {
-            Log.w(LOGTAG, "decodeUrl: IOException downloading " + url);
-            return null;
+        if ("jar".equals(url.getProtocol())) {
+            final Context context = GeckoAppShell.getApplicationContext();
+            stream = GeckoJarReader.getStream(context, url.toString());
         }
 
         if (stream == null) {



More information about the tor-commits mailing list