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

Side by Side Diff: chrome/test/data/media/encrypted_media_utils.js

Issue 79903002: Add decrypt-only external clear key browser tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 var keySystem = QueryString.keysystem; 5 var keySystem = QueryString.keysystem;
6 var mediaFile = QueryString.mediafile; 6 var mediaFile = QueryString.mediafile;
7 var mediaType = QueryString.mediatype || 'video/webm; codecs="vorbis, vp8"'; 7 var mediaType = QueryString.mediatype || 'video/webm; codecs="vorbis, vp8"';
8 var useMSE = QueryString.usemse == 1; 8 var useMSE = QueryString.usemse == 1;
9 9
10 // Default key used to encrypt many media files used in browser tests. 10 // Default key used to encrypt many media files used in browser tests.
11 var KEY = new Uint8Array([0xeb, 0xdd, 0x62, 0xf1, 0x68, 0x14, 0xd2, 0x7b, 11 var KEY = new Uint8Array([0xeb, 0xdd, 0x62, 0xf1, 0x68, 0x14, 0xd2, 0x7b,
12 0x68, 0xef, 0x12, 0x2a, 0xfc, 0xe4, 0xae, 0x3c]); 12 0x68, 0xef, 0x12, 0x2a, 0xfc, 0xe4, 0xae, 0x3c]);
13 // KEY_ID constant used as init data while encrypting test media files. 13 // KEY_ID constant used as init data while encrypting test media files.
14 var KEY_ID = getInitDataFromKeyId("0123456789012345"); 14 var KEY_ID = getInitDataFromKeyId("0123456789012345");
15 // Heart beat message header. 15 // Heart beat message header.
16 var HEART_BEAT_HEADER = 'HEARTBEAT'; 16 var HEART_BEAT_HEADER = 'HEARTBEAT';
17 var EXTERNAL_CLEAR_KEY_KEY_SYSTEM = "org.chromium.externalclearkey"; 17 var EXTERNAL_CLEAR_KEY_KEY_SYSTEM = "org.chromium.externalclearkey";
18 var DECRYPT_ONLY_EXTERNAL_CLEAR_KEY_KEY_SYSTEM =
ddorwin 2013/11/21 04:10:58 we don't need this (see below)
xhwang 2013/11/22 01:47:36 Done.
19 "org.chromium.externalclearkey.decryptonly";
18 // Note that his URL has been normalized from the one in clear_key_cdm.cc. 20 // Note that his URL has been normalized from the one in clear_key_cdm.cc.
19 var EXTERNAL_CLEAR_KEY_HEARTBEAT_URL = 21 var EXTERNAL_CLEAR_KEY_HEARTBEAT_URL =
20 'http://test.externalclearkey.chromium.org/'; 22 'http://test.externalclearkey.chromium.org/';
21 23
22 function isHeartbeatMessage(msg) { 24 function isHeartbeatMessage(msg) {
23 if (msg.length < HEART_BEAT_HEADER.length) 25 if (msg.length < HEART_BEAT_HEADER.length)
24 return false; 26 return false;
25 for (var i = 0; i < HEART_BEAT_HEADER.length; ++i) { 27 for (var i = 0; i < HEART_BEAT_HEADER.length; ++i) {
26 if (String.fromCharCode(msg[i]) != HEART_BEAT_HEADER[i]) 28 if (String.fromCharCode(msg[i]) != HEART_BEAT_HEADER[i])
27 return false; 29 return false;
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 // keymessage in response to generateKeyRequest. Reply with key. 100 // keymessage in response to generateKeyRequest. Reply with key.
99 console.log('onKeyMessage - key request', e); 101 console.log('onKeyMessage - key request', e);
100 var initData = e.message; 102 var initData = e.message;
101 if (mediaType.indexOf('mp4') != -1) 103 if (mediaType.indexOf('mp4') != -1)
102 initData = KEY_ID; // Temporary hack for Clear Key in v0.1. 104 initData = KEY_ID; // Temporary hack for Clear Key in v0.1.
103 video.webkitAddKey(keySystem, key, initData); 105 video.webkitAddKey(keySystem, key, initData);
104 } 106 }
105 107
106 function verifyHeartbeatMessage(e) { 108 function verifyHeartbeatMessage(e) {
107 // Only External Clear Key sends a HEARTBEAT message. 109 // Only External Clear Key sends a HEARTBEAT message.
108 if (e.keySystem != EXTERNAL_CLEAR_KEY_KEY_SYSTEM) { 110 if (e.keySystem != EXTERNAL_CLEAR_KEY_KEY_SYSTEM &&
111 e.keySystem != DECRYPT_ONLY_EXTERNAL_CLEAR_KEY_KEY_SYSTEM) {
ddorwin 2013/11/21 04:10:58 Just check the beginning.
xhwang 2013/11/22 01:47:36 Done.
109 failTest('Unexpected heartbeat from ' + e.keySystem); 112 failTest('Unexpected heartbeat from ' + e.keySystem);
110 return; 113 return;
111 } 114 }
112 115
113 if (e.defaultURL != EXTERNAL_CLEAR_KEY_HEARTBEAT_URL) { 116 if (e.defaultURL != EXTERNAL_CLEAR_KEY_HEARTBEAT_URL) {
114 failTest('Heartbeat message with unexpected defaultURL: ' + e.defaultURL); 117 failTest('Heartbeat message with unexpected defaultURL: ' + e.defaultURL);
115 return; 118 return;
116 } 119 }
117 } 120 }
118 121
(...skipping 14 matching lines...) Expand all
133 } 136 }
134 } 137 }
135 138
136 function getInitDataFromKeyId(keyID) { 139 function getInitDataFromKeyId(keyID) {
137 var init_key_id = new Uint8Array(keyID.length); 140 var init_key_id = new Uint8Array(keyID.length);
138 for(var i = 0; i < keyID.length; i++) { 141 for(var i = 0; i < keyID.length; i++) {
139 init_key_id[i] = keyID.charCodeAt(i); 142 init_key_id[i] = keyID.charCodeAt(i);
140 } 143 }
141 return init_key_id; 144 return init_key_id;
142 } 145 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698