Index: chrome/android/java/src/org/chromium/chrome/browser/media/remote/DefaultMediaRouteController.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/remote/DefaultMediaRouteController.java b/chrome/android/java/src/org/chromium/chrome/browser/media/remote/DefaultMediaRouteController.java |
index 027b5ef5bbe89b6c2047d0fd74b700fd626b7617..d83caa4f7adf8c04b951691632459e42a76dda6f 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/media/remote/DefaultMediaRouteController.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/media/remote/DefaultMediaRouteController.java |
@@ -24,7 +24,6 @@ import android.widget.Toast; |
import com.google.android.gms.cast.CastMediaControlIntent; |
-import org.apache.http.Header; |
import org.chromium.base.ApplicationState; |
import org.chromium.base.ApplicationStatus; |
import org.chromium.base.CommandLine; |
@@ -34,6 +33,8 @@ import org.chromium.chrome.browser.media.remote.RemoteVideoInfo.PlayerState; |
import java.net.URI; |
import java.net.URISyntaxException; |
+import java.util.List; |
+import java.util.Map; |
import javax.annotation.Nullable; |
@@ -93,6 +94,7 @@ public class DefaultMediaRouteController extends AbstractMediaRouteController { |
private static final String ACTION_RECEIVE_MEDIA_STATUS_UPDATE = |
"com.google.android.apps.chrome.videofling.RECEIVE_MEDIA_STATUS_UPDATE"; |
private static final String MIME_TYPE = "video/mp4"; |
+ private static final String CORS_HEADER_NAME = "Access-Control-Allow-Origin"; |
private boolean mDebug; |
private String mCurrentSessionId; |
@@ -156,7 +158,7 @@ public class DefaultMediaRouteController extends AbstractMediaRouteController { |
} |
@Override |
- public void setUri(Uri uri, Header[] headers) { |
+ public void setUri(Uri uri, Map<String, List<String>> headers) { |
if (canPlayMedia(uri, headers)) { |
mLocalVideoUri = uri; |
playMedia(); |
@@ -1047,13 +1049,13 @@ public class DefaultMediaRouteController extends AbstractMediaRouteController { |
mMediaUrlResolver.execute(); |
} |
- private boolean canPlayMedia(Uri uri, Header[] headers) { |
+ private boolean canPlayMedia(Uri uri, Map<String, List<String>> headers) { |
whywhat
2015/03/30 15:51:34
As I explain in the other comment I'd rather move
aberent
2015/03/30 17:24:04
Done.
|
if (uri == Uri.EMPTY) return false; |
// HLS media requires Cors headers. Since these are the only ones |
// sent now we can just check that headers is not empty but |
// if more headers are added we should be more strict in the check. |
- if ((headers == null || headers.length == 0) && isEnhancedMedia(uri)) { |
+ if ((headers == null || !headers.containsKey(CORS_HEADER_NAME)) && isEnhancedMedia(uri)) { |
if (mDebug) Log.d(TAG, "HLS stream without CORs header: " + uri); |
return false; |
} |