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. 4 5 // Test configuration used by test page to configure the player app and other 6 // test specific configurations. 7 function TestConfig() { 8 this.mediaFile = null; 9 this.keySystem = null; 10 this.mediaType = null; 11 this.licenseServerURL = null; 12 this.useMSE = false; 13 this.usePrefixedEME = false; 14 this.runFPS = false; 15 } 16 17 TestConfig.prototype.loadQueryParams = function() { 18 // Load query parameters and set default values. 19 var r = /([^&=]+)=?([^&]*)/g; 20 // Lambda function for decoding extracted match values. Replaces '+' with 21 // space so decodeURIComponent functions properly. 22 var decodeURI = function decodeURI(s) { 23 return decodeURIComponent(s.replace(/\+/g, ' ')); 24 }; 25 var match; 26 while (match = r.exec(window.location.search.substring(1))) 27 this[decodeURI(match[1])] = decodeURI(match[2]); 28 this.useMSE = this.useMSE == '1' || this.useMSE == 'true'; 29 this.usePrefixedEME = 30 this.usePrefixedEME == '1' || this.usePrefixedEME == 'true'; 31 }; 32 33 TestConfig.updateDocument = function() { 34 this.loadQueryParams(); 35 Utils.addOptions(KEYSYSTEM_ELEMENT_ID, KEY_SYSTEMS); 36 Utils.addOptions(MEDIA_TYPE_ELEMENT_ID, MEDIA_TYPES); 37 Utils.addOptions(USE_PREFIXED_EME_ID, EME_VERSIONS_OPTIONS, 38 EME_DISABLED_OPTIONS); 39 40 document.getElementById(MEDIA_FILE_ELEMENT_ID).value = 41 this.mediaFile || DEFAULT_MEDIA_FILE; 42 43 document.getElementById(LICENSE_SERVER_ELEMENT_ID).value = 44 this.licenseServerURL || DEFAULT_LICENSE_SERVER; 45 46 if (this.keySystem) 47 Utils.ensureOptionInList(KEYSYSTEM_ELEMENT_ID, this.keySystem); 48 if (this.mediaType) 49 Utils.ensureOptionInList(MEDIA_TYPE_ELEMENT_ID, this.mediaType); 50 document.getElementById(USE_MSE_ELEMENT_ID).value = this.useMSE; 51 if (this.usePrefixedEME) 52 document.getElementById(USE_PREFIXED_EME_ID).value = EME_PREFIXED_VERSION; 53 }; 54 55 TestConfig.init = function() { 56 // Reload test configuration from document. 57 this.mediaFile = document.getElementById(MEDIA_FILE_ELEMENT_ID).value; 58 this.keySystem = document.getElementById(KEYSYSTEM_ELEMENT_ID).value; 59 this.mediaType = document.getElementById(MEDIA_TYPE_ELEMENT_ID).value; 60 this.useMSE = document.getElementById(USE_MSE_ELEMENT_ID).value == 'true'; 61 this.usePrefixedEME = document.getElementById(USE_PREFIXED_EME_ID).value == 62 EME_PREFIXED_VERSION; 63 this.licenseServerURL = 64 document.getElementById(LICENSE_SERVER_ELEMENT_ID).value; 65 }; 66