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

Unified Diff: android_webview/javatests/src/org/chromium/android_webview/test/KeySystemTest.java

Issue 1577433004: Flip proprietary codecs to false for Android chromium builds. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove mp4. Fix comment. Created 4 years, 9 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: android_webview/javatests/src/org/chromium/android_webview/test/KeySystemTest.java
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/KeySystemTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/KeySystemTest.java
index 32ee9aa9af35d789157bf40f995062395e131608..509a212d1e311207c386ace9cef2a44811dfabad 100644
--- a/android_webview/javatests/src/org/chromium/android_webview/test/KeySystemTest.java
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/KeySystemTest.java
@@ -4,6 +4,7 @@
package org.chromium.android_webview.test;
+import android.os.Build;
import android.test.suitebuilder.annotation.SmallTest;
import org.chromium.android_webview.AwContents;
@@ -66,12 +67,17 @@ public class KeySystemTest extends AwTestBase {
+ " navigator.requestMediaKeySystemAccess(keySystem, [{}]).then("
+ " success, failure);"
+ "}"
+ + "function areProprietaryCodecsSupported() {"
+ + " var video = document.createElement('video');"
+ + " result = video.canPlayType('video/mp4; codecs=\"avc1\"') ?"
+ + " 'YES' : 'NO';"
+ + "}"
+ "</script> </html>";
}
private String isKeySystemSupported(String keySystem) throws Exception {
executeJavaScriptAndWaitForResult(mAwContents, mContentsClient,
- "isKeySystemSupported('" + keySystem + "')");
+ "result = null; isKeySystemSupported('" + keySystem + "')");
poll(new Callable<Boolean>() {
@Override
@@ -83,6 +89,20 @@ public class KeySystemTest extends AwTestBase {
return getResultFromJS();
}
+ private boolean areProprietaryCodecsSupported() throws Exception {
+ executeJavaScriptAndWaitForResult(
+ mAwContents, mContentsClient, "result = null; areProprietaryCodecsSupported()");
+
+ poll(new Callable<Boolean>() {
+ @Override
+ public Boolean call() throws Exception {
+ return !getResultFromJS().equals("null");
+ }
+ });
+
+ return getResultFromJS().equals("YES");
+ }
+
private String getResultFromJS() {
String result = "null";
try {
@@ -94,6 +114,18 @@ public class KeySystemTest extends AwTestBase {
return result;
}
+ private String getPlatformKeySystemExpectations() throws Exception {
+ // Android key systems only support non-proprietary codecs on Lollipop+.
+ // When neither is true isKeySystemSupported() will return an error for
+ // all key systems except ClearKey (which is handled by Chrome itself).
+ if (!areProprietaryCodecsSupported()
+ && Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+ return "\"NotSupportedError\"";
+ }
+
+ return "\"supported\"";
+ }
+
@Feature({"AndroidWebView"})
@SmallTest
public void testSupportClearKeySystem() throws Throwable {
@@ -103,7 +135,8 @@ public class KeySystemTest extends AwTestBase {
@Feature({"AndroidWebView"})
@SmallTest
public void testSupportWidevineKeySystem() throws Throwable {
- assertEquals("\"supported\"", isKeySystemSupported("com.widevine.alpha"));
+ assertEquals(
+ getPlatformKeySystemExpectations(), isKeySystemSupported("com.widevine.alpha"));
}
@Feature({"AndroidWebView"})
@@ -115,7 +148,8 @@ public class KeySystemTest extends AwTestBase {
@Feature({"AndroidWebView"})
@SmallTest
public void testSupportPlatformKeySystem() throws Throwable {
- assertEquals("\"supported\"", isKeySystemSupported("x-com.oem.test-keysystem"));
+ assertEquals(getPlatformKeySystemExpectations(),
+ isKeySystemSupported("x-com.oem.test-keysystem"));
}
@Feature({"AndroidWebView"})

Powered by Google App Engine
This is Rietveld 408576698