Index: chrome/android/java/src/org/chromium/chrome/browser/media/remote/MediaUrlResolver.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/remote/MediaUrlResolver.java b/chrome/android/java/src/org/chromium/chrome/browser/media/remote/MediaUrlResolver.java |
index 133b5061844cfd25ea38e978bb6dc8e9fedc8867..88e409e828236e39235e47c9ea44fc25a9cfb578 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/media/remote/MediaUrlResolver.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/media/remote/MediaUrlResolver.java |
@@ -10,8 +10,6 @@ import android.os.AsyncTask; |
import android.text.TextUtils; |
import android.util.Log; |
-import org.apache.http.Header; |
-import org.apache.http.message.BasicHeader; |
import org.chromium.chrome.browser.ChromiumApplication; |
import java.io.IOException; |
@@ -20,7 +18,8 @@ import java.net.MalformedURLException; |
import java.net.URI; |
import java.net.URISyntaxException; |
import java.net.URL; |
-import java.util.Arrays; |
+import java.util.List; |
+import java.util.Map; |
/** |
* Resolves the final URL if it's a redirect. Works asynchronously, uses HTTP |
@@ -48,36 +47,30 @@ public class MediaUrlResolver extends AsyncTask<Void, Void, MediaUrlResolver.Res |
* |
* @param uri the resolved URL. |
*/ |
- void setUri(Uri uri, Header[] headers); |
+ void setUri(Uri uri, Map<String, List<String>> map); |
} |
protected static final class Result { |
private final String mUri; |
- private final Header[] mRelevantHeaders; |
+ private final Map<String, List<String>> mHeaders; |
- public Result(String uri, Header[] relevantHeaders) { |
+ public Result(String uri, Map<String, List<String>> headers) { |
mUri = uri; |
- mRelevantHeaders = |
- relevantHeaders != null |
- ? Arrays.copyOf(relevantHeaders, relevantHeaders.length) |
- : null; |
+ mHeaders = headers; |
} |
public String getUri() { |
return mUri; |
} |
- public Header[] getRelevantHeaders() { |
- return mRelevantHeaders != null |
- ? Arrays.copyOf(mRelevantHeaders, mRelevantHeaders.length) |
- : null; |
+ public Map<String, List<String>> getHeaders() { |
whywhat
2015/03/30 15:51:34
I thought you were going to turn this array into a
aberent
2015/03/30 17:24:04
Done.
|
+ return mHeaders; |
} |
} |
private static final String TAG = "MediaUrlResolver"; |
- private static final String CORS_HEADER_NAME = "Access-Control-Allow-Origin"; |
private static final String COOKIES_HEADER_NAME = "Cookies"; |
private static final String USER_AGENT_HEADER_NAME = "User-Agent"; |
private static final String RANGE_HEADER_NAME = "Range"; |
@@ -103,12 +96,12 @@ public class MediaUrlResolver extends AsyncTask<Void, Void, MediaUrlResolver.Res |
protected MediaUrlResolver.Result doInBackground(Void... params) { |
Uri uri = mDelegate.getUri(); |
String url = uri.toString(); |
- Header[] relevantHeaders = null; |
String cookies = mDelegate.getCookies(); |
String userAgent = ChromiumApplication.getBrowserUserAgent(); |
// URL may already be partially percent encoded; double percent encoding will break |
// things, so decode it before sanitizing it. |
String sanitizedUrl = sanitizeUrl(Uri.decode(url)); |
+ Map<String, List<String>> headers = null; |
// If we failed to sanitize the URL (e.g. because the host name contains underscores) then |
// HttpURLConnection won't work,so we can't follow redirections. Just try to use it as is. |
@@ -129,25 +122,21 @@ public class MediaUrlResolver extends AsyncTask<Void, Void, MediaUrlResolver.Res |
urlConnection.getHeaderFields(); |
url = urlConnection.getURL().toString(); |
- String corsHeader = urlConnection.getHeaderField(CORS_HEADER_NAME); |
- if (corsHeader != null) { |
- relevantHeaders = new Header[1]; |
- relevantHeaders[0] = new BasicHeader(CORS_HEADER_NAME, corsHeader); |
- } |
+ headers = urlConnection.getHeaderFields(); |
} catch (IOException e) { |
Log.e(TAG, "Failed to fetch the final URI", e); |
url = ""; |
} |
if (urlConnection != null) urlConnection.disconnect(); |
} |
- return new MediaUrlResolver.Result(url, relevantHeaders); |
+ return new MediaUrlResolver.Result(url, headers); |
} |
@Override |
protected void onPostExecute(MediaUrlResolver.Result result) { |
String url = result.getUri(); |
Uri uri = "".equals(url) ? Uri.EMPTY : Uri.parse(url); |
- mDelegate.setUri(uri, result.getRelevantHeaders()); |
+ mDelegate.setUri(uri, result.getHeaders()); |
} |
private String sanitizeUrl(String unsafeUrl) { |