[tor-commits] [tor-browser/tor-browser-78.12.0esr-10.5-1] Bug 28125 - Prevent non-Necko network connections

sysrqb at torproject.org sysrqb at torproject.org
Fri Jul 9 02:28:01 UTC 2021


commit 8eec1008e9d6e1e287a49652f31fece68f6a855b
Author: Matthew Finkel <Matthew.Finkel at gmail.com>
Date:   Thu Oct 25 19:17:09 2018 +0000

    Bug 28125 - Prevent non-Necko network connections
---
 .../gecko/media/GeckoMediaDrmBridgeV21.java        | 49 +---------------------
 .../exoplayer2/upstream/DefaultHttpDataSource.java | 47 +--------------------
 2 files changed, 3 insertions(+), 93 deletions(-)

diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoMediaDrmBridgeV21.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoMediaDrmBridgeV21.java
index 3ba59bfd6776..eb57b1013642 100644
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoMediaDrmBridgeV21.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoMediaDrmBridgeV21.java
@@ -488,54 +488,7 @@ public class GeckoMediaDrmBridgeV21 implements GeckoMediaDrm {
 
         @Override
         protected Void doInBackground(final Void... params) {
-            HttpURLConnection urlConnection = null;
-            BufferedReader in = null;
-            try {
-                URI finalURI = new URI(mURL + "&signedRequest=" + URLEncoder.encode(new String(mDrmRequest), "UTF-8"));
-                urlConnection = (HttpURLConnection) ProxySelector.openConnectionWithProxy(finalURI);
-                urlConnection.setRequestMethod("POST");
-                if (DEBUG) Log.d(LOGTAG, "Provisioning, posting url =" + finalURI.toString());
-
-                // Add data
-                urlConnection.setRequestProperty("Accept", "*/*");
-                urlConnection.setRequestProperty("User-Agent", getCDMUserAgent());
-                urlConnection.setRequestProperty("Content-Type", "application/json");
-
-                // Execute HTTP Post Request
-                urlConnection.connect();
-
-                int responseCode = urlConnection.getResponseCode();
-                if (responseCode == HttpURLConnection.HTTP_OK) {
-                    in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), StringUtils.UTF_8));
-                    String inputLine;
-                    StringBuffer response = new StringBuffer();
-
-                    while ((inputLine = in.readLine()) != null) {
-                        response.append(inputLine);
-                    }
-                    in.close();
-                    mResponseBody = String.valueOf(response).getBytes(StringUtils.UTF_8);
-                    if (DEBUG) Log.d(LOGTAG, "Provisioning, response received.");
-                    if (mResponseBody != null) Log.d(LOGTAG, "response length=" + mResponseBody.length);
-                } else {
-                    Log.d(LOGTAG, "Provisioning, server returned HTTP error code :" + responseCode);
-                }
-            } catch (IOException e) {
-                Log.e(LOGTAG, "Got exception during posting provisioning request ...", e);
-            } catch (URISyntaxException e) {
-                Log.e(LOGTAG, "Got exception during creating uri ...", e);
-            } finally {
-                if (urlConnection != null) {
-                    urlConnection.disconnect();
-                }
-                try {
-                    if (in != null) {
-                        in.close();
-                    }
-                } catch (IOException e) {
-                    Log.e(LOGTAG, "Exception during closing in ...", e);
-                }
-            }
+            Log.i(LOGTAG, "This is Tor Browser. Skipping.");
             return null;
         }
 
diff --git a/mobile/android/geckoview/src/thirdparty/java/org/mozilla/thirdparty/com/google/android/exoplayer2/upstream/DefaultHttpDataSource.java b/mobile/android/geckoview/src/thirdparty/java/org/mozilla/thirdparty/com/google/android/exoplayer2/upstream/DefaultHttpDataSource.java
index fdb44cc2ea1f..7a2044721d2d 100644
--- a/mobile/android/geckoview/src/thirdparty/java/org/mozilla/thirdparty/com/google/android/exoplayer2/upstream/DefaultHttpDataSource.java
+++ b/mobile/android/geckoview/src/thirdparty/java/org/mozilla/thirdparty/com/google/android/exoplayer2/upstream/DefaultHttpDataSource.java
@@ -395,51 +395,8 @@ public class DefaultHttpDataSource implements HttpDataSource {
    */
   private HttpURLConnection makeConnection(URL url, byte[] postBody, long position,
       long length, boolean allowGzip, boolean followRedirects) throws IOException, URISyntaxException {
-    /**
-     * Tor Project modified the way the connection object was created. For the sake of
-     * simplicity, instead of duplicating the whole file we changed the connection object
-     * to use the ProxySelector.
-     */
-    HttpURLConnection connection = (HttpURLConnection) ProxySelector.openConnectionWithProxy(url.toURI());
-
-    connection.setConnectTimeout(connectTimeoutMillis);
-    connection.setReadTimeout(readTimeoutMillis);
-    if (defaultRequestProperties != null) {
-      for (Map.Entry<String, String> property : defaultRequestProperties.getSnapshot().entrySet()) {
-        connection.setRequestProperty(property.getKey(), property.getValue());
-      }
-    }
-    for (Map.Entry<String, String> property : requestProperties.getSnapshot().entrySet()) {
-      connection.setRequestProperty(property.getKey(), property.getValue());
-    }
-    if (!(position == 0 && length == C.LENGTH_UNSET)) {
-      String rangeRequest = "bytes=" + position + "-";
-      if (length != C.LENGTH_UNSET) {
-        rangeRequest += (position + length - 1);
-      }
-      connection.setRequestProperty("Range", rangeRequest);
-    }
-    connection.setRequestProperty("User-Agent", userAgent);
-    if (!allowGzip) {
-      connection.setRequestProperty("Accept-Encoding", "identity");
-    }
-    connection.setInstanceFollowRedirects(followRedirects);
-    connection.setDoOutput(postBody != null);
-    if (postBody != null) {
-      connection.setRequestMethod("POST");
-      if (postBody.length == 0) {
-        connection.connect();
-      } else  {
-        connection.setFixedLengthStreamingMode(postBody.length);
-        connection.connect();
-        OutputStream os = connection.getOutputStream();
-        os.write(postBody);
-        os.close();
-      }
-    } else {
-      connection.connect();
-    }
-    return connection;
+    Log.i(TAG, "This is Tor Browser. Skipping.");
+    throw new IOException();
   }
 
   /**





More information about the tor-commits mailing list