commit b9c2f5d417334530773557b6dba7deedcd9c99e6
Author: Matthew Finkel <matthew.fin...@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, 4 insertions(+), 92 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 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}. */



_______________________________________________
tor-commits mailing list
tor-commits@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits

Reply via email to