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

Unified Diff: media/test/data/eme_player_js/player_utils.js

Issue 2426813002: EME: Close existing sessions on CDM failure (Closed)
Patch Set: rename result (+rebase) Created 4 years, 1 month 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
« no previous file with comments | « media/test/data/eme_player_js/globals.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/test/data/eme_player_js/player_utils.js
diff --git a/media/test/data/eme_player_js/player_utils.js b/media/test/data/eme_player_js/player_utils.js
index 9a2bb8b1e74668ea53ef97d8eb5d2a5e89e87e2c..f1dfb4e54825e71551601d4ccd870b3d2ae96d8e 100644
--- a/media/test/data/eme_player_js/player_utils.js
+++ b/media/test/data/eme_player_js/player_utils.js
@@ -28,9 +28,19 @@ PlayerUtils.registerDefaultEventListeners = function(player) {
player.video.addEventListener('error', function(error) {
// This most likely happens on pipeline failures (e.g. when the CDM
- // crashes).
+ // crashes). Don't report a failure if the test is checking that sessions
+ // are closed on a crash.
Utils.timeLog('onHTMLElementError', error);
- Utils.failTest(error);
+ if (player.testConfig.keySystem == CRASH_TEST_KEYSYSTEM) {
+ // On failure the session should have been closed, so verify.
+ player.session.closed.then(
+ function(result) {
+ Utils.setResultInTitle(EME_SESSION_CLOSED_AND_ERROR);
+ },
+ function(error) { Utils.failTest(error); });
+ } else {
+ Utils.failTest(error);
+ }
});
};
@@ -59,10 +69,10 @@ PlayerUtils.registerEMEEventListeners = function(player) {
try {
if (player.testConfig.sessionToLoad) {
Utils.timeLog('Loading session: ' + player.testConfig.sessionToLoad);
- var session =
+ player.session =
message.target.mediaKeys.createSession('persistent-license');
- addMediaKeySessionListeners(session);
- session.load(player.testConfig.sessionToLoad)
+ addMediaKeySessionListeners(player.session);
+ player.session.load(player.testConfig.sessionToLoad)
.then(
function(result) {
if (!result)
@@ -73,14 +83,13 @@ PlayerUtils.registerEMEEventListeners = function(player) {
Utils.timeLog('Creating new media key session for initDataType: ' +
message.initDataType + ', initData: ' +
Utils.getHexString(new Uint8Array(message.initData)));
- var session = message.target.mediaKeys.createSession();
- addMediaKeySessionListeners(session);
- session.generateRequest(message.initDataType, message.initData)
+ player.session = message.target.mediaKeys.createSession();
+ addMediaKeySessionListeners(player.session);
+ player.session.generateRequest(message.initDataType, message.initData)
.catch(function(error) {
// Ignore the error if a crash is expected. This ensures that
// the decoder actually detects and reports the error.
- if (this.testConfig.keySystem !=
- 'org.chromium.externalclearkey.crash') {
+ if (this.testConfig.keySystem != CRASH_TEST_KEYSYSTEM) {
Utils.failTest(error, EME_GENERATEREQUEST_FAILED);
}
});
@@ -199,6 +208,7 @@ PlayerUtils.createPlayer = function(video, testConfig) {
case CLEARKEY:
case EXTERNAL_CLEARKEY:
case EXTERNAL_CLEARKEY_RENEWAL:
+ case CRASH_TEST_KEYSYSTEM:
return ClearKeyPlayer;
case FILE_IO_TEST_KEYSYSTEM:
case OUTPUT_PROTECTION_TEST_KEYSYSTEM:
« no previous file with comments | « media/test/data/eme_player_js/globals.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698