1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // ClearKeyPlayer responsible for playing media using Clear Key key system and
6 // the unprefixed version of EME.
7 function ClearKeyPlayer(video, testConfig) {
9 this.testConfig = testConfig;
12 ClearKeyPlayer.prototype.init = function() {
14 return PlayerUtils.initEMEPlayer(this);
17 ClearKeyPlayer.prototype.registerEventListeners = function() {
19 return PlayerUtils.registerEMEEventListeners(this);
22 ClearKeyPlayer.prototype.onMessage = function(message) {
23 Utils.timeLog('MediaKeySession onMessage', message);
24 var keyId = Utils.extractFirstLicenseKeyId(message.message);
25 var key = Utils.getDefaultKey(this.testConfig.forceInvalidResponse);
26 var jwkSet = Utils.createJWKData(keyId, key);
27 message.target.update(jwkSet).catch(function(error) {
28 // Ignore the error if a crash is expected. This ensures that the decoder
29 // actually detects and reports the error.
30 if (this.testConfig.keySystem != 'org.chromium.externalclearkey.crash') {
31 Utils.failTest(error, EME_UPDATE_FAILED);