Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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 // Utils provide logging functions and other JS functions commonly used by the | 5 // Utils provide logging functions and other JS functions commonly used by the |
| 6 // app and media players. | 6 // app and media players. |
| 7 var Utils = new function() { | 7 var Utils = new function() { |
| 8 this.titleChanged = false; | 8 this.titleChanged = false; |
| 9 }; | 9 }; |
| 10 | 10 |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 23 } | 23 } |
| 24 }; | 24 }; |
| 25 | 25 |
| 26 Utils.convertToArray = function(input) { | 26 Utils.convertToArray = function(input) { |
| 27 if (Array.isArray(input)) | 27 if (Array.isArray(input)) |
| 28 return input; | 28 return input; |
| 29 return [input]; | 29 return [input]; |
| 30 }; | 30 }; |
| 31 | 31 |
| 32 Utils.convertToUint8Array = function(msg) { | 32 Utils.convertToUint8Array = function(msg) { |
| 33 var ans = new Uint8Array(msg.length); | 33 if (typeof msg == 'string') { |
| 34 for (var i = 0; i < msg.length; i++) { | 34 var ans = new Uint8Array(msg.length); |
| 35 ans[i] = msg.charCodeAt(i); | 35 for (var i = 0; i < msg.length; i++) { |
| 36 ans[i] = msg.charCodeAt(i); | |
| 37 } | |
| 38 return ans; | |
| 36 } | 39 } |
| 37 return ans; | 40 // Assume it is ArrayBuffer or ArrayBufferView. If it already a Uint8Array, |
|
shadi
2014/07/24 17:46:51
s/a/is a
jrummell
2014/07/25 19:34:05
Done.
| |
| 41 // this will just make a copy of the view. | |
| 42 return new Uint8Array(msg); | |
| 38 }; | 43 }; |
| 39 | 44 |
| 40 Utils.createJWKData = function(keyId, key) { | 45 Utils.createJWKData = function(keyId, key) { |
| 41 // JWK routines copied from third_party/WebKit/LayoutTests/media/ | 46 // JWK routines copied from third_party/WebKit/LayoutTests/media/ |
| 42 // encrypted-media/encrypted-media-utils.js | 47 // encrypted-media/encrypted-media-utils.js |
| 43 // | 48 // |
| 44 // Encodes data (Uint8Array) into base64 string without trailing '='. | 49 // Encodes data (Uint8Array) into base64 string without trailing '='. |
| 45 // TODO(jrummell): Update once the EME spec is updated to say base64url | 50 // TODO(jrummell): Update once the EME spec is updated to say base64url |
| 46 // encoding. | 51 // encoding. |
| 47 function base64Encode(data) { | 52 function base64Encode(data) { |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 143 for (var i = 0; i < uintArray.length; i++) { | 148 for (var i = 0; i < uintArray.length; i++) { |
| 144 var hex = uintArray[i].toString(16); | 149 var hex = uintArray[i].toString(16); |
| 145 if (hex.length == 1) | 150 if (hex.length == 1) |
| 146 hex = '0' + hex; | 151 hex = '0' + hex; |
| 147 hex_str += hex; | 152 hex_str += hex; |
| 148 } | 153 } |
| 149 return hex_str; | 154 return hex_str; |
| 150 }; | 155 }; |
| 151 | 156 |
| 152 Utils.getInitDataFromMessage = function(message, mediaType) { | 157 Utils.getInitDataFromMessage = function(message, mediaType) { |
| 153 var initData = message.message; | 158 var initData = Utils.convertToUint8Array(message.message); |
| 154 if (mediaType.indexOf('mp4') != -1) { | 159 if (mediaType.indexOf('mp4') != -1) { |
| 155 // Temporary hack for Clear Key in v0.1. | 160 // Temporary hack for Clear Key in v0.1. |
| 156 // If content uses mp4, then message.message is PSSH data. Instead of | 161 // If content uses mp4, then message.message is PSSH data. Instead of |
| 157 // parsing that data we hard code the initData. | 162 // parsing that data we hard code the initData. |
| 158 initData = Utils.convertToUint8Array(KEY_ID); | 163 initData = Utils.convertToUint8Array(KEY_ID); |
| 159 } | 164 } |
| 160 return initData; | 165 return initData; |
| 161 }; | 166 }; |
| 162 | 167 |
| 163 Utils.hasPrefix = function(msg, prefix) { | 168 Utils.hasPrefix = function(msg, prefix) { |
| 164 var message = String.fromCharCode.apply(null, msg); | 169 var message = String.fromCharCode.apply(null, msg); |
| 165 return message.substring(0, prefix.length) == prefix; | 170 return message.substring(0, prefix.length) == prefix; |
| 166 }; | 171 }; |
| 167 | 172 |
| 168 Utils.installTitleEventHandler = function(element, event) { | 173 Utils.installTitleEventHandler = function(element, event) { |
| 169 element.addEventListener(event, function(e) { | 174 element.addEventListener(event, function(e) { |
| 170 Utils.setResultInTitle(e.type); | 175 Utils.setResultInTitle(e.type); |
| 171 }, false); | 176 }, false); |
| 172 }; | 177 }; |
| 173 | 178 |
| 174 Utils.isHeartBeatMessage = function(msg) { | 179 Utils.isHeartBeatMessage = function(msg) { |
| 175 return Utils.hasPrefix(msg, HEART_BEAT_HEADER); | 180 return Utils.hasPrefix(Utils.convertToUint8Array(msg), HEART_BEAT_HEADER); |
| 176 }; | 181 }; |
| 177 | 182 |
| 178 Utils.resetTitleChange = function() { | 183 Utils.resetTitleChange = function() { |
| 179 this.titleChanged = false; | 184 this.titleChanged = false; |
| 180 document.title = ''; | 185 document.title = ''; |
| 181 }; | 186 }; |
| 182 | 187 |
| 183 Utils.sendRequest = function(requestType, responseType, message, serverURL, | 188 Utils.sendRequest = function(requestType, responseType, message, serverURL, |
| 184 onSuccessCallbackFn, forceInvalidResponse) { | 189 onSuccessCallbackFn, forceInvalidResponse) { |
| 185 var requestAttemptCount = 0; | 190 var requestAttemptCount = 0; |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 236 var time = Utils.getCurrentTimeString(); | 241 var time = Utils.getCurrentTimeString(); |
| 237 // Log to document. | 242 // Log to document. |
| 238 Utils.documentLog(arguments[0], time); | 243 Utils.documentLog(arguments[0], time); |
| 239 // Log to JS console. | 244 // Log to JS console. |
| 240 var logString = time + ' - '; | 245 var logString = time + ' - '; |
| 241 for (var i = 0; i < arguments.length; i++) { | 246 for (var i = 0; i < arguments.length; i++) { |
| 242 logString += ' ' + arguments[i]; | 247 logString += ' ' + arguments[i]; |
| 243 } | 248 } |
| 244 console.log(logString); | 249 console.log(logString); |
| 245 }; | 250 }; |
| OLD | NEW |