[tbb-commits] [tor-browser/geckoview-95.0b12-11.5-1] Bug 28125 - Prevent non-Necko network connections

sysrqb at torproject.org sysrqb at torproject.org
Fri Dec 17 16:47:53 UTC 2021


commit 0ba025db08228839af070a41981a1ddde14a7e91
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        | 50 +---------------------
 .../exoplayer2/upstream/DefaultHttpDataSource.java | 47 ++------------------
 2 files changed, 4 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 4b61b0faae32..a078bc6534c5 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
@@ -491,55 +491,7 @@ public class GeckoMediaDrmBridgeV21 implements GeckoMediaDrm {
 
     @Override
     protected Void doInBackground(final Void... params) {
-      HttpURLConnection urlConnection = null;
-      BufferedReader in = null;
-      try {
-        final 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();
-
-        final int responseCode = urlConnection.getResponseCode();
-        if (responseCode == HttpURLConnection.HTTP_OK) {
-          in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), UTF_8));
-          String inputLine;
-          final StringBuffer response = new StringBuffer();
-
-          while ((inputLine = in.readLine()) != null) {
-            response.append(inputLine);
-          }
-          in.close();
-          mResponseBody = String.valueOf(response).getBytes(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 (final IOException e) {
-        Log.e(LOGTAG, "Got exception during posting provisioning request ...", e);
-      } catch (final URISyntaxException e) {
-        Log.e(LOGTAG, "Got exception during creating uri ...", e);
-      } finally {
-        if (urlConnection != null) {
-          urlConnection.disconnect();
-        }
-        try {
-          if (in != null) {
-            in.close();
-          }
-        } catch (final 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 6e5095b0a4c9..a585e283ed4e 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
@@ -46,6 +46,7 @@ import java.util.regex.Pattern;
 import java.util.zip.GZIPInputStream;
 
 import org.mozilla.gecko.util.ProxySelector;
+
 /**
  * An {@link HttpDataSource} that uses Android's {@link HttpURLConnection}.
  *
@@ -516,50 +517,8 @@ public class DefaultHttpDataSource extends BaseDataSource implements HttpDataSou
       boolean followRedirects,
       Map<String, String> requestParameters)
       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);
-
-    Map<String, String> requestHeaders = new HashMap<>();
-    if (defaultRequestProperties != null) {
-      requestHeaders.putAll(defaultRequestProperties.getSnapshot());
-    }
-    requestHeaders.putAll(requestProperties.getSnapshot());
-    requestHeaders.putAll(requestParameters);
-
-    for (Map.Entry<String, String> property : requestHeaders.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);
-    connection.setRequestProperty("Accept-Encoding", allowGzip ? "gzip" : "identity");
-    connection.setInstanceFollowRedirects(followRedirects);
-    connection.setDoOutput(httpBody != null);
-    connection.setRequestMethod(DataSpec.getStringForHttpMethod(httpMethod));
-
-    if (httpBody != null) {
-      connection.setFixedLengthStreamingMode(httpBody.length);
-      connection.connect();
-      OutputStream os = connection.getOutputStream();
-      os.write(httpBody);
-      os.close();
-    } else {
-      connection.connect();
-    }
-    return connection;
+    Log.i(TAG, "This is Tor Browser. Skipping.");
+    throw new IOException();
   }
 
   /** Creates an {@link HttpURLConnection} that is connected with the {@code url}. */





More information about the tbb-commits mailing list