Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(216)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/media/remote/MediaUrlResolver.java

Issue 1079153002: New unit tests for Android Cast code (using Robolectric). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix issues raised in comments. Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 627c6dcdb7f5c1e1a77c4b8368d68c35791267f0..480325c9557e69cf98220125495fb26917470027 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
@@ -4,7 +4,6 @@
package org.chromium.chrome.browser.media.remote;
-import android.content.Context;
import android.net.Uri;
import android.os.AsyncTask;
import android.text.TextUtils;
@@ -12,7 +11,6 @@ import android.util.Log;
import org.chromium.base.CommandLine;
import org.chromium.chrome.ChromeSwitches;
-import org.chromium.chrome.browser.ChromiumApplication;
import java.io.IOException;
import java.net.HttpURLConnection;
@@ -93,14 +91,17 @@ public class MediaUrlResolver extends AsyncTask<Void, Void, MediaUrlResolver.Res
private final Delegate mDelegate;
private boolean mDebug;
+ private final String mUserAgent;
+
/**
* The constructor
- * @param context the context to use to resolve the URL
* @param delegate The customer for this URL resolver.
+ * @param userAgent The browser user agent
*/
- public MediaUrlResolver(Context context, Delegate delegate) {
+ public MediaUrlResolver(Delegate delegate, String userAgent) {
mDebug = CommandLine.getInstance().hasSwitch(ChromeSwitches.ENABLE_CAST_DEBUG_LOGS);
mDelegate = delegate;
+ mUserAgent = userAgent;
}
@Override
@@ -108,7 +109,6 @@ public class MediaUrlResolver extends AsyncTask<Void, Void, MediaUrlResolver.Res
Uri uri = mDelegate.getUri();
String url = uri.toString();
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));
@@ -126,7 +126,7 @@ public class MediaUrlResolver extends AsyncTask<Void, Void, MediaUrlResolver.Res
if (!TextUtils.isEmpty(cookies)) {
urlConnection.setRequestProperty(COOKIES_HEADER_NAME, cookies);
}
- urlConnection.setRequestProperty(USER_AGENT_HEADER_NAME, userAgent);
+ urlConnection.setRequestProperty(USER_AGENT_HEADER_NAME, mUserAgent);
urlConnection.setRequestProperty(RANGE_HEADER_NAME, RANGE_HEADER_VALUE);
// This triggers resolving the URL and receiving the headers.
@@ -169,10 +169,12 @@ public class MediaUrlResolver extends AsyncTask<Void, Void, MediaUrlResolver.Res
if (url.isEmpty()) return false;
// HLS media requires Cors headers.
- if ((headers == null || isEnhancedMedia(url) && !headers.containsKey(CORS_HEADER_NAME))) {
+ if (isEnhancedMedia(url) && (headers == null || !headers.containsKey(CORS_HEADER_NAME))) {
if (mDebug) Log.d(TAG, "HLS stream without CORs header: " + url);
return false;
}
+ // TODO(aberent) Return false for media types that are not playable on Chromecast
+ // (getMediaType would need to know about more types to implement this).
return true;
}

Powered by Google App Engine
This is Rietveld 408576698